assembly 我是否正确地解释了机器语言指令?

pgx2nnw8  于 2022-11-24  发布在  其他
关注(0)|答案(1)|浏览(108)

这是我的LC-3编码互操作给出的图像

.ORIG x3000
LEA R1, R7, #29
ADD R2, R1, #14
ST R2, R7, #27
AND R2, R2, #0
ADD R2, R2, #5
STR R2, R1, #14
LDI R3, R7, #23
.END

请告诉我我哪里出了问题,因为当我组装这个代码不工作。

bvn4nwqk

bvn4nwqk1#

首先,请注意表中给出的第一个地址-x30F6
如果你想重现这一点,你必须使用不同的方法来定位代码,其中一种方法是使用.ORIG x30F6(另一种方法是在.ORIG x3000后面插入空格,例如.BLKW xF6,这样下一条指令就落在x30F6上)。
接下来,您已将第一条指令正确解码为操作码LEA,并具有正确得寄存器目的(R1),但LEA指令得格式只有两个操作数,而您得格式有3个操作数,因此这是不正确得.
接下来,ADD看起来不错。
接下来,您在正确解码ST操作码和源寄存器R2时出现了与第一个LEA相同的错误,但将其余部分解码为另外两个操作数,其中ST仅多了一个操作数。
请仔细注意蓝色下划线,它显示了描述每个指令操作数的字段的分组和计数。

相关问题