assembly - 使用 DOS 中断 0Ah 中止输入 (ctrl-c) 时显示错误消息(读取输入到缓冲区)

标签 assembly x86 dos x86-16

我提示用户输入:

mov ah, 0Ah
mov dx, OFFSET buffer
int 21h

我的作业告诉我 control-c 应该“用适当的错误消息中止程序”。这是如何完成的?

提前谢谢您。

最佳答案

始终引用 Ralf Brown 的 16 位编程中断列表。

Int 21/AH=0Ah (BUFFERED INPUT)说:

Notes: ^C/^Break are checked, and INT 23 is called if either detected.

Int 23h (CONTROL-C/CONTROL-BREAK HANDLER)说:

Any DOS call may safely be made within the INT 23 handler, although the handler must check for a recursive invocation if it does call DOS.

使用Int 21/AH=25h (SET INTERRUPT VECTOR)注册您自己的中断处理程序,您可以在其中打印消息并退出。

相关:

关于assembly - 使用 DOS 中断 0Ah 中止输入 (ctrl-c) 时显示错误消息(读取输入到缓冲区),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19395905/

相关文章:

c - 如何从 C 源代码和 asm 输出逆向工程结构细节?

assembly - write 系统调用中 strace 输出中的混合整数和字符串

visual-studio - 如何在Visual Studio中添加运行时断点?

unix - 如何将参数传递给 shell 脚本?

windows - 如何批量获取上次修改文件的前一个(第n个)

assembly - 二进制减法,进位位未设置?

windows - 使用 IDA Pro 5 进行逆向工程简单应用程序

string - x86 ASM Linux - 创建循环

c - 如何将汇编程序值返回给 C Int 指针?

c++ - 如何编写可以在 msdos 上运行的 C++ 控制台 exe?