Problem – Write a program to convert ASCII to BCD 8-bit number where the starting address is 2000 and the number is stored at 2050 memory address and store result in 3050 memory address.
Example-
Input : location: 2050
Data : 37
Output : location: 3050
Data : 07
Algorithm –
- Move value at [2050] into AL
- Perform AND operation on AL with 0F
- Move the content of accumulator AL into 3050
- Stop
Program –
Memory | Mnemonics | Operands | Comment |
---|---|---|---|
2000 | MOV | AL, [2050] | [AL] <- [2050] |
2004 | AND | AL, 0F | [AL] <- ([ AL] AND 0F ) |
2006 | MOV | [3050], AL | [3050] <- [AL] |
200A | HLT | Stop |
Explanation – Registers AL is used for general purpose
- MOV is used to transfer the data
- AND is used for multiplication (logically)
- HLT is used to halt the program