【发布时间】:2015-04-18 11:38:48
【问题描述】:
我决定学习一门汇编编程语言。我正在使用this 8086 tutorial。在底部的练习是找出一些指令中的错误,其中之一是
mov cx, ch
我在这个主题上发现了一些类似的问题,解释了如何实现它,但现在我想知道为什么禁止此操作?
假设我在 CH 中有 10d = 00001010b 并希望将其放入 CL 并同时擦除 CH。 mov cx, ch 似乎这样做是因为它将 10d 显示为 16bit 00000000 00001010 并将其分别放入 CH 和 CL(整个 CX)
它有什么问题,为什么给出的教程要求在这个表达式中查找错误?
【问题讨论】:
-
它并没有太多被禁止,更多的是“full list of all Intel opcodes(链接到 PDF)中没有提供”。所以是的,这是被禁止的,因为操作码不存在。
-
我高度怀疑你的很多困惑是作者已经(可能是故意)选择了
CH、CL和CX注册这个问题。为了帮助您了解不连续性,您可以得到与mov dx, ch高度相似的错误,这可能会更好地说明错误的原因。只是一个建议;不满意退款。 -
相关:MOV 8 bit to 16 bit register (al to bx) 本质上是重复的。
标签: assembly x86 masm mov zero-extension