我无法理解英特尔8080处理代码的行为。例如,我想添加两个十六进制数:3H和4H所以我写了:
MVI A, 3H
MVI B, 4H
ADD B
HLT
但是在哪里可以找到处理后的结果呢?我应该把结果从A复制到某个内存地址还是什么?对不起,这是我第一次接触这种东西,我不知道它是如何工作的。
例如,图片显示了我在8085模拟器中的示例。
另一个问题是,为什么一些旗帜改变了,但登记册保持不变?MVI B, 4H
不应该改变B寄存器的值吗?如果没有,请解释它是如何工作的。
在为每个指令提供2个字节后,累加器也没有结果。
而且似乎唯一可能影响累加器或任何其他注册表的指令是INR。有没有可能是“我的”模拟器有缺陷,不能正常工作?
2条答案
按热度按时间dm7nw8vv1#
正如我从屏幕截图中看到的,您输入的代码错误。你的最终代码应该是这样的:
我还没有使用这个模拟器,但我想你是输入错误的助记符。我觉得应该是这样的:
不喜欢:
(this如果我们看到M列就清楚了。Code where
MVI A, 3
andMVI B, 4
has no opcodes)那么只有你会得到预期的代码:到目前为止,您实际运行的是一些
NOP
操作(操作码值00
)和HLT
。:—)qjp7pelc2#
的结果
将在寄存器A中有一个结果。
寄存器B中的MVI B,4H的结果将是4H。