2016-03-26 10 views
2

私はマイクロコントローラーを勉強している学生ですが、すべては一般的には問題ありませんが、32ビットの命令を学ぶことになったときには、ややこしいものでした。私はマシンコードで遊んだ後、もう少し明らかになるかもしれないと思ったが、なぜそれがなぜそんなにランダムに見えるのかまだ分かっていない。コマンドの中には、レジスタ値など完全に正常なものもあり、理解するのは簡単です。しかし、他のコマンドはフラグメント化されており、一見無作為に分散しています。マシンコードの説明解剖学

What we were taught

どのコマンドに属し指示でどのビットを把握するために狂気への方法、または任意の特定のトリックはありますか?

+3

はい、プロセッサのリファレンスマニュアルが必要です。マシンコードを理解する他の方法はありません。 –

+0

正確に!そして、あなたは本当に16進数で作業したいと思っています。なぜなら、それは誰もが使うものなのですから。バイナリはあまりに複雑すぎて動作しません。 – dom0

+0

@ dom0私はこれが一般的にバイナリデータの真実であることを知っていますが、このような命令の場合でもそうですか?その2番目のニブルが「1101」だった場合、「D」がより有用な表現であるとは想像できません。 「D」でできることは、精神的に「1101」に翻訳することだけです。 – yshavit

答えて

1

命令は、実際にハードウェアラインをハイまたはローに設定する命令のすべてのビットによってハードウェアによって直接処理されることを意味します。明らかに、命令は、ハードウェアがジョブを完了するように構成するような方法で構築されなければならない。また、ハードウェア、特にプロセッサは設計コストが高いので、ハードウェアに命令のフォーマットを定義させることが理にかなっています。

したがって、すべてのアーキテクチャには独自の命令フォーマットがあります。そしてコメントの中に述べられているように、参照書類にそのフォーマットがあります。それ以外には、私は何も追加することは考えられません。