2016-11-23 12 views
0

ウェブサイトcplusplus.comでC++の学習を始めました。その言語に関するチュートリアルがあります。その中で最初のレッスンチュートリアルのコンパイラであるとhttp://www.cplusplus.com/doc/tutorial/introduction/で見つけることができるという教訓に、彼らは次の例を与える:コンピュータへC++チュートリアル機械語命令

単一の命令は次のようになります。

00000 10011110 

入力二つの数字をユーザに可能にする特定のコンピュータの機械語プログラムは、一緒になって2つの数値を加算し、その合計がこれらのマシンコード命令を含むことができる表示:

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

私の質問は、右側の他の8ビットとは別に5ビット(左側)を前に置くのはなぜですか?左の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