Tuesday, June 26, 2012

51. 16 & 32-BIT ADDITIONS IN 8086


16-BIT ADDITION


DATA SEGMENT
NUM DW 1234H, 0F234H
SUM DW 2 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,NUM 



MOV BX,0H 
ADD AX,NUM+2 
JNC DOWN 
INC BX 
DOWN: MOV SUM,AX 
MOV SUM+2,BX 
MOV AH,4CH
INT 21H
CODE ENDS
END START


INPUT :     1234H,   F234H
OUTPUT : 10468H




32-BIT ADDITION



DATA SEGMENT
NUM1 DW 0FFFFH,0FFFFH
NUM2 DW 1111H,1111H
SUM DW 4 DUP(0)
dATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AX,NUM1
ADD AX,NUM2
MOV SUM,AX
MOV AX,NUM1+2
ADC AX,NUM2+2
JNC DOWN 
MOV SUM+4,01H
DOWN: MOV SUM+2,AX
MOV AH,4CH
INT 21H
CODE ENDS
END START


INPUT:     0FFFFFFFFH,      011111111H
OUTPUT: 0111111110H




32-BIT ADDITION USING DD DIRECTIVE



DATA SEGMENT
NUM1 DW 12345678H
NUM2 DW 12345678H
SUM DW 3 DUP(0)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
LEA SI,NUM1 
LEA DI,NUM2 
MOV AX,[SI]
ADD AX,[DI]
MOV CX,[SI+2]
ADC CX,[DI+2] 
JNC DOWN 
MOV SUM+4,01H 
DOWN:MOV SUM,AX 
MOV SUM+2,CX 
MOV AH,4CH
INT 21H
CODE ENDS
END START


INOUT:      12345678H,     12345678H
OUTPUT:   2468ACF0H