0% found this document useful (0 votes)
389 views

Program To Add Two 32 Bit Numbers - ProjectsGeek

Uploaded by

Sss
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
389 views

Program To Add Two 32 Bit Numbers - ProjectsGeek

Uploaded by

Sss
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

(https://projectsgeek.

com/)

Program to Add Two 32 Bit Numbers


May 4, 2011 by TestAccount (https://projectsgeek.com/author/admin_projects)

0
(/#facebook) (/#twitter) (/#whatsapp)
(/#tumblr) (/#email)

(https://images.projectsgeek.com/2011/05/Add-Two-32-Bit-Numbers.jpg)
Objective
Write a Program to Add Two 32 Bit Numbers in Assembly language . To add 32
bit numbers AX Register should load  LSB of the number . BX Register should
load MSB of the number of the first Number.
For more programs on assembly language codes
(https://projectsgeek.com/assembly-language-codes), you can find it here.
We have two double word numbers i.e. 32 bit numbers.
Initially we will load the first 32 bit into the registers AX and BX. AX contains the
LSB while BX contains the MSB, using MOV instruction.
Now we will load the second 32 bit number into the registers CX and DX with CX
containing the LSB and DX containing the MSB.
First we will add the two LSBs i.e. contents of AX and CX registers, using ADD
instruction. Now we will the contents of the two MSBs i.e. contents of BX and DX
registers. For this addition we will use the ADC instruction (add with carry) so
that if any carry is generated in the LSB addition it will be added.
The result is stored in AX and BX registers. AX contains the LSB and BX contains
the MSB after addition.
Display the result using display routine.
 
B
X
:
A 1
X 2
= 3
1 4
For example 2 5
3 6
4 7
5 8
6 H
7
8
H
D
X
:
C 1
X 1
= 1
1 1
1 + 1
1 1
1 1
1 1
1 H
1
1
H
2
3
4
5
6
7
8
9
H

Algorithm to Add Two 32 Bit Numbers

Step I        :    Initialize the data segment.


Step II       :   Load the LSB of first number into AX register.
Step III     :    Load the MSB of first number into BX register.
Step IV     :    Load the LSB of the second number into CX register.
Step V       :    Load the MSB of the second number into DX register.
Step VI     :    Add the LSBs of two number.
Step VII    :   Add the MSBs of two numbers along with carry.
Step VIII  :    Display the result.
Step IX     :    Stop.
Program to Add Two 32 Bit Numbers
.model small
.data
op1 dd 12345678h
op2 dd 11111111h
ans dd ?
.code
mov ax, @data
mov ds, ax
mov ax, word ptr op1 ; lsb of number1 in ax
mov bx, word ptr op1+2 ; msb of number1 in bx
mov cx, word ptr op2 ; lsb of number2 in cx
mov dx, word ptr op2+2 ; msb of number1 in dx
add ax, cx ; add msb + msb + carry
mov word ptr ans, ax ; lsb answer
mov word ptr ans+2, bx ; msb answer
mov bx, word ptr ans+2 ; Result in reg bx
mov dh, 2
l1: mov ch, 04h ; Count of digits to be
mov cl, 04h ; Count to roll by 4 bit
l2: rol bx, cl ; roll bl so that msb co
mov dl, bl ; load dl with data to b
and dl, 0fH ; get only lsb
cmp dl, 09 ; check if digit is 0-9
jbe l4
add dl, 07 ; if letter add 37H else
l4: add dl, 30H
mov ah, 02 ; INT 21H (Display chara
int 21H
dec ch ; Decrement Count
jnz l2
dec dh
cmp dh, 0
mov bx, word ptr ans ; display lsb of answer
jnz l1
mov ah, 4ch ; Terminate Program
int 21h
end

How to Run this Program


For Running this program you should have installed Tasm on you computer . If
you have not installed Tasm  yet please install from  Here
(https://www.ziddu.com/download/19131900/TASM.rar.html) .

C:\programs>tasm 32add.asm
Turbo Assembler Version 3.0 Copyright (c) 1988, 1991 Borland International
Assembling file: 32add.asm
Error messages: None
Warning messages: None
Passes: 1
Remaining memory: 437k
C:\programs>tlink 32add.obj
Turbo Link Version 3.0 Copyright (c) 1987, 1990 Borland International
Warning: No stack
C:\programs>32add
23456789
Download Java Project (https://projectsgeek.com/java-mini-projects-with-source-
code)

Download Visual Basic Projects (https://projectsgeek.com/visual-basic-projects-with-


source-code)

Download .Net Projects (https://projectsgeek.com/net-mini-projects-source-code)

Download PHP Projects (https://projectsgeek.com/php-projects-source-code)

Download C++ Projects (https://projectsgeek.com/2014/10/c-projects-source-


code.html)

Latest Projects Ideas (https://projectsgeek.com/2013/12/project-ideas-for-final-year-


computer-engineering.html)

Assembly Codes (https://projectsgeek.com/tag/assemblycodes)

tastructure Assignments (https://projectsgeek.com/tag/datastructureassignments)

Computer Graphics Lab (https://projectsgeek.com/2013/12/computer-graphics-codes-


in-c-language.html)

perating system Lab (https://projectsgeek.com/tag/os-problems)

You might also like