• ベストアンサー

機械語の命令について

例えばアセンブラでいうところの LD xxxx という命令は、 「xxxx番地のデータをレジスタに記憶する。」 らしいのですが、LDという命令もアドレスxxxxも2進数 で表現されていますか? そうだとして、どんな論理回路で、最終的にレジスタの電圧が1になるのでしょうか^-^? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • txrx
  • ベストアンサー率45% (83/184)
回答No.1

アセンブラとは、アセンブリコードを機械語に変換するためのソフトウェアを言います。 質問にあるコードは、アセンブリコードです。 機械語ではありません。 アセンブリコードの場合は、数値を2進数・8進数・10進数・16進数等で表現することが出来ます。 CPU内部では、H or Lの電圧値しか存在しません。 それを1または0と置き換え人が分かるように“表現”しています。その1/0を2・8・10・16進数等で表現しています。なので、機械語での?進数と言う表現は無意味かもしれません。 データをレジスタに読み込む流れは、 1.アドレスバスにデータ番地を出力する。   チップセレクト 2.読み出し信号を出力する 3.メモリはデータバスへデータ出力、   CPUは、データバスの内容を入力後   レジスタへ格納 となります。 これは、あくまでも基本的な流れを示したものです。全てのCPUがこうなっているわけではありません。 書き込みの場合は、2.で書き込み信号を出力し、3.での方向が逆になります。 CPUは、プログラムカウンタの示す位置からプログラムコードを読み込みます。 読み込んだ命令を解析して(この場合LD命令)必要なオペランド(読み込みアドレスと転送先レジスタ)も読み込みます。 そして、読込みアドレスからデータを読み込みレジスタに転送します。 どんな論理回路と言われると、 デコーダや、フリップフロップ(ラッチ)、双方向バッファ等が使用されています。

kumadayo
質問者

お礼

ありがとうございます。 回答読ませていただきました。 レジスタそのもののしくみを理解できていないことに気が付きました^-^;

関連するQ&A

専門家に質問してみよう