-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAdd_1dg.asm
More file actions
149 lines (129 loc) · 1.77 KB
/
Copy pathAdd_1dg.asm
File metadata and controls
149 lines (129 loc) · 1.77 KB
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
.model small
.386
.data
A1 DB 20 DUP (?)
A2 DB 20 DUP (?)
DATA1 dw 0000H
DATA2 DW 0000H
msg db 10,13,"Enter the size of the arrays :: $"
msg2 db 10,13,"Enter the first array :: $"
msg3 db 10,13,"The entered array is :: $"
msg4 db 10,13, "Enter the second array ::$"
msg5 db 10,13, "The sum of both array is ::$"
.code
.startup
MOV AH,09
MOV DX,OFFSET msg
INT 21H
MOV CX, 2
L4: MOV AH,01
INT 21H
CMP AL,'A'
JGE L9
SUB AL,30H
JMP L8
L9: SUB AL,37H
L8: SHL BX, 4
ADD BL, AL
LOOP L4
MOV AL, BL
MOV CL, AL
MOV AH, 0
MOV DATA1, AX
MOV CX, DATA1
MOV AH,09
MOV DX,OFFSET msg2
INT 21H
;MOV AH,0
MOV CX, DATA1
LEA SI, A1
L1: MOV DL, 0AH ; jump onto next line
MOV AH, 02H
INT 21H
MOV AH,01H
INT 21H
SUB AL,30H
MOV [SI], AL
INC SI
LOOP L1
MOV AH, 09H
MOV DX, OFFSET MSG3
INT 21H
MOV CX, DATA1
LEA SI, A1
L2:mov ah, 02h
mov dl, 0ah
int 21h
MOV DL, [SI]
ADD DL, 30h
MOV AH, 02
INT 21H
INC SI
LOOP L2
MOV CX, DATA1
MOV AH,09
MOV DX,OFFSET msg4
INT 21H
MOV AH,0
LEA DI, A2
L3: MOV DL, 0AH ; jump onto next line
MOV AH, 02H
INT 21H
MOV AH, 01H
INT 21H
SUB AL,30H
MOV [DI], AL
INC DI
LOOP L3
MOV AH, 09H
MOV DX, OFFSET MSG3
INT 21H
MOV CX, DATA1
LEA DI, A2
L14:mov ah, 02h
mov dl, 0ah
int 21h
mov dl, 0dh
int 21h
MOV DX, [DI]
ADD DL, 30h
MOV AH, 02
INT 21H
INC DI
LOOP L14
LEA SI, A1
LEA DI, A2
MOV CX, DATA1
ADDA: MOV AL, [SI]
ADD AL, [DI]
MOV [SI], AL
INC DI
INC SI
LOOP ADDA
MOV AH, 09H
MOV DX, OFFSET MSG5
INT 21H
MOV CX, DATA1
LEA SI, A1
L5:mov ah, 02h
mov dl, 0ah
int 21h
MOV DATA2, CX
MOV CX, 2
MOV BL, [SI]
ADDA1: ROL BL, 4
MOV DL, BL
AND DL, 0FH
CMP Dl, 9
JA L6
ADD DL, 30h
JMP L7
L6: ADD DL, 37H
L7: MOV AH, 02
INT 21H
LOOP ADDA1
MOV CX, DATA2
INC SI
LOOP L5
.EXIT
END