Hey !! Let's see program to multiply two 8 bit numbers and another program to add two 16 bit BCD number. First let's take a look at the theory.
Let's go!!
In assembly language 8086 we use mnemonics in order to perform arithmetic operations like ADD/ADC in addition.
So, Let's dive deep into what ADD and ADC is ....Scroll Down for Program↓...
ADD:- It adds number from source to destination without carry. Source can be memory location or register or a number but destination should be register or a memory location(not immediate number). Remember that source and destination should be of same type and both shouldn't be memory locations.
Syntax: ADD <destination> <source>
Operation: destination← destination + source
ADC:- It adds number from source to destination with carry i.e , adds carry flag into result of addition. Source can be memory location or register or a number but destination should be register or a memory location(not immediate number). Remember that source and destination should be of same type and both shouldn't be memory locations.
Syntax: ADC <destination> <source>
Operation: destination← destination + source + carry
DAA:- Usually used after ADD/ADC because DAA works on AL registers. This instruction is used to convert result of addition of 2packed numbers into 1-packed BCD number. in simple language, ADD/ADC adds BCD number in hexadecimal format and then DAA instruction converts this hexadecimal result into BCD result.
Syntax: DAA
Which flags get affected?
Ans- OF , CF, PF , AF, SF , ZF .
Below are 2 programs : Two 8-bit BCD addition and Two 16-bit BCD addition.
So, Let's dive deep into what ADD and ADC is ....Scroll Down for Program↓...
ADD:- It adds number from source to destination without carry. Source can be memory location or register or a number but destination should be register or a memory location(not immediate number). Remember that source and destination should be of same type and both shouldn't be memory locations.
Syntax: ADD <destination> <source>
Operation: destination← destination + source
ADC:- It adds number from source to destination with carry i.e , adds carry flag into result of addition. Source can be memory location or register or a number but destination should be register or a memory location(not immediate number). Remember that source and destination should be of same type and both shouldn't be memory locations.
Syntax: ADC <destination> <source>
Operation: destination← destination + source + carry
DAA:- Usually used after ADD/ADC because DAA works on AL registers. This instruction is used to convert result of addition of 2packed numbers into 1-packed BCD number. in simple language, ADD/ADC adds BCD number in hexadecimal format and then DAA instruction converts this hexadecimal result into BCD result.
Syntax: DAA
Which flags get affected?
Ans- OF , CF, PF , AF, SF , ZF .
Below are 2 programs : Two 8-bit BCD addition and Two 16-bit BCD addition.
Sum of two 8-Bit BCD numbers using ALP 8086 :-
Sum of two 16-Bit BCD numbers using ALP 8086 :-
data segment
no1 db 02h
no2 db 03h
ans db ?
data ends
code segment
start : assume cs :code, ds :data
mov ax ,data
mov ds , ax
mov al , no1
mov bl ,no2
ADD al, b1
DAA
mov ans ,al
mov ah ,4ch
int 21h
code ends
end start
Sum of two 16-Bit BCD numbers using ALP 8086 :-
data segment
no1 dw 21h
no2 dw 31h
ans dw ?
data ends
code segment
start : assume cs :code, ds :data
mov ax ,data
mov ds , ax
mov ax , no1
mov bx , no2
ADD ax , bx
DAA
mov ans ,ax
mov ah ,4ch
int 21h
code ends
end start
Programs:-
For many other Assembly Language Programs related to microprocessor 8086 , data structure, etc Subjects related to MSBTE,Computer engineering, IT field visit our BLOG
There are programs of largest ,smallest ,division ,multiplication,odd/even,block operation ,string operations,BCD ,etc
For many other Assembly Language Programs related to microprocessor 8086 , data structure, etc Subjects related to MSBTE,Computer engineering, IT field visit our BLOG
There are programs of largest ,smallest ,division ,multiplication,odd/even,block operation ,string operations,BCD ,etc
No comments:
Post a Comment