将伪代码转换为机器代码

时间:2014-03-06 17:30:05

标签: pseudocode machine-code

出于学术目的,我被要求翻译此声明

assign x the value 5

由计算机科学书籍的作者组成的机器代码,称为brookshear机器代码。我得到了一个提示

(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 - 加载寄存器R,其内容为位置XY
2RXY - 加载寄存器R,其值为XY
3RXY - 将寄存器R的内容存储在XY位置 4iRS - 将寄存器R的内容移动到寄存器S
5RST - 将寄存器S和T的内容添加为二进制数,将结果存入寄存器R
6RST - 将寄存器S和T的内容添加为浮点数,将结果存入寄存器R
7RST - 或者将寄存器S和T的内容合在一起,将结果存入寄存器R
8RST - 将寄存器S和T的内容合在一起,将结果存入寄存器R
9RST - 将寄存器S和T的内容组合在一起,将结果存入寄存器R
ARiZ - 将寄存器R的内容向右旋转一位,Z乘以
BRXY - 如果寄存器R的内容等于寄存器0的内容,则跳转到XY指令 Ciii - 停止
DRXY - 如果寄存器R的内容大于寄存器0的内容,则跳转到XY指令 R,S,T - 寄存器号码
XY - 单字节地址或数据值
Z - 半字节值
i - 当指令被解码时忽略:通常输入为0

以上是我应该使用的机器语言。

1 个答案:

答案 0 :(得分:1)

如果只有指令:

 EABXY - Store value XY at location AB

如果该命令存在,您的程序将是:

 E4705   # store '05' at address '47'
 C000    # halt

但是,该指令不存在 - 部分原因是它需要五个半字节字符,并且指令适合四个。

因此,您将不得不使用两个步骤来模拟“E”指令。

您无法指定直接放入地址的值。

  • 有一条指令可让您指定一个值并将其放在某处。
  • 有一条指令可以将值从某处复制到地址

那是真的足够的线索。