我对机器代码的概念感到有点困惑...... 机器代码是汇编语言的同义词吗? 什么是LC-3中的机器代码示例?
答案 0 :(得分:3)
“汇编语言”是一种符号(人类可读)语言,称为“汇编程序”的程序转换为二进制形式,“机器代码”,CPU可以加载和执行。在LC-3中,机器码中的每条指令都是一个16位字,而汇编语言中的相应指令是一行人类可读的文本(其他架构可能有更长或更短的机器码指令,但一般概念它一样)。
答案 1 :(得分:3)
装配说明(LD
,ST
,ADD
等,在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中,单个语句可以编译成大量的机器代码。
你可以说汇编是在机器代码之上的一层薄薄的助记符。