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 用汇编语言更改BIOS中断服务例程_Assembly - Fatal编程技术网

Assembly 用汇编语言更改BIOS中断服务例程

Assembly 用汇编语言更改BIOS中断服务例程,assembly,Assembly,我想用自己的BIOS中断例程替换BIOS中断例程。但我不知道如何设置所涉及寄存器的值。你能告诉我cs和ip寄存器在通过向量表跟踪ISR中的作用吗。如果我想重写程序,我需要做什么 汇编语言的艺术中有一整章都是关于这一点的。编写ISR相当复杂,涉及一些问题,例如代码的可重入性。 基本上,您必须更改要修补的ISR的中断向量,以指向您的代码。这个向量(如果我没记错的话)位于从0000段开始的表中。 如果海德先生参考了本书的其他章节,你会发现一个PDF列表。如果你问这样低级(=接近硬件)的问题,你应该指定

我想用自己的BIOS中断例程替换BIOS中断例程。但我不知道如何设置所涉及寄存器的值。你能告诉我cs和ip寄存器在通过向量表跟踪ISR中的作用吗。如果我想重写程序,我需要做什么

汇编语言的艺术中有一整章都是关于这一点的。编写ISR相当复杂,涉及一些问题,例如代码的可重入性。
基本上,您必须更改要修补的ISR的中断向量,以指向您的代码。这个向量(如果我没记错的话)位于从0000段开始的表中。

如果海德先生参考了本书的其他章节,你会发现一个PDF列表。

如果你问这样低级(=接近硬件)的问题,你应该指定你使用的架构/cpu。THX BlackBear。但仍然存在一个问题,即语句mov word ptr es:[0ffh*4],offset SimpleISR mov word ptr es:[0ffh*4+2],seg SimpleISR无法使用NASM编译,它会提示:“coma、冒号或行尾预期”@user667139:我认为应该使用临时寄存器:mov ax、offset SimpleISR;mov-word-ptr-es[0ffh*4],ax;mov ax,seg simpleISR;mov单词ptr es[0ffh*4],ax。顺便说一句,它在哪一行给出错误?