BÀI TẬP
Viết chương trình kiểm tra trạng thái Caps Lock cho biết Caps Lock đóng hay mở.
- Nếu Caps Lock đóng xuất chuỗi "Caps Lock off."
- Nếu Caps Lock mở xuất chuỗi "Caps Lock on."
Chương trình kết thúc khi ta nhấn phím ESC. Trong quá trình xuất chuỗi nếu như phím Caps Lock thay đổi trạng thái từ đóng sang mở hoặc từ mở sang đóng ta mới xuất chuỗi ứng với trạng thái mới.

CHƯƠNG TRÌNH MẪU

Code:

.Model small
.Stack
.Data
   s1 db 10,13,"Caps Lock On$"
   s2 db 10,13,"Caps Lock Off$"
.Code
Print Macro t
      lea dx,t
      mov ah,9
      int 21h
   EndM
Begin:
   mov ax,@data
   mov ds,ax
   
   mov ah,2
   int 16h
   and al,01000000b
   cmp al,01000000b
   je Cap_On
   jmp Cap_Off
   Lap:
      mov ah,2         ;doc trang thai cua phim dac biet
      int 16h
      and al,01000000b   
      pop cx
      cmp cl,al         ;so sanh voi trang thai da luu
      je Save
      cmp al,01000000b   ;kiem tra caps lock dong hay mo
      je Cap_On
      jmp Cap_Off
   Save:
      push ax            ;luu trang thai moi
      
      mov ah,1
      int 16h
      jz Lap
      
      mov ah,0         ;lay ma 2 byte tu phim vua nhan
      int 16h
      cmp al,1bh         ;so sanh voi ESC
      je Exit
      jmp Lap
   Cap_On:
      push ax            ;luu lai trang thai Capslock
      Print s1
      jmp Lap
   Cap_Off:
      push ax            ;luu lai trang thai Capslock
      Print s2
      jmp Lap
   Exit:
      mov ah,4ch
      int 21h
End Begin