日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汇编语言 外部中断

發布時間:2025/5/22 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汇编语言 外部中断 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

外部中斷,也稱為硬件中斷,它們從8086的不可屏蔽中斷引腳NMI或可屏蔽中斷引腳 INTR 引入。從INTR腳上來的請求信號,CPU可以立即響應,也可以暫時不響應。如果CPU內部標志寄存器中的IF置1,則允許響應這類中斷;若IF標志為0,則不予響應。

以下是從鍵盤輸入產生中斷響應,改變二進制的值的程序代碼。

assume cs:code, ds:data, ss:stackdata segmentdb 128 dup(0) data endsstack segment stackdb 128 dup(0) stack endscode segment start: mov ax, stackmov ss, axmov sp, 128call init_regcall show_keyword_statusmov ax, 4C00Hint 21Hinit_reg:mov bx, 0B800Hmov es, bxmov bx, 40Hmov ds, bxret ;=============================================================== show_status: push cxpush dxpush dspush espush sipush dimov cx, 8showStatus: mov dx, 0 ;Shl shr shl al, 1 ; CF = 1 '1'adc dx, 30Hmov es:[di], dladd di, 2loop showStatuspop dipop sipop espop dspop dxpop cxretshow_keyword_status:mov si, 17HtestA: mov al, ds:[si]mov di, 160 * 10 + 40 * 2call show_statusjmp testAretcode endsend 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

總結

以上是生活随笔為你收集整理的汇编语言 外部中断的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。