BCD to Hex

Problem #212

Tags: assembly challenge numeral-system c-1 c-0 special

This task has a Challenge attached.
You may View Stats or read a Help on Challenges.

No translations... yet

Early CPU's often lacked multiplication and especially division operation. This made conversion between binary and decimal systems quite a tough challenge - and lead to widespread of BCD format, when every 4-bit nibble stored one decimal digit.

In this problem we are to write code for Intel-4004, converting 4-digit value from BCD to Hexadecimal format.

Input will have 4-digit BCD value in r3:r0 (note that it is "reversed", i.e. r3 is the most significant).
Output should give 4-digit Hex value in r11:r8 (where r11 also is the most significant).

Example:

input:    1 2 3 9 0 0 0 0 0 0 0 0 0 0 0 0
answer:   0 0 0 0 0 0 0 0 9 6 4 2 0 0 0 0

Note that the checker will not care about registers other than r11:r8 so they could contain anything after calculations.

Answer is not tested by the checker and the input serves only as a sample. You rather need to supply working code which will be executed against several test-cases on the server.

The size of solution is measured in the bytes. Many instructions are single-byte, while some (especially jumps) are two byte long. Also if you add data in your program via db instruction - the size is of course increased. To check the size you may use our online emulator.

You need to login to get test data and submit solution.