the*_*pen 0 assembly x86-16 emu8086
以下代码打印字符“a”:
mov dl, ‘a'
mov ah, 2
int 21h
Run Code Online (Sandbox Code Playgroud)
我已经阅读了本手册,发现al我们得到:
返回:AL = 最后一个字符输出
我试图理解的是为什么我们实际上需要这种返回值?当我们在屏幕上获得输出时,这对我来说毫无意义,而且我们在 DL 中已经打印了最后一个字符(因为我们刚刚打印了它)。任何的想法?
拉尔夫布朗的中断清单说:
AL = 最后一个字符输出(尽管官方文档说明没有返回任何内容)(至少DOS 2.1-7.0)
“没有返回任何内容”并不意味着:“寄存器的值没有改变”,但这可能意味着:“寄存器的值可能有任何值”。
也许 MS-DOS 版本 2.1 到 7.0 在内部AL以AL 通常包含中断返回时写入的字符的方式使用寄存器。
然而,因为官方的 MS-DOS 文档说没有返回任何东西,你不能依赖它:
在某些情况下,某些 MS-DOS 版本可能会在AL!