-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsum-vars.asm
72 lines (51 loc) · 1.81 KB
/
sum-vars.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
TITLE sum-vars : An AL Program to read two digits whose sum is less than 0,
; computes and display their sum (using variables).
.MODEL SMALL
.STACK 100H
.DATA
PROMPT_1 DB 'Enter the First digit : $'
PROMPT_2 DB 'Enter the Second digit : $'
PROMPT_3 DB 'Sum of First and Second digit : $'
VALUE_1 DB ?
VALUE_2 DB ?
.CODE
MAIN PROC
MOV AX, @DATA ; initialize DS
MOV DS, AX
LEA DX, PROMPT_1 ; load and display the PROMPT_1
MOV AH, 9
INT 21H
MOV AH, 1 ; read a character
INT 21H
SUB AL, 30H ; save First digit in VALUE_1 in ASCII code
MOV VALUE_1,AL
MOV AH, 2 ; carriage return
MOV DL, 0DH
INT 21H
MOV DL, 0AH ; line feed
INT 21H
LEA DX, PROMPT_2 ; load and display the PROMPT_2
MOV AH, 9
INT 21H
MOV AH, 1 ; read a character
INT 21H
SUB AL, 30H ; save Second digit in VALUE_2 in ASCII code
MOV VALUE_2,AL
MOV AH, 2 ; carriage return
MOV DL, 0DH
INT 21H
MOV DL, 0AH ; line feed
INT 21H
LEA DX, PROMPT_3 ; load and display the PROMPT_3
MOV AH, 9
INT 21H
MOV AL, VALUE_1 ; add First and Second digit
ADD AL, VALUE_2
ADD AL, 30H ; convert ASCII to DECIMAL code
MOV AH, 2 ; display the character
MOV DL, AL
INT 21H
MOV AH, 4CH ; return control to DOS
INT 21H
MAIN ENDP
END MAIN