8086 program to convert 8 bit ASCII to BCD number

Problem – Write a program to convert ASCII to BCD 8-bit number where starting address is 2000 and the number is stored at 2050 memory address and store result into 3050 memory address.

Input  : location: 2050
         Data   : 37
Output : location: 3050    
         Data   : 07        

Algorithm –

  1. Move value at [2050] into AL
  2. Perform AND operation on AL with 0F
  3. Move content of accumulator AL into 3050
  4. 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

  1. MOV is used to transfer the data
  2. AND is used for multiplication (logically)
  3. HLT is used to halt the program

Attention reader! Don’t stop learning now. Get hold of all the important CS Theory concepts for SDE interviews with the CS Theory Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Improved By : Ankit_Bisht