为什么汇编字符打印可以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
!
中的任何其他值
以下代码打印字符 '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
!