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.
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.