2016-11-23 98 views
0

我开始在cplusplus.com网站上学习C++,并且有关于该语言的教程。该教程的第一课是在编译器和在这个教训,可以在http://www.cplusplus.com/doc/tutorial/introduction/发现,他们给了下面的例子:关于C++的机器语言教程教程

单条指令的计算机看起来是这样的:

00000 10011110 

的特定计算机的机器语言程序,其允许用户输入两个数字,将两个数相加,并显示总的可包括这些机器代码指令:

00000 10011110 
00001 11110100 
00010 10011110 
00011 11010100 
00100 10111111 
00101 00000000 

我的问题是为什么他们在前面(左侧)放置5位与右侧的其他8位分开?左边的5位是什么意思?该组是否告诉计算机如何解释右边的8位?例如,它是否告诉计算机右侧的数字或字符或操作员?我试图在互联网上找到这个问题的答案,但我找不到任何能够为我解决问题的东西。如果任何人都能以简单的方式向我提供明确的答案,我们将非常感激。

+1

翻译的5张比特数成小数;你应该能够认识到之后发生了什么。 –

+0

我想这可能是因为你左边只有4个“浪费”的零。它只是'00000000','00000001','00000101'等的较短版本。 –

+0

您是否阅读过此表格后的部分?这些数字是一些任意代码,只是为了说明为什么机器语言难以阅读以及为什么创建高级语言...... – Malkocoglu

回答

2

如前所述这似乎是任意的,一个可能的解释是,这是分隔符和操作数,但因为它是连续的最好的猜测是,这仅仅是指令地址:

00000 =>地址0
00001 =>地址1
00010 =>地址2
00011 =>地址3
00100 =>地址4
00101 =>地址5

机器码指令是依赖于硬件的,here are some examples separating operator and operands

[ op |  target address  ] 
    2     1024    decimal 
000010 00000 00000 00000 10000 000000 binary 
+1

非常感谢您的回答。 – SineLaboreNihil