我在 nasm 中创建了一个 tsr 程序。它工作正常,但当我按下“ESC”按钮时,我还必须将其从内存中删除并将所有挂钩的中断恢复为原始状态。这是我按下“ESC”按钮时运行的代码的一部分。
uninst:
cli
xor ax, ax
mov es, ax
mov ax, [stari_int09_seg]
mov [es:09h*4+2], ax
mov dx, [stari_int09_off]
mov [es:09h*4], dx
sti
mov ah,49h
int 21h
iret
所以我恢复了我更改为原始值的 int 09h 并用 清除了我的内存mov ah,49h
,但是当我按下“ESC”时,我的 dos 控制台变得无响应。这意味着我没有以正确的方式删除我的 TSR。我的第一个问题是我错过了什么吗?是否有任何有 TSR 计划经验的人可以真正给出适当的答案。