汇编语言 外部中断

外部中断,也称为硬件中断,它们从8086的不可屏蔽中断引脚NMI或可屏蔽中断引脚 INTR 引入。从INTR脚上来的请求信号,CPU可以立即响应,也可以暂时不响应。如果CPU内部标志寄存器中的IF置1,则允许响应这类中断;若IF标志为0,则不予响应。

以下是从键盘输入产生中断响应,改变二进制的值的程序代码。

assume cs:code, ds:data, ss:stack

data segment
		db 128 dup(0)
data ends

stack segment stack
		db 128 dup(0)
stack ends

code segment 

		start:  mov ax, stack
				mov ss, ax
				mov sp, 128
				
				call init_reg
				call show_keyword_status
				
				mov ax, 4C00H
				int 21H

init_reg:
				mov bx, 0B800H
				mov es, bx
				
				mov bx, 40H
				mov ds, bx
				ret
;===============================================================		
show_status:	push cx
				push dx
				push ds
				push es
				push si
				push di
				
				mov cx, 8

showStatus:		mov dx, 0			;Shl shr  
				shl al, 1			; CF = 1     '1'
				adc dx, 30H
				mov es:[di], dl
				add di, 2
				loop showStatus
				
				pop di
				pop si
				pop es
				pop ds
				pop dx
				pop cx
				ret
		
show_keyword_status:
				mov si, 17H

testA:			mov al, ds:[si]
				mov di, 160 * 10 + 40 * 2
				call show_status
				jmp testA
				
				ret
							
code ends

end start

键盘什么都不按的情况下,如下所示
在这里插入图片描述

当按下 Ctrl 和 Alt键产生中断响应 数值会变为 00101100
在这里插入图片描述
当按下Insert 键 数值会变为 10100000
在这里插入图片描述
按下 Capslock键 数值会变为 01100000
在这里插入图片描述
还可以按下左右两边的Shift键会让右边的第一位和第二位发生变化。

总结:
1.读出60H端口的扫描码
2.如果是字符键的扫描,将这个扫描码和对应的 ASCII放到BIOS中的键盘缓冲区
3.对键盘系统的相关控制
4.扫描码 按下去为通码,松开为断码
- 断码 = 通码 + 80H

键盘缓冲区大小为 15字型数据

  • 高位字节存放扫描码
  • 低位字节存放 ASCII码

扫描码

ESC01
1~002~0A
00B
-0C
=0D
Bakspace)E
Tab0F
Q10
W11
E12
R13
T14
Y15
U16
I17
O18
P19
[1A
]1B
Enter1C
Ctrl1D
A1E
S1F
D20
F21
G22
H23
J24
K25
L26
;27
,28
29
Shift(左)2A
\2B
Z2C
X2D
C2E
V2F
B30
M31
N32
,33
.34
/35
Shift(右)36
Prtsc37
Alt38
Space39
CapsLock
F1~F103B~44
NumLock45
ScrollL0ck46
Home47
48
pageUp49
-4A
4B
4D
+4E
End4F
50
pageDown51
Ins52
Del53
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值