• ベストアンサー

プログラミングの0と1の言語を機械語というんですか

プログラミングの0と1の言語を機械語というんですか? ではアセンブリ言語はどういうのをいうんでしょうか?

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

  • ベストアンサー
回答No.1

0と1だけなら、それはただのビット。 それを命令として実行できるものがマシン語または機械語、 機械語を人間が読めるようにしたものが ニーモニックやアセンブリ言語。 (ここで微妙な違いがある文献があるが、あまり現場では区別はされない) とした場合、例えば(あくまで一例です) 0011 1110 xxxx yyyy (今回xxxxyyyyは暫定0xABとする) とあったら、 上位7-6ビットが00=0 中位5-3ビットが111=7 下位2-0ビットが110=6 まずこれが、CPUに入ります。 上の0の機能セレクタで何かが選ばれる 中の7の、7番のレジスタが選ばれる 下の6の、6番のレジスタまたはimmが選ばれる たまたまこれが、以後に続く8ビットをください! だったとしたら、CPUは続けて次の8ビットを読み込み 最初のコードがさしてる先に代入などをする。 というものだったとします。 これを16進数で db 0x3E,0xAB になったとする。 しかし、これでは読めない! なので、人間が読めるように ld a,&xab; (アセンブラ依存で16進数の書式は違うので、各アセンブラの書式に従う事) とすれば、なんか、「レジスタA」に「値としてのAB」を入れてるんだな! とわかるわけです。 (なお、これは実在するZ80系のCPUでのコードです) なので、例えば、 ld a,[0x1234] add a,10 ld [0x1234],a なら、0x1234番地の値に10を足す! というアセンブリ(部品)が完成するという事です。 それらが集まって、大きな集合体として稼働するわけで。 OKですかね。。

okwaveokw
質問者

お礼

ありがとうございます

関連するQ&A

専門家に質問してみよう