SVPM Malegaon
Introduction
8086 Microprocessor is an enhanced version of 8085Microprocessor that was designed by Intel
in 1976. It is a 16-bit Microprocessor having 20 address lines and16 data lines that provides up to
1MB storage. It consists of powerful instruction set, which provides operations like
multiplication and division easily. Introduction to 8086/8088 Microprocesser - General Facilities
- BIU and EU - Data Registers - Segment Registers - Index Registers - Pointer Registers - Flag
Register - Memory Addressing - Physical Memory Address Calculations.
SVPM Malegaon
SVPM Malegaon
8086 program to add two 16-bit numbers with or without carry
Problem – Write a program to add two 16-bit numbers where starting address is 2000 and the
numbers are at 3000 and 3002 memory address and store result into 3004 and 3006 memory
address.
Ex:
SVPM Malegaon
SVPM Malegaon
Algorithm –
Load 0000H into CX register (for carry)
Load the data into AX(accumulator) from memory 3000
Load the data into BX register from memory 3002
Add BX with Accumulator AX
Jump if no carry
Increment CX by 1
Move data from AX(accumulator) to memory 3004
Move data from CX register to memory 3006
Stop
Program –
Memory Mnemonics Operands Comment
2000 MOV CX, 0000 [CX] <- 0000
2003 MOV AX, [3000] [AX] <- [3000]
2007 MOV BX, [3002] [BX] <- [3002]
200B ADD AX, BX [AX] <- [AX] + [BX]
200D JNC 2010 Jump if no carry
200F INC CX [CX] <- [CX] + 1
2010 MOV [3004], AX [3004] <- [AX]
2014 MOV [3006], CX [3006] <- [CX]
2018 HLT Stop
SVPM Malegaon
SVPM Malegaon
Explanation –
MOV is used to load and store data.
ADD is used to add two numbers where their one number is in accumulator or not.
JNC is a 2-bit command which is used to check whether the carry is generated from accumulator
or not.
INC is used to increment an register by 1.
HLT is used to stop the program.
AX is an accumulator which is used to load and store the data.
BX, CX are general purpose registers where BX is used for storing second number and CX is
used to store carry.
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.
SVPM Malegaon
SVPM Malegaon
Program in 8086 microprocessor to find out the addition of two 8-bit BCD
numbers.
where numbers are stored from starting memory address 2000 : 500 and store the result into
memory address 2000 : 600 and carry at 2000 : 601.
Example –
SVPM Malegaon
SVPM Malegaon
Algorithm –
Load data from offset 500 to register AL (first number)
Load data from offset 501 to register BL (second number)
Add these two numbers (contents of register AL and register BL)
Apply DAA instruction (decimal adjust)
Store the result (content of register AL) to offset 600
Set register AL to 00
Add contents of register AL to itself with carry
Store the result (content of register AL) to offset 601
Stop
Program –
MEMORY ADDRESS MNEMONICS COMMENT
400 MOV AL, [500] AL<-[500]
404 MOV BL, [501] BL<-[501]
408 ADD AL, BL AL<-AL+BL
40A DAA DECIMAL ADJUST AL
40B MOV [600], AL AL->[600]
40F MOV AL, 00 AL<-00
411 ADC AL, AL AL<-AL+AL+cy(prev)
413 MOV [601], AL AL->[601]
417 HLT END
SVPM Malegaon
SVPM Malegaon
Explanation –
MOV AL, [500]: load data from offset 500 to register AL
MOV BL, [501]: load data from offset 501 to register BL
ADD AL, BL: ADD contents of registers AL AND BL
DAA: decimal adjust AL
MOV [600], AL: store data from register AL to offset 600
MOV AL, 00: set value of register AL to 00
ADC AL, AL: add contents of register AL to AL with carry
MOV [601], AL: store data from register AL to offset 601
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.
SVPM Malegaon