0

# Program to subtract two 8 bit numbers using 8086 microprocessor?

Updated: 12/21/2022

Dhivyamano

Lvl 1
11y ago

Best Answer

I have a code for 16 bit subtraction..

just replace ax by al,bx by bl etc...

.code

main proc

mov ax,@data

mov ds,ax

lea dx,msg ;printing msg

mov ah,09h

int 21h

mov ax,x ;ax=x(any number)

mov bx,y ;bx=y( " ")

cmp ax,0 ;jump to l3 if ax is negtive

jb l3

cmp bx,0 ;jump to l6 if bx is negative

jb l6

cmp ax,bx ;if ax<bx,then jump to l1

jl l1

sub ax,bx ;else normal sub

mov diff,ax ;diff=result is stored

jmp l2

l1: ;iff (+)ax<(+)bx

neg bx ;bx=-bx

clc

add ax,bx

neg ax ;-ans=ans

mov diff,ax

mov dx,2dh ;print '-'

mov ah,02h

int 21h

jmp l2

l3: ;iff (-)ax

neg ax ;-ax=ax

cmp bx,0 ;jump to l4 if bx is negative

jb l4

clc

add ax,bx ;ax=(+)ax+(+)bx

mov ax,diff

mov dx,2dh ;print '-'

mov ah,02h

int 21h

jmp l2

l4: ;if (-)ax & (-)bx

neg bx ;-bx=bx

cmp ax,bx ;if ax>bx then jump to l5

jg l5

sub ax,bx ;else ax-bx

mov diff,ax

mov dx,2dh ;print '-'

mov ah,02h

int 21h

jmp l3

l5: ;if(-)ax>(-)bx

xchg ax,bx ;exchange ax and bx

sub ax,bx ;ax-bx

mov diff,ax ;ans is positive

jmp l2

l6: ;iff (-)bx

neg bx ;-bx=bx

add ax,bx ;ax-(-)bx

mov diff,ax ;ans will be positive

mov ah,4ch

int 21h

main endp

Wiki User

11y ago
This answer is:

## Add your answer:

Earn +20 pts
Q: Program to subtract two 8 bit numbers using 8086 microprocessor?
Write your answer...
Submit
Still have questions?