-
Notifications
You must be signed in to change notification settings - Fork 0
/
lab12.asm
160 lines (130 loc) · 2.71 KB
/
lab12.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
152
153
154
155
156
157
158
159
160
; /************************* TASK 1: Setting up Mouse *********************************************************8
; .model small
; .stack 100h
; .data
; prompt1 db 'Mouse not connected!', '$'
; prompt2 db 'Mouse connected, Number of Buttons: ', '$'
; .code
; main proc
; mov ax, @data
; mov ds, ax
; mov ax, 0
; int 33h
; cmp ax, 0
; jne exit
; lea dx, prompt1
; mov ah, 09
; int 21h
; jmp end1
; exit:
; lea dx, prompt2
; mov ah, 09
; int 21h
; mov dl, bl
; add dl, 48
; mov ah, 02
; int 21h
; end1:
; mov AH,4Ch
; int 21h
; main endp
; end
; //******************************** Displaying Mouse ***************************************************************
; .model small
; .stack 100h
; .data
; .code
; main proc
; mov ah, 00h
; mov al, 13
; int 10h
; mov ax, 1
; int 33h
; mov cx, 10
; mov dx, 100
; mov ax, 4
; int 33h
; mov AH,4Ch
; int 21h
; main endp
; end
; //******************************* Display Pixel on Coordinates ********************************************************
; .model small
; .stack 100h
; .data
; .code
; main proc
; ; // Mouse interrupt
; ; Show/Hide Mouse:
; ; INT 33h, AX = 1 (show), AX = 2 (hide)
; mov ah, 00h
; mov al, 13
; int 10h
; keepgoing:
; mov ax, 1
; int 33h
; mov ax, 3
; int 33h
; mov ah, 0ch
; mov al, 0fh
; mov bh, 0h
; int 10h
; ; Get Mouse Position & Status:
; ; INT 33h, AX = 4
; mov ax, 4
; int 33h
; ; Get Button Press Information:
; ; INT 33h, AX = 5
; mov ax, 5
; mov bx, 0
; int 33h
; cmp ax, 1
; jne keepgoing
; mov AH,4Ch
; int 21h
; main endp
; end
; //*********************** Finding out key is pressed or not **********************************************************
; //************************ b. Find out which key is pressed *********************************************************
; .model small
; .stack 100h
; .data
; prompt1 db ' was pressed!','$'
; .code
; main proc
; mov ax, @data
; mov ds, ax
; mov ah, 00
; int 16h
; mov dl, al
; mov ah, 02
; int 21h
; lea dx, prompt1
; mov ah, 09
; int 21h
; mov AH,4Ch
; int 21h
; main endp
; end
; // TASK 2: Write a program that prints the letter “A” continuously, it will stop only when Q or q is pressed.
.model small
.stack 100h
.data
.code
main proc
mov dl, 65
print:
mov ah, 02
int 21h
mov ah, 1
int 16h
cmp al, 'Q'
je exit1
cmp al, 'q'
je exit1
jmp print
exit1:
mov AH,4Ch
int 21h
main endp
end