gpt4 book ai didi

assembly - 从 IRQ 处理程序获取返回地址?

转载 作者:行者123 更新时间:2023-12-02 05:30:34 25 4
gpt4 key购买 nike

如何在 32 位保护模式(显然是 x86)下查看 PIT IRQ 处理程序的返回值?我想我可以这样做,但我不完全确定。

pop eax ; pop last thing from stack
mov dword return_address,eax
push eax
iret

最佳答案

这会从堆栈中读取正确的项目,但如果你这样做,你会破坏 eax

一个正确的 ISR,在其执行结束时,必须将所有使用的寄存器恢复到 ISR 开始时它们所处的状态。

另一件需要注意的事情... return_address 将通过段寄存器(此处为 ds)(隐式地)引用。如果 ds 在 ISR 和 ISR 中断的代码中始终相同,这是可以的。但是,如果被中断的代码更改了 ds,则 ISR 必须在其开头保存 ds,将其设置为正确的选择器值,使用它然后恢复它。如果不这样做,mov 指令可能会损坏内存或导致异常。

关于assembly - 从 IRQ 处理程序获取返回地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12445100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com