我开始在网站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位?例如,它是否告诉计算机右侧的内容是数字,字符还是运算符?我试图在互联网上找到这个问题的答案,但我找不到任何可以解决问题的方法。如果有人能用简单的语言向我提供明确的答案,那将非常感激。
答案 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