gpt4 book ai didi

assembly - bx 在哪些方面优于 ax

转载 作者:行者123 更新时间:2023-12-02 06:31:15 24 4
gpt4 key购买 nike

我目前正在学习汇编 8086。有些命令适用于 ax 而有些则不适用。例如: mov [ax], 5 不起作用。为什么会这样?bx 寄存器相对于 ax 寄存器有哪些优势?提前致谢。

最佳答案

bx的主要优势在 ax是它可以被称为指向数据段中地址的指针。

您不能使用 ax在有效地址中:

MOV cx, [ax]     ;doesn't work
MOV cx, [bx] ;works fine and loads cx with the value which is pointed by bx

可以作为指针引用的寄存器有:
bx , si , di , bp

那些不能被称为指针的:
ax , cx , dx , sp

这是 16bit addressing modes 的限制.另见 标记维基。


ax在数学运算方面具有优势,因为一些函数如 mul隐式使用它。
mul cx将 ax 乘以 cx 并将结果存储在 dx:ax 中.在 386 或更高版本上,您可以使用例如 imul bx, cxbx *= cx .它是一个更长的操作码,并且只产生乘法结果的低半部分(无论有符号还是无符号,结果都是一样的,这就是为什么没有两个或三个操作数形式的 mul )。

dividiv只有除 dx:ax 的单操作数形式通过源操作数,将结果存储在 dx 和 ax 中。

8086还需要ax比后来的 CPU 更多的东西,因为它没有 movsx ,因此您需要将字节放入 al运行 cbw .

关于assembly - bx 在哪些方面优于 ax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36035999/

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