汇编程序中的中断服务 (int 21h) 及其行为 (w/OllyDbg)

问题描述

各位程序员,你们好!
我有一个愚蠢的(对于你的等级)问题:
使用“flat assembler”并使用“ollydbg (v2.00.01)”进行调试

我有以下代码

format PE

org    100h

start:
       mov eax,0    ; clear entire register
       mov edx,0    ; clear entire register
       
       mov ah,02h  ; define control character 
       mov dl,'A'  ; character it needs to print to "standart output" (?)
       int      21h  ; interruption service call
       
       hlt

所以,上面的代码有两个问题:

  1. OllyDbg 在遇到中断服务呼叫时说“读取 [FFFFFFFF] 时出现访问冲突”。
  2. 我使用 mov ah,05h 控制字符重写了上面的代码。第一项仍然出错。

如果你能帮我解决这两个要求,我会很高兴的:

  1. 了解“标准输出”和“认打印机”之间的区别。
  2. 在不使用 ds 寄存器(和任何先前定义的数据)的情况下将单个字符写入 console(?)

我最感谢所有回复的人!

由...解决
结果表明,您不能使用 Win32 可执行文件直接调用 DOS 服务。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)