我提示用户输入:
mov ah, 0Ah
mov dx, OFFSET buffer
int 21h
我的任务告诉我 ctrl-c 应该“使用适当的错误消息中止程序”。
有人告诉我,每当调用或检测到 ctrl-c 时都会调用 int 23h。显然我可以通过 int 21h / ah=25h 注册我自己的中断处理程序。
但我不知道如何制作中断处理程序,也不知道它应该在我的代码中的什么位置。协助将不胜感激,在此先感谢您。
执行以下操作来编写您的自定义中断处理程序
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... $"
我希望这有助于弄清楚东西是如何工作的。这个中断只需在屏幕上写“新的中断处理程序”
据我所知,函数 ah=25h 除了将中断向量写入中断向量表之外什么也不做。
该表位于地址 0000:0000 并包含指向中断的段:偏移量指针。
这意味着:函数 25h 将简单地将段(CS 的值)写入地址 0000:008E,并将偏移量(中断处理程序的地址)写入 0000:008C。