Ini adalah program menggunakan JWASM yang berfungsi mendeteksi tombol extended keyboard (alt, ctrl, capslock,numlock, insert, shif).
;=PROGRAM PENDETEKSI TOMBOL KEYBOARD EXTENDED=;
.model small
.stack 100h
.data
msg7 db 'tombol insert aktif $'
msg6 db 'tombol Caps lock aktif $'
msg5 db 'tombol Num lock aktif $'
msg4 db 'tombol Scroll lock aktif $'
msg3 db 'tombol Alt ditekan $'
msg2 db 'tombol Ctrl ditekan $'
msg1 db 'tombol shift kiri ditekan $'
msg0 db 'tombol shift kanan ditekan $'
.code
Start:
mov ah, 02h ;keyboard passes bit
int 16h
mov cx, 0 ;inisialisasi CX ke 0
ShrLoop:
shr al, 1 ;Shift al satu bit ke kanan
jc numberCheck ;jump ke cl number ketika carry = 1
inc cl ;increment cl counter
jnc shrloop ;restart loop ketika carry = 0
cmp cl, 8 ; compare cl dengan 8 jika bernilai true
je finish ; selesai
numberCheck:
jc numberCheck ;jump ke cl number ketika carry = 1
inc cl ;increment cl counter
jnc shrloop ;restart loop ketika carry = 0
cmp cl, 8 ; compare cl dengan 8 jika bernilai true
je finish ; selesai
numberCheck:
cmp cl, 0
je no0
cmp cl, 1
je no1
cmp cl, 2
je no2
cmp cl, 3
je no3
cmp cl, 4
je no4
cmp cl, 5
je no5
cmp cl, 6
je no6
cmp cl, 7
je no7
mov bx,0 ;Set bx jadi 0 supaya
shr bx,1 ;carry dapat direset
ret
no7:mov dx, offset msg7
call puts ; Memanggil procedure untuk menampilkan string/pesan yang diset diawal program
ret
no6:mov dx, offset msg6
call puts
ret
no5:mov dx, offset msg5
call puts
ret
no4:mov dx, offset msg4
call puts
ret
no3:mov dx, offset msg3
call puts
ret
no2:mov dx, offset msg2
call puts
ret
no1:mov dx, offset msg1
call puts
ret
no0:mov dx, offset msg0
call puts
ret
finish:mov ah, 4Ch ;End Program
int 21h
puts: ;menampilkan string
mov ah, 9h
int 21h
ret
End start
je no0
cmp cl, 1
je no1
cmp cl, 2
je no2
cmp cl, 3
je no3
cmp cl, 4
je no4
cmp cl, 5
je no5
cmp cl, 6
je no6
cmp cl, 7
je no7
mov bx,0 ;Set bx jadi 0 supaya
shr bx,1 ;carry dapat direset
ret
no7:mov dx, offset msg7
call puts ; Memanggil procedure untuk menampilkan string/pesan yang diset diawal program
ret
no6:mov dx, offset msg6
call puts
ret
no5:mov dx, offset msg5
call puts
ret
no4:mov dx, offset msg4
call puts
ret
no3:mov dx, offset msg3
call puts
ret
no2:mov dx, offset msg2
call puts
ret
no1:mov dx, offset msg1
call puts
ret
no0:mov dx, offset msg0
call puts
ret
finish:mov ah, 4Ch ;End Program
int 21h
puts: ;menampilkan string
mov ah, 9h
int 21h
ret
End start
0 komentar:
Posting Komentar