-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathM162.ASM
151 lines (130 loc) · 1.65 KB
/
M162.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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
.model small
.stack 100h
.data
num1 dw 0000h
num2 dw 0000h
msb dw 0000h
lsb dw 0000h
msg1 db "Enter 16 bit number:$"
msg2 db "The multiplication is:$"
.code
main proc
mov ax,@data
mov ds,ax ;data segment initialization
lea dx,msg1
mov ah,09h
int 21h ;prints message
mov ch,03h
mov ah,01h
int 21h
mov ah,00h
sub ax,30h
i1: rol ax,04h
dec ch
jnz i1
mov bx,ax
mov ah,01h
int 21h
mov ah,00h
sub ax,30h
rol ax,8h
add bx,ax
mov ah,01h
int 21h
mov ah,00h
sub ax,30h
rol ax,4h
add bx,ax
mov ah,01h
int 21h
mov ah,00h
sub ax,30h
add bx,ax
mov num1,bx
mov ah,02h
mov dl,0ah
int 21h
mov ah,02h
mov dl,0dh
int 21h
lea dx,msg1
mov ah,09h
int 21h
mov ch,03h
mov ah,01h
int 21h
mov ah,00h
sub ax,30h
i2: rol ax,04h
dec ch
jnz i2
mov bx,ax
mov ah,01h
int 21h
mov ah,00h
sub ax,30h
rol ax,08h
add bx,ax
mov ah,01h
int 21h
mov ah,00h
sub ax,30h
rol ax,04h
add bx,ax
mov ah,01h
int 21h
mov ah,00h
sub al,30h
add bx,ax
mov num2,bx
mov ah,02h
mov dl,0ah
int 21h
mov ah,02h
mov dl,0dh
int 21h
lea dx,msg2
mov ah,09h
int 21h
mov ax,num1
mul num2
mov lsb,ax
mov msb,dx
mov ax,msb
mov bx,ax
mov ch,04h
mov cl,04h
i3:
rol bx,cl
mov dx,bx
and dx,0fh
cmp dx,09h
jbe i4
add dx,07h
i4:
add dx,30h
mov ah,02h
int 21h
dec ch
jnz i3
mov ax,lsb
mov bx,ax
mov ch,04h
mov cl,04h
i5:
rol bx,cl
mov dx,bx
and dx,0fh
cmp dx,09h
jbe i6
add dx,07h
i6:
add dx,30h
mov ah,02h
int 21h
dec ch
jnz i5
mov ah,4ch
int 21h
main endp
end main