Computer/assembly language
posted by traxx .
Write a procedure BCD to convert a hexadecimal number in RA into its BCD (binarycoded decimal) representation and place it in RB. The return address should be placed in RF. For example, if RA=0x0024 before the call, RB=0x0036 after the all.
// can someone tell me how to write that//

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.
Respond to this Question
Similar Questions

Converting decimal(floating point) to octal/hex
Hi everybody, Can anybody show me how to convert 0.59375(decimal) to Octal and Hexadecimal? 
computers
All Processing and storage of data inside a computer is done in _____ Form. A)binary B)hexadecimal C)decimal D)character 
computer science /use java language
write the program that inputs a string representing a binary number(0s and 1s). First, your program should veerify that it is indeed a binary number, that is, the number contains only 0s and 1s . if that is not the case, your program … 
computer science (Assembly language)
Hello, i am new at assembly language and i just got started with this stuff. I have this assignment which doesn't make any sense to me. Can someone please help? 
computer science
What is the binary representation of the following hexadecimal number? 
trig
Given BC = 53 cm, BD = 62 cm, CD = 80 cm, ABC = 53°, and ACB = 66°, find the following. (Round your answers to the nearest whole number.) (a) the length of the chainstay, AC AC = cm (b) BCD BCD = ° 
electronic logic
write from 0 1000 in binary hexadecimal octal and decimal 
COMPUTER DATA NETWORKS
A firm is assigned the network part 128.171. It selects a 10bit subnet part. a) Draw the bits for the four octets of the IP address of the first host on the first subnet. (Hint: Use Windows Calculator.) b) Convert this answer into … 
C++
A c++ program which convert from decimal, octal & hexadecimal to binary equivalent with array concept. 
Computer Science
Convert the following binary numbers to decimal (6 points): 11111 101011 1101011 Convert the following decimal numbers to binary (6 points): 49 367 1023 Convert the following hex numbers to decimal (4 points): ACE 800 Convert the following …