Related Articles

Related Articles

8086 program to determine squares of numbers in an array of n numbers
  • Last Updated : 18 Jun, 2018

Problem – Write a program in 8086 microprocessor to find out the squares of 8-bit n numbers, where size “n” is stored at offset 500 and the numbers are stored from offset 501 and store the result numbers into offset 501.(assuming squares comes out to be in limit of 8 bit only).

Example –

Algorithm –

  1. Store 500 to SI and Load data from offset 500 to register CL and set register CH to 00 (for count).
  2. Increase the value of SI by 1.
  3. Load first number(value) from next offset (i.e 501) to register AL.
  4. Multiply the value in register AL by itself.
  5. Store the result (value of register AL ) to memory offset SI.
  6. Increase the value of SI by 1.
  7. Loop above 2 till register CX gets 0.

Program –

400 MOV SI, 500 SI<-500
403 MOV CL, [SI] CL<-[SI]
405 MOV CH, 00 CH<-00
407 INC SI SI<-SI+1
408 MOV AL, [SI] AL<-[SI]
40C MOV [SI], AL AL->[SI]
40F LOOP 408 JUMP TO 408 IF CX!=0 and CX=CX-1
411 HLT end

Explanation –

  1. MOV SI, 500: set the value of SI to 500
  2. MOV CL, [SI]: load data from offset SI to register CL
  3. MOV CH, 00: set value of register CH to 00
  4. INC SI: increase value of SI by 1.
  5. MOV AL, [SI]: load value from offset SI to register AL
  6. MUL AL: multiply value of register AL by AL.
  7. MOV [SI], AL: store value of register AL at offset SI.
  8. INC SI: increase value of SI by 1.
  9. LOOP 408: jump to address 408 if CX not 0 and CX=CX-1.
  10. HLT: stop

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
Recommended Articles
Page :