《アセンブラ言語》LDとLADの違いをわかりやすく解説

プログラミング言語

LDとLADを理解するために必要な用語

オペコード

DC, LD, LADといったアセンブリ言語であらかじめ用意されている命令の動作をオペコードと呼びます。英語に例えるなら動詞です。次に説明するオペランドに「~をする」を指定します。

オペランド

コンピューターの演算における変数や値のことをオペランドといいます。ここでいうオペランドは変数のことを指しています。例えば、以下のように定数を定義したとします。

ここでいうがオペランドはNUMです。NUMには3が格納されています。オペランドは英語でいう目的語です。「何に対して」に該当します。オペコード +オペランドで「何に対して」「~をする」という形式で処理を記述します。

LD (ロード命令)

LD (ロード命令)とは何か

オペコード のLDは主記憶の値を汎用レジスタにコピーする処理を行います。例えば以下の図のように主記憶に存在する221番地の値を汎用レジスタにコピーするといった処理を行います。

実際にアセンブリ言語を書いてLDの動作を確かめてみます。以下のプログラムはNUMの値をGR1にコピーする処理です。

このプログラムを動かすとGR1にはNUMの値、0003がロードされていることが確認できると思います。

LAD (ロードアドレス命令)

LAD (ロードアドレス命令)とは何か

LADは主記憶のアドレスを汎用レジスタにコピーする処理を行います。こちらもアセンブラ言語のプログラムを書いて確かめてみましょう。以下のプログラムはNUNのアドレスを汎用レジスタに書き込む処理です。

このプログラムを動かすとGR1にはNUMのアドレス1003がロードされていることが確認できると思います。

LDとLADの違い

LDとLADの関係表

ここで両者の違いがわかったところで、それぞれの違いを整理しておきます。

LD

LAD

実効アドレスの内容

実効アドレス自身

汎用レジスタにコピーする内容がそれぞれ異なります。

番外:おすすめ参考書

プログラムはなぜ動くのか

こちらの参考書ではコンピューターの基礎が非常にわかりやすく完結に書かれています。その中でアセンブリ言語についても書かれており、コンピューターサイエンスを学ぶ人なら誰もが絶対知っておきたい知識が身につくので是非読んでみてください。

筆者
筆者

今回の記事の内容は以上で終了です。最後まで読んでくれてありがとうございました。Twitterもやってるのでフォローしてくれたら嬉しいです!

タイトルとURLをコピーしました