只是预防措施。我是一个组装完全的菜鸟。我唯一的问题是DOS中只有以下命令:
MOV AH, 09
INT 21
MOV AX, 4C01
INT 21
第二个中断是否仍然具有参数09
含义显示屏幕或AX
以某种方式改变?
AH
和AL
分别是 的高半和低半AX
。所以是的,设置AX
更改AH
。
4C
是“退出程序”。
您需要搜索Ralf Brown 的中断列表,它是这些旧 DOS/Windows 中断的权威指南。
使用 AH = 09H调用INT 21h会向控制台输出一个$
以 at 结尾的字符串。DS:DX
使用 AH = 4cH调用INT 21H 会退出程序,返回码在AL
(在本例中为 01H)。
第二个调用不会简单地AH
设置为. 第二个设置为设置的一部分:09H
AH
AX
MOV
AH
4cH
AX
更详细(来自维基百科):
这种由其他寄存器制成的寄存器在英特尔有着悠久的历史:
ax
由ah
和组成al
;eax
由 16 位加上其他 16 位组成ax
;rax
由 32 位加上其他 32 位组成eax
。以及其他通用寄存器和特殊寄存器(如索引或基址寄存器)和堆栈指针的类似方法。
有趣的是,他们并没有复制访问扩展寄存器的高半部分的能力,例如eax
由eah
and组成eal
(都是神话,但后者是 的别名ax
)。
这将在更高模式下为我们提供大量超小寄存器的缓存,尽管我不确定成本会是多少(毫无疑问,英特尔/AMD确实知道成本,而且可能被认为太贵了)。