为了学术目的,我被要求翻译这份声明。
assign x the value 5由一位计算机科学书籍的作者组成的机器代码,名为布鲁克切割机代码。我得到的提示是
(HINTS: Assume that the value of x is to be stored into main memory location 47. Your program would begin by loading a value into a register. You do not need to specify the memory locations of your program. Don't forget to end the program with the HALT instruction.)
我想知道是否有人知道最好的方法来解决这个问题?他明确表示要以停止指令结束,但我不确定我到底该做什么。
0iii -不-操作
1RXY -带有位置XY内容的负载寄存器R
2RXY -具有XY值的负载寄存器R
3RXY -在XY位置存储寄存器R的内容
4 4iRS将寄存器R的内容移到寄存器S
5 5RST将寄存器S和T的内容添加为二进制数,放置在寄存器R中
6 6RST将寄存器S和T的内容添加为浮点数,放置在寄存器R中。
7 7RST或把寄存器S和T的内容放在一起,就会产生寄存器R
8 8RST以及寄存器S和T的内容,位置导致寄存器R
9 9RST XOR将寄存器S和T的内容加在一起,产生寄存器R
ARiZ -将寄存器R的内容向右旋转一位,Z次
BRXY -在XY跳到指令,如果寄存器R的内容等于寄存器0的内容
Ciii -停止
DRXY -如果寄存器R的内容大于寄存器0的内容,则在XY跳到指令
R,S,T-寄存器数
XY -一个单字节地址或数据值
Z-半字节值
当指令被解编码时我被忽略:通常输入为0。
以上是我期望使用的机器语言。
发布于 2014-03-06 17:40:17
如果有指示就好了:
EABXY - Store value XY at location AB如果存在该命令,您的程序将是:
E4705 # store '05' at address '47'
C000 # halt但是,这个指令并不存在--部分原因是它需要五个半字节的字符,而这些指令应该包含在四个字符中。
所以你必须用两个步骤来模拟E指令。
不能指定要直接放入地址的值。
这真是足够的线索了。
https://stackoverflow.com/questions/22231735
复制相似问题