gpt4 book ai didi

assembly - 以下汇编命令会发生什么?

转载 作者:行者123 更新时间:2023-12-01 10:56:49 27 4
gpt4 key购买 nike

只是一个预防措施。我是一个完全的组装菜鸟。我唯一的问题是在 DOS 中只有以下命令:

MOV  AH, 09
INT 21

MOV AX, 4C01
INT 21

第二个中断是否仍然有参数 09 表示显示屏幕,或者 AX 是否以某种方式改变了它?

最佳答案

您需要搜索Ralf Brown's Interrupt List ,它是这些旧 DOS/Windows 中断的权威指南。

调用 INT 21h with AH = 09H将位于 DS:DX 的以 $ 结尾的字符串输出到控制台。

调用 INT 21H with AH = 4cH使用 AL 中的返回码退出您的程序(在本例中为 01H)。

第二次调用不会AH设置为09H,因为AH只是高8位AX。第二个 MOVAH 设置为 4cH 作为设置 AX 的一部分:

enter image description here


更详细(来自 Wikipedia ):

enter image description here


这种由其他寄存器制成的寄存器在英特尔有着悠久的历史:

  • axahal组成;
  • eax 由 16 位加上来自 ax 的其他 16 位组成;
  • rax 由 32 位加上来自 eax 的其他 32 位组成。

以及用于其他通用寄存器特殊寄存器(如索引或基址寄存器)以及堆栈指针的类似方法。

有趣的是,它们没有复制访问扩展寄存器高半部分的能力,例如 eaxeaheal(都是虚构的,但后者是 ax 的别名)。

这会在更高模式下为我们提供超小寄存器的大缓存,但我不确定成本是多少(毫无疑问英特尔/AMD 确实知道成本并且它可能被认为太贵了)。

关于assembly - 以下汇编命令会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14680634/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com