-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy path8BCD.ASM
64 lines (56 loc) · 1.15 KB
/
8BCD.ASM
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
.model small
add_BCD macro num1,num2,res
mov ax,0
mov al,num1
add al,num2
daa
mov res,al
endm
sub_BCD macro num1,num2,res
mov ax,0
mov al,num1
sub al,num2
das
mov res,al
endm
mul_BCD macro num1,num2,res
local up
mov ax,0
mov cx,0
mov cl,num2
up:add al,num1
daa
loop up
mov res,ax
endm
div_BCD macro num1,num2,quo,rem
local up
mov ax,0
mov al,num1
up: sub al,num2
das
inc ah
cmp al,num2
jnc up
mov quo,ah
mov rem,al
endm
.data
num1 db 9
num2 db 3
res_add db 0
res_sub db 0
res_mul dw 0
res_quo db 0
res_rem db 0
.code
mov ax,@data
mov ds,ax
add_BCD num1,num2,res_add
sub_BCD num1,num2,res_sub
mul_BCD num1,num2,res_mul
div_BCD num1,num2,res_quo,res_rem
mov ah,4ch
int 21h
ends
end