在8088/86上,按CL进行移位/旋转会改变CL中的值吗?

詹姆斯·盖尔加斯

在iAP88 / 86文档中,移位和旋转的时间信息取决于CL中的移位计数(p2-64)。这似乎意味着它循环遍历CL中的计数,进行了许多单位移位。

所以我的问题是,在旋转/移位完成之后,CL是否仍具有相同的值,或者该操作是否将其递减,类似于LOOP指令的行为?

用户名

在Intel 8088上,按CL中的值进行移位或旋转可保持CL不变。这些说明适用于以下情况:RCL RCR ROL ROR SAL SAR SHL SHR

从1981年7月开始iAPX 88手册中指定了Intel 8088上这些指令的语义

以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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Viewbag会改变onclick中的值吗?

类型断言会改变go中的值吗?

翻转会改变功能的参数数据类型吗

javascript中变量的值不会改变

在OpenGL中绕轴旋转对象会改变其大小

呼叫失败会改变按引用传递的结果吗?

随机()会改变吗?

单元测试在Spring Boot中,对象值设置后会改变吗?

在 Android 或 IOS 上设置填充会改变视图大小吗?

空值会改变平均值吗?

在 C++ 中按值传递:为什么当我返回主函数时可迭代值会改变?

通过一个数据帧中的布尔索引进行赋值会改变不同数据帧中的值

注释会改变情节吗?

尽管ref被标记在python中的变量上,但数据类型在重新分配时不会改变吗?

脾气暴躁:数组中的值不会改变

SetState 不会改变颤振火力中的值

foreach不会改变R中栅格单元的值

Python 列表中的值在 for 循环中不会改变

使用C中的移位运算符进行乘法和除法实际上更快吗?

元素的值不会改变

isBatteryMonitoringEnabled 不会改变值

为什么CSS中rotateX中的负值不会改变旋转方向

这个按位运算符的位置会改变行为吗?

按下键后图像不会改变

在 UITableView 上按下时 UIButton 不会改变其状态

在元素上按Enter键后,标签焦点不会改变

重新装帧:输入:按更改重设!不会改变输入值

在GPU上进行线性排序。并行处理会改变Big-O吗?

在每个变量之前调用它之后,变量的值不会改变吗?