以下代码显示字符“ a”:
mov dl, ‘a'
mov ah, 2
int 21h
我已经读过this manual,发现在al
中我们得到了:
返回:AL =输出最后一个字符
我想了解的是为什么我们实际上需要这种返回值吗?当我们在屏幕上获得输出时,这对我来说毫无意义,而且无论如何我们都拥有最后一个打印字符DL(正如我们刚刚打印的那样)。有想法吗?
答案 0 :(得分:4)
拉尔夫·布朗(Ralph Brown)的打扰名单说:
AL =最后一个字符输出(尽管官方文档指出了 什么都不会返回)(至少 DOS 2.1-7.0 )
“什么也没有返回”并不表示:“寄存器的值没有改变”,但这可能表示:“寄存器的值可以具有任何值。”
也许MS-DOS 2.1到7.0版本在内部使用AL
寄存器,而AL
通常包含中断返回时写入的字符。
但是,由于正式的MS-DOS文档说什么也没返回,因此您不能依靠它:
在某些情况下,某些MS-DOS版本可能会在AL
中返回任何其他值!