gpt4 book ai didi

assembly - 在 8088/86 上,CL 的移位/旋转是否会改变 CL 中的值?

转载 作者:行者123 更新时间:2023-12-02 06:51:04 27 4
gpt4 key购买 nike

在 iAP88/86 文档中,移位和循环的时序信息取决于 CL 中的移位计数 (p2-64)。这似乎暗示它在 CL 中循环计数,进行那么多单位移位。

所以我的问题是,在循环/移位完成后,CL 是否仍然具有相同的值,或者操作是否对它进行倒计时,类似于 LOOP 指令的行为方式?

最佳答案

在 Intel 8088 上,按 CL 中的值移位或旋转会使 CL 保持不变。对于这些指令也是如此:RCL RCR ROL ROR SAL SAR SHL SHR

Intel 8088 上这些指令的语义在 iAPX 88 Book from July 1981 中指定。 .

以ROL进行阐述,语法为:ROL destination,count

编码规范确定了语义规范中使用的符号 COUNT 的值。对于相关的指令形式,CL 的值被分配给符号:

if v = 0 then COUNT = 1
else COUNT = (CL)

语义规范表明符号 COUNT 的值被分配给一个临时变量。寄存器 CL 永远不会改变。

(temp) ← COUNT
do while (temp) ≠ 0
(CF) ← high-order bit of (EA)
(EA) ← (EA) * 2 + (CF)
(temp) ← (temp)-1
if COUNT = 1 then
if high-order bit of (EA) ≠ (CF)
then (OF) ← 1
else (OF) ← 0
else (OF) undefined

关于assembly - 在 8088/86 上,CL 的移位/旋转是否会改变 CL 中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44376990/

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