-
Notifications
You must be signed in to change notification settings - Fork 0
/
Dowile.asm
78 lines (78 loc) · 868 Bytes
/
Dowile.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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
data segment para public "data"
a dw 1
b dw 1
c dw 1
PRINT_BUF DB ' ' DUP(10)
BUFEND DB '$'
data ends
stk segment stack
db 256 dup ("?")
stk ends
code segment para public "code"
main proc
assume cs:code,ds:data,ss:stk
mov ax,data
mov ds,ax
mov ax,17
push ax
pop ax
mov a,ax
mov ax,4
push ax
pop ax
mov b,ax
mov ax,a
push ax
mov ax,b
push ax
pop bx
pop ax
sub ax,bx
push ax
mov ax,2
push ax
pop bx
pop ax
mul bx
push ax
mov ax,b
push ax
mov ax,4
push ax
pop bx
pop ax
cwd
div bl
push ax
pop bx
pop ax
add ax,bx
push ax
pop ax
mov c,ax
push ax
mov ax,c
CALL PRINT
pop ax
mov ax,4c00h
int 21h
main endp
PRINT PROC NEAR
MOV CX, 10
MOV DI, BUFEND - PRINT_BUF
PRINT_LOOP:
MOV DX, 0
DIV CX
ADD DL, '0'
MOV [PRINT_BUF + DI - 1], DL
DEC DI
CMP AL, 0
JNE PRINT_LOOP
LEA DX, PRINT_BUF
ADD DX, DI
MOV AH, 09H
INT 21H
RET
PRINT ENDP
code ends
end main