我的教授给了我的班级以下图表以使我们的程序基于以下内容: https://imgur.com/a/VB2G0n1
我已经得到了确实有错误的二进制代码。我可以使用一些帮助将其翻译成汇编语言并修复错误,以便它可以解决图中的问题。我使用的语言是LC-3基本程序集,一种使用AND,NOT和ADD作为命令的语言
我曾尝试将二进制代码转换为汇编语言,但似乎遇到了一些问题。在第8行附近,我不断收到“ 12304不能表示为9位有符号的9数字”。不管我尝试什么
0011000000000000
0101000000100000
0001000000100001
0101001001100000
0001001001111011
0101011011100000
0001011011101010
0010100000001001
0110010100000000
0001010010000001
0000010000000101
0001100100100001
0001011011111111
0110010100000000
0000001111111010
0101000000100000
1111000000100101
0011000100000000
此程序中没有输出,它只会循环直到遇到5,然后才停止。
编辑:很抱歉提供您的工作! 为此,我设法将二进制代码int转换为以下汇编语言:
.ORIG X3000
AND R0, R0, #0
ADD R0, R0, #1
AND R1, R1, #0
ADD R1, R1, #-5
AND R3, R3, #0
ADD R3, R3, #10
LD R4, x3100
LDR R2, R4, #0
ADD R2, R2, #0
BRz x300F
ADD R4, R4, #1
ADD R3, R3, #-1
LDR R2, R4, #0
BRp x3008
AND R0, R0, #0
HALT
ST R0, x2F11
.END
但是,我遇到了另一个问题,在第8行,它不支持9位数字