汇编 8086 中的 SHR 命令

Posted

技术标签:

【中文标题】汇编 8086 中的 SHR 命令【英文标题】:SHR command in assembly 8086 【发布时间】:2019-02-23 10:05:59 【问题描述】:

我得到了以下代码,我想在每一步之后写下观察结果。代码是:

MOV AL,15
MOV AH,0FFH
XOR AL,AL
MOV CL,3
SHR AX,CL

现在唯一让我困惑的是 SHR 命令。我知道它会将 AX 的值移动 3 次,但它会怎么做呢?

【问题讨论】:

“它将如何做到”是什么意思?你想要一个关于班次如何工作的带有门的示例图吗?你是在问它将如何填充新移动的 inf 位? 中间结果(如果您将其视为 3 个班次的序列)将无法在软件中观察到。您将仅观察最终结果和所用时钟的适当数量(8086/8088 为 8+4*CL 时钟)。如果这就是你要问的。 你真的在问AX如何别名AH:AL吗?如果是这样,这是 x86 Calculating AX given AH and AL? 的副本 【参考方案1】:

它将采用AX 中的位值并将它们向右移动。例如,假设:

AX = 15 CL = 3

二进制中的 15 将是 16 位寄存器中的 00000000 00001111AX 是) 将这些位向右移动 3 位将导致:00000000 00000001

(请注意:我没有尝试使用您问题中的值,因为它们似乎是学校作业)

最低三位已“移入”位桶或空位。他们走了。

【讨论】:

以上是关于汇编 8086 中的 SHR 命令的主要内容,如果未能解决你的问题,请参考以下文章

8086汇编语言 汇编语言伪指令

汇编中的移位指令(8086CPU)

8086汇编语言 汇编语言源程序

8086汇编如何打印寄存器内数值

8086汇编如何打印寄存器内数值

8086汇编之 CALL 和 RET指令