C++ 教程上的机器语言指令
Machine Language Instruction on C++ Tutorial
我开始在网站 cplusplus.com 上学习 C++,并且有关于该语言的教程。在该教程中,第一课是关于编译器的,在该课中,可以在 http://www.cplusplus.com/doc/tutorial/introduction/ 找到,他们给出了以下示例:
A single instruction to a computer could look like this:
00000 10011110
A particular computer's machine language program that allows a user to input two numbers, adds the two numbers together, and displays the total could include these machine code instructions:
00000 10011110
00001 11110100
00010 10011110
00011 11010100
00100 10111111
00101 00000000
我的问题是为什么他们将 5 位放在前面(左侧)与右侧的其他 8 位分开?左边的一组5位是什么意思?该组是否告诉计算机如何解释右边的 8 位?例如,它是否告诉计算机右侧后面是数字、字符或运算符?我试图在 Internet 上找到这个问题的答案,但我找不到任何可以为我解决问题的东西。如果有人能用简单的语言向我提供明确的答案,我将不胜感激。
如前所述,它似乎是任意的,一种可能的解释是它将运算符和操作数分开,但由于它是顺序的,所以最好的猜测是它只是指令地址:
00000 => address 0
00001 => address 1
00010 => address 2
00011 => address 3
00100 => address 4
00101 => address 5
机器码指令依赖于硬件,here are some examples separating operator and operands
[ op | target address ]
2 1024 decimal
000010 00000 00000 00000 10000 000000 binary
我开始在网站 cplusplus.com 上学习 C++,并且有关于该语言的教程。在该教程中,第一课是关于编译器的,在该课中,可以在 http://www.cplusplus.com/doc/tutorial/introduction/ 找到,他们给出了以下示例:
A single instruction to a computer could look like this:
00000 10011110
A particular computer's machine language program that allows a user to input two numbers, adds the two numbers together, and displays the total could include these machine code instructions:
00000 10011110 00001 11110100 00010 10011110 00011 11010100 00100 10111111 00101 00000000
我的问题是为什么他们将 5 位放在前面(左侧)与右侧的其他 8 位分开?左边的一组5位是什么意思?该组是否告诉计算机如何解释右边的 8 位?例如,它是否告诉计算机右侧后面是数字、字符或运算符?我试图在 Internet 上找到这个问题的答案,但我找不到任何可以为我解决问题的东西。如果有人能用简单的语言向我提供明确的答案,我将不胜感激。
如前所述,它似乎是任意的,一种可能的解释是它将运算符和操作数分开,但由于它是顺序的,所以最好的猜测是它只是指令地址:
00000 => address 0
00001 => address 1
00010 => address 2
00011 => address 3
00100 => address 4
00101 => address 5
机器码指令依赖于硬件,here are some examples separating operator and operands
[ op | target address ] 2 1024 decimal 000010 00000 00000 00000 10000 000000 binary