Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 需要在MS-DOS中连接新键盘中断的帮助吗_Assembly_Dos_X86 16_Interrupt Handling_Keyboardinterrupt - Fatal编程技术网

Assembly 需要在MS-DOS中连接新键盘中断的帮助吗

Assembly 需要在MS-DOS中连接新键盘中断的帮助吗,assembly,dos,x86-16,interrupt-handling,keyboardinterrupt,Assembly,Dos,X86 16,Interrupt Handling,Keyboardinterrupt,我正在为一个装配班做作业 我以前曾设法使我的计时器中断显示,并在每次滴答声时更新一个“时钟” 我试图用这些知识来代替我的键盘中断。但即使我对新键盘中断处理程序的安装进行注释,我的程序也会干扰MS-DOS活动(即无法运行任何可执行文件,只能使用“dir”、“cd”和类似命令): 因为即使在我注释掉安装时也存在问题,所以我认为问题在于取消安装或旧的_密钥保存。然而,我不知道是什么错了;安装和解除安装代码本质上不应该与计时器中断的安装/解除安装代码类似吗 如果您能提供帮助,我们将不胜感激 mo

我正在为一个装配班做作业

我以前曾设法使我的计时器中断显示,并在每次滴答声时更新一个“时钟”

我试图用这些知识来代替我的键盘中断。但即使我对新键盘中断处理程序的安装进行注释,我的程序也会干扰MS-DOS活动(即无法运行任何可执行文件,只能使用“dir”、“cd”和类似命令):

因为即使在我注释掉安装时也存在问题,所以我认为问题在于取消安装或旧的_密钥保存。然而,我不知道是什么错了;安装和解除安装代码本质上不应该与计时器中断的安装/解除安装代码类似吗

如果您能提供帮助,我们将不胜感激

    mov ds, ax

    old_key DD 00000000h

    MOV    AL, 9h                 ;+-

你不应该把代码和数据混为一谈。CPU不知道
old_key
不是代码,所以它会很高兴地尝试执行它。将变量移动到
设置
标签之前,或插入跳转指令跳过它

有点离题,这帮助我将新的键盘中断与旧的键盘中断挂钩。但是,仍然无法帮助解除安装:
    mov ds, ax

    old_key DD 00000000h

    MOV    AL, 9h                 ;+-