LC-3中的机器代码也称为汇编?

时间:2009-12-25 20:03:27

标签: c

我对机器代码的概念感到有点困惑...... 机器代码是汇编语言的同义词吗? 什么是LC-3中的机器代码示例?

3 个答案:

答案 0 :(得分:3)

“汇编语言”是一种符号(人类可读)语言,称为“汇编程序”的程序转换为二进制形式,“机器代码”,CPU可以加载和执行。在LC-3中,机器码中的每条指令都是一个16位字,而汇编语言中的相应指令是一行人类可读的文本(其他架构可能有更长或更短的机器码指令,但一般概念它一样)。

答案 1 :(得分:3)

装配说明(LDSTADD等,在LC-3模拟器的情况下)对应于作为程序加载和执行的二进制指令。在LC-3的情况下,这些“操作码”被组装成1位和0位的16位串,LC-3架构被设计为相应地执行。

例如,装配“ADD R4 R4#10”对应于LC-3“机器代码”:

0001100100101010

可以分解为:

0001 - ADD.
100 - 4 in binary
100 - 4 in binary
10 - indicates that we are adding a value to a register
1010 - 10 in binary

请注意,每个操作码都有一个不同的二进制等价,因此有2 ^ 4 = 16个可能的操作码。

LC-3通过在某些指令中引入这些标志位来偷偷摸摸地处理这个问题。对于ADD,这两个位会根据我们添加的内容而改变。例如,如果我们添加两个寄存器(即“ADD R4 R4 R7”而不是寄存器和值),这些位将设置为01而不是10

该机器代码指示LC-3将十进制10加到寄存器4中的值,并将结果存储在寄存器4中。

答案 2 :(得分:0)

上述内容适用于任何高级语言(例如C,Pascal或Basic)。 HLL和汇编之间的区别在于每个汇编语言语句对应于一个机器操作(宏除外)。同时,在HLL中,单个语句可以编译成大量的机器代码。

你可以说汇编是在机器代码之上的一层薄薄的助记符。