ZKX's LAB

汇编键盘中断问题 汇编 键盘中断 原理

2021-04-26知识5

汇编大神请进,本人会点汇编皮毛,但程序里要用到键盘中断。 按一下L键显示一个红色的L,按ESC退出以下为程序代码assume cs:codecode segmentin al,60Hmov cs:switch,al将键盘控制器发送的扫描码保存到switch变量里mov al,20Hout 20H,al以上两条令中断控制器可以再次相应中断irettemp1 dw?temp2 dw?switch db?start:mov ax,0mov ds,axmov bx,9*4+2mov ax,[bx]mov cs:temp1,axmov ax,codemov[bx],axmov bx,9*4mov ax,[bx]mov cs:temp2,axmov word ptr[bx],0保存并设置新的 INT 9 中断入口mov ax,0B800Hmov ds,ax显存段地址mov bx,0写现存时的偏移地址s:mov al,cs:switchcmp al,01Hjz exit判断是否是ESC,如果是,退出cmp al,26Hjnz s判断'L'键是否按下,如果不是,继续循环p:mov byte ptr[bx],76inc bxmov byte ptr[bx],00001100Binc bxmov cs:switch,0jmp s如果是'L',操作相应的显存,显示一个红色的'L'exit:mov ax,0mov ds,axmov bx,9*4+2mov ax,cs:temp1mov[bx],axmov bx,9*4mov ax,cs:temp2mov[bx],ax恢复原来的 INT 9 的中断入口mov ax,4C00Hint 21Hcode endsend start 展开

汇编语言程序设计中所谓的中断向量表指的是什么? 中断向量表,就是一2113堆地址,对于IBM PC来说,按照中断号数,5261从0开始,从小到4102大,排列在以 0 开始的内存地址上:运行1653DEBUG,输入显示数据命令 D 0:0,可得到系统基本硬件中断向量,如图:根据上面的显示,可得到如下中断向量0000:0000 00A7:1068 INT 00H—“0”作除数0000:0004 0070:018B INT 01H—单步中断0000:0008 038F:0016 INT 02H—非屏蔽中断(NMI)0000:000C 0070:018B INT 03H—断点中断0000:0010 0070:018B INT 04H—算术溢出错误0000:0014 020A:06B9 INT 05H—打印屏幕和BOUND越界0000:0018 020A:0740 INT 06H—非法指令错误0000:001C 020A:03FF INT 07H—处理器扩展无效0000:0020 020A:0746 INT 08H—时钟中断0000:0024 020A:040A INT 09H—键盘输入

求汇编使用DOS中断接收和处理键盘输入? 用10号功能调用啦!dseg segmentbuff db 10,?用10号功能调用啦!dseg segment buff db 10,?10 dup?dseg ends cseg segment assume ds:dseg,cs:cseg 。

#汇编 键盘中断 原理

随机阅读

qrcode
访问手机版