Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
26 views6 pages

MPMC Programs

This document contains code examples demonstrating 16-bit and 32-bit arithmetic operations (addition, subtraction, multiplication, and division) in x86 assembly language. The code segments load operands from data segments, perform the arithmetic operations, and store the results back to the data segments. Interrupts are included after each operation to test the code.

Uploaded by

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

MPMC Programs

This document contains code examples demonstrating 16-bit and 32-bit arithmetic operations (addition, subtraction, multiplication, and division) in x86 assembly language. The code segments load operands from data segments, perform the arithmetic operations, and store the results back to the data segments. Interrupts are included after each operation to test the code.

Uploaded by

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

1.

Arithmetic Operations

16bit addition
data segment
a dw 0202h
b dw 0408h
c dw ?
data ends

code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ax,a
mov bx,b
add ax,bx
mov c,ax
int 3
code ends
end start

32bit addition
data segment
abc dd 12345678h
def dd 22132223h
ghi dw ?
data ends

code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
mov dl,00h
mov ax, word ptr abc
mov bx, word ptr def
add ax,bx
mov word ptr ghi,ax
mov ax, word ptr abc+2
mov bx, word ptr def+2
adc ax,bx
mov word ptr ghi+2,ax
jnc move
inc dl
move: mov byte ptr ghi+4,dl
int 3
code ends
end start

16bit sub
data segment
a dw 9A88h
b dw 8765h
c dw ?
data ends

code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov ax,a
mov bx,b
sub ax,bx
mov c,ax
int 3
code ends
end start

32bit sub
data segment
abc dd 987654332h
def dd 876543221h
ghi dw ?
data ends

code segment
assume cs:code, ds:data
start:
mov ax,data
mov ds,ax
mov dl,00h
mov ax, word ptr abc
mov bx, word ptr def
sub ax,bx
mov word ptr ghi,ax
mov ax, word ptr abc+2
mov bx, word ptr def+2
sbb ax,bx
mov word ptr ghi+2,ax
jnc move
inc dl
move: mov byte ptr ghi+4,dl
int 3
code ends
end start

16bit mul

data segment
a dw 1234h
b dw 5678h
c dd ?
data ends

code segment
assume ds:data, cs:code
start:
mov ax,data
mov ds,ax
mov ax,a
mov bx,b
mul bx
mov word ptr c,ax
mov word ptr c+2,dx
int 3
code ends
end start
32bit mul

data segment
abc dd 12345678H
def dd 23456789H
ghi dq ?
data ends

code segment
assume cs:code, ds:data
start:
mov ax, data
mov ds, ax
mov ax, word ptr abc
mul word ptr def
mov word ptr ghi, ax
mov cx, dx
mov ax, word ptr abc+2
mul word ptr def
add cx, ax
mov bx, dx
jnc move
add bx,0001H

move: mov ax,word ptr abc


mul word ptr def+2
add cx, ax
mov word ptr ghi+2, cx
mov cx,dx

jnc ma
add bx, 0001H
ma: mov ax, word ptr abc+2
mul word ptr def+2
add cx, ax

jnc mb
add dx, 0001H
mb: add cx, bx
mov word ptr ghi+4, cx

jnc mc
add dx, 0001H
mc: mov word ptr ghi+6, dx
int 3
code ends
end start

16bit div

data segment
a dw 4444h
b dw 0002h
c dw ?
data ends

code segment
assume ds:data, cs:code
start:
mov ax,data
mov ds,ax
mov ax,a
mov bx,b
div bx
mov c,ax
int 3
code ends
end start

32 bit division
data segment
a dw 00008h
b dw 00002h
c dw ?
data ends

code segment
assume ds:data, cs:code
start:
mov ax,data
mov ds,ax
mov ax,a
mov bx,b
div bx
mov c,ax
int 3
code ends
end start

You might also like