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