-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path2_2.ASM
More file actions
45 lines (40 loc) · 986 Bytes
/
2_2.ASM
File metadata and controls
45 lines (40 loc) · 986 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
NAME EX2_2;add and subtract of two 16-bit BCD numbers
;Copyleft(c), Siarnold, 2017
DATA SEGMENT
A1 DB 83H, 05H; adder one = 0583D
A2 DB 74H, 02H; adder two = 0274D
SUM DB 2 DUP(?)
DIF DB 2 DUP(?)
DATA ENDS
STACK SEGMENT PARA STACK
DB 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME DS:DATA, ES:DATA, SS:STACK, CS:CODE
START: MOV AX, DATA; the old 3 lines
MOV DS, AX
MOV ES, AX
MOV CX, 2;sum
MOV SI, 0
CLC
LOOP1: MOV AL, A1[SI]
ADC AL, A2[SI]
DAA;decimal adjustment for addition
MOV SUM[SI], AL
INC SI
DEC CX
JNZ LOOP1
MOV CX, 2;substract
MOV SI, 0
CLC
LOOP2: MOV AL, A1[SI]
SBB AL, A2[SI]
DAS;decimal adjustment for substract
MOV DIF[SI], AL
INC SI
DEC CX
JNZ LOOP2
MOV AH, 4CH
INT 21H
CODE ENDS
END START