0% found this document useful (0 votes)
3 views4 pages

MASM Programs Word

The document contains four assembly language programs aimed at performing arithmetic operations on multibyte and 16-bit numbers. Program 1 adds two multibyte numbers, Program 2 subtracts them, Program 3 multiplies two 16-bit numbers, and Program 4 divides two numbers. Each program includes initialization, arithmetic operations, and output handling.

Uploaded by

yashlanjewar370
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views4 pages

MASM Programs Word

The document contains four assembly language programs aimed at performing arithmetic operations on multibyte and 16-bit numbers. Program 1 adds two multibyte numbers, Program 2 subtracts them, Program 3 multiplies two 16-bit numbers, and Program 4 divides two numbers. Each program includes initialization, arithmetic operations, and output handling.

Uploaded by

yashlanjewar370
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

PROGRAM 1

AIM: To Write programTo Add 2 Multibyte Nos

Program:

.MODEL SMALL
.DATA
.CODE
BACK
:
OVER:
N1 DQ 122334455667788H ; FIRST NUMBER
N2 DQ 122334455667788H ; SECOND NUMBER
SUM DT ?
MOV AX, @DATA ; INITIALIZE THE DATA REGISTER
MOV DS, AX
LEA SI, N1 ; POINTER TO FIRST NUMBER
LEA DI, N2 ; POINTER TO SECOND NUMBER
LEA BX, SUM
MOV CL, 04H ; COUNTER FOUR WORD
CLC
MOV AX, [SI] ; MOVE FIRST WORD
ADC AX, [DI]
MOV [BX], AX
INC SI
INC SI
INC DI
INC DI
INC BX
INC BX
DEC CL
JNZ BACK ; REPEAT UNTIL COUNTER BECOMES ZERO
JNC OVER
MOV AX, 0001H
MOV [BX], AX
MOV AH, 4CH
INT 21H
END
OUTPUT:
PROGRAM 2

AIM: To Write program Subtract Two Multibyte Numbers

Program:

.MODEL SMALL
.DATA
.CODE
BACK
:
N1 DQ 122334455667788H ; FIRST NUMBER
N2 DQ 111111111111111H ; SECOND NUMBER
RESULT DT ?
MOV AX, @DATA ; INITIALIZE THE DATA REGISTER
MOV DS, AX
LEA SI, N1 ; POINTER TO FIRST NUMBER
LEA DI, N2 ; POINTER TO SECOND NUMBER
LEA BX, RESULT
MOV CX, 04H ; COUNTER FOUR WORD
CLC
MOV AX, [SI] ; MOVE FIRST WORD
SBB AX, [DI]
MOV [BX], AX
INC SI
INC SI ; MOVE SI, DI CONTENTS
INC DI
INC DI
INC BX ; INCREMENT BX TO STORE RESULTS
INC BX
LOOP BACK
MOV AH, 4CH
INT 21H
END
OUTPUT:
PROGRAM 3

AIM: To Write program Multiply Two 16-Bit Numbers.

Program:

MODEL SMALL
.STACK
.DATA
.CODE
START:
MULTIPLICAND DW 00FFH; FIRST WORD HERE
MULTIPLIER DW 00FFH; SECOND WORD HERE
PRODUCT DW 2 DUP(0); RESULT OF MULIPLICATION HERE
MOV AX, @DATA
MOV DS, AX
MOV AX, MULTIPLICAND
MUL MULTIPLIER
MOV PRODUCT, AX
MOV PRODUCT+2, DX
MOV AH, 4CH
INT 21H
END START
OUTPUT:
PROGRAM 4

AIM: To Write program Divide Two Numbers

Program:

MODEL SMALL
.DATA
.CODE
W1 DW 02222H
W2 DW 1111H
Q DW ?
R DW ?
MOV AX, @DATA
MOV DS, AX ; INITIALIZE DATA SEGMENT
MOV AX, W1 ; GET DIVIDEND
MOV BX, W2 ; GET DIVISOR
DIV BX ; DIVIDE
MOV Q, AX ; STORE QUOIENT
MOV R, DX ; STORE REMAINDER
MOV AH, 4CH
INT 21H
END ; END PROGRAM
OUTPUT:

You might also like