为什么汇编字符打印可以return

Why assembly character print can return

以下代码打印字符 'a':

mov dl, ‘a'
mov ah, 2
int 21h

我读过 this manual 并发现在 al 中我们得到:

Return: AL = last character output

我想了解的是 为什么 我们真的需要这种 return 值?当我们在屏幕上获得输出时,这对我来说毫无意义,无论如何,我们在 DL 中都有最后一个打印的字符(正如我们刚刚打印的那样)。有什么想法吗?

Ralph Brown 的中断列表说:

AL = last character output (despite the official docs which state nothing is returned) (at least DOS 2.1-7.0)

"Nothing is returned" 并不意味着:"The values of the registers are not changed" 但这可能意味着:"The values of the registers may have any value."

也许 MS-DOS 版本 2.1 到 7.0 在内部使用 AL 寄存器的方式 AL 通常 包含中断 returns.

然而,因为官方 MS-DOS 文档说没有任何东西是 returned 你不能依赖它:

在某些情况下,某些 MS-DOS 版本可能 return AL!

中的任何其他值