Skip to content
Related Articles
Open in App
Not now

Related Articles

8086 program to print the table of input integer

Improve Article
Save Article
  • Difficulty Level : Easy
  • Last Updated : 29 Oct, 2021
Improve Article
Save Article

Problem – Write an assembly language program in 8086 to print the table of input integer. 

Assumption – Suppose the inputted number is at memory location 500 and the table will be printed from starting location 600 till 609 in hexadecimal. 

Example – 

Algorithm – 

  1. Load input number address in SI and also load the address where we want output in DI . 
  2. Store 00 in CH register. 
  3. Increment value of CH by 1 and move the content of [SI] into AH register. 
  4. Multiply content of AL and CH and store it in AX and then move content of AL into [DI], then increment value of DI by 1. 
  5. Compare the value of CH and 0A, if not equal then go to step number 3 otherwise halt the program. 

Program – 

400MOV SI, 500SI<-500
403MOV DI, 600DI<-600
406MOV CH, 00CH<-00
409MOV AL, [SI]AL<-[SI]
410CMP CH, 0ACH-0A
413JNZ 408jump to address 408 if zero flag is 0
415HLTTerminates the program

Explanation – 

  1. MOV SI, 500: load 500 in SI. 
  2. MOV DI, 600: load 600 in DI. 
  3. MOV CH, 00: load 00 data in CH register. 
  4. INC CH: increment the value inside CH register by 1. 
  5. MOV AL, SI: move the content of SI into AL register. 
  6. MUL CH: multiply the contents of AL and CH register and store in AX register. 
  7. MOV [DI], AL: move the contents of AL register into [DI]. 
  8. INC DI: increment the value of DI by 1. 
  9. CMP CH, 0A: subtract data inside CH register and 0A. 
  10. JNZ 408: jump to address 408 if zero flag is 0. 
  11. HLT: terminate the program. 
My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!