Posted by traxx on Sunday, November 14, 2010 at 8:21am.
0x0024 is 2*16+4=36, which is what is required in RB 0x0036.
Basically, the hex value is converted into decimal, and each decimal digit is stored as a byte in RB.
The algorithm to do this is to divide the hex number by 10 (decimal), store the integer quotient in a register, and the remainder is the first byte in RB.
Repeat the process, i.e. divide the quotient by 10(dec.). However, the remainder must be shifted 8 bits to the left before adding to RB to get the next digit.
Repeat, if necessary, until the quotient is zero.
Example:
RA = 0x0024
RB = 0x0000
Divide by 0x000A to get
RA = 0x0003 (quotient)
RC = 0x0006 (remainder)
Add rb,rc
RB = 0x0006
if RA≠0, Repeat division
RA = 0x0000
RC = 0x0003 (remainder)
shift left 8 bits
RC = 0x0030
add rb,rc
RB = 0x0036
etc.
You will have to do some register management to put the quotient and remainder in the right places.
Related Questions
computer science - What is the binary representation of the following ...
Converting decimal(floating point) to octal/hex - Hi everybody, Can anybody show...
computers - All Processing and storage of data inside a computer is done in ...
computer science (Assembly language) - Hello, i am new at assembly language and...
electronic logic - write from 0- 1000 in binary hexadecimal octal and decimal
trig - Given BC = 53 cm, BD = 62 cm, CD = 80 cm, ABC = 53°, and ACB = 66°...
math - The following numbers can be represented as 8-bit numbers in the binary ...
computer science /use java language - write the program that inputs a string ...
Assembly Language - Hello, i am new at assembly language and i just got started ...
Computing in Security (Conversion Help) - 1.) Encrypt the hexadecimal message ...
For Further Reading