关于C ++教程的机器语言教学

时间:2016-11-23 13:03:37

标签: c++ bits machine-code

我开始在网站cplusplus.com上学习C ++,并且有一个关于该语言的教程。在该教程中,第一课是关于编译器的,在该课程中,可以在http://www.cplusplus.com/doc/tutorial/introduction/找到,它们给出了以下示例:

  

计算机的单个指令可能如下所示:

00000 10011110
     

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

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

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

1 个答案:

答案 0 :(得分: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