我提示用户输入:
mov ah, 0Ah
mov dx, OFFSET buffer
int 21h
我的作业告诉我ctrl-c应该“用适当的错误信息中止程序”。
有人告诉我,只要调用或检测到ctrl-c,就会调用int 23h。显然我可以通过int 21h / ah = 25h注册我自己的中断处理程序。
但是我不知道如何创建一个中断处理程序,也不知道我的代码应该放在哪里。非常感谢您的帮助,谢谢您。
答案 0 :(得分:1)
据我所知,函数啊= 25h只会将中断向量写入中断向量表。
该表位于地址0000:0000,包含段:到中断的偏移指针。
这意味着:函数25h只是将段(CS的值)写入地址0000:008E,偏移量(中断处理程序的地址)写入0000:008C。
答案 1 :(得分:1)
执行以下操作来编写自定义中断处理程序
SettingIntVector:
mov ah,25h ;Here set your ah register for calling Interrupt vector
mov al,22h ;Your Interrupt Address
mov dx,IntHandlerCode ;Interrupt Handler
int 21h ;Dos Interrupt
IntHandlerCode:
mov ah,9
mov dx, offset our_text
mov ah,9
int 21h
iret
our_text db "new Interrupt Handler... $"
我希望这有助于弄清楚东西的运作方式。这个中断只需将“新的中断处理程序”写入屏幕