ニャオニャオ21世紀

アイデア。レトロゲーム(MSX、PCエンジン、ファミコン、メガドライブセガサターン)と、MSXのゲーム開発と、最新ゲーム(PS4、SWITCH)、身体(身体意識など)、ライフハック、電子工作ほか雑記を綴っています

MSXマシン語入門(Z80 アセンブラ・機械語) 勉強レポート  第7回 ロード命令

MSXの機体の情報が一杯 これは必見の書籍!! 僕らの好きなMSXハードカタログ

今日からマシン語の命令を一つづつやっていきたいと思います。

まず最初はロード命令です。

このロード命令はすべての基礎になるそうです。

では始めます。

 

その前に、以前用意すると言った、マシン語のプログラムをMSXで動かすのに必要な、BASICモニタですがしばらくお待ち下さい。

一応打ち込んではみたのですが、本そのままでは載せることはできないので、

変更をしております。

本当はどっかにあるといいのですが。

(ちょっと用意できませんでした。ごめんなさい)

 追伸: MSXPENでアセンブラを書くといいのを知りました(・∀・)

 

それでは開始〜。

 

ロード命令ですが、

レジスタやメモリにデータを入れる命令になります。

 

簡単な足し算をする場合、

まずレジスタに足される数を入れ、それからそのレジスタに足す数を加えるということ

をするそうです。

 

Z80のレジスタには8ビットのものと16ビットのものがあります。

まずは8ビットのロード命令からやっていきます。

 

8ビットロード命令

8ビットのデータをロードすることです。

まあ、普通ですね。

8ビットのレジスタは何かと言うと、アキュームレータと汎用レジスタです。

なんだったっけ?と思いますよね。

思い出してみましょう。

アキュームレータというのがAレジスタで、汎用レジスタというのがBからLまでの

レジスタです。

演算は通常Aレジスタで行われるそうです。

AレジスタにBレジスタの内容を足したりという使い方がされているのでした。

 

8ビットのデータというと0から255までの数値です。

 

ロード命令についてみていきます。 

LD A , 9     Aレジスタに9をロードします。

LD   B , H    BレジスタにHレジスタの値をロードします。

 

LDのすぐ後にくるレジスタが、値が入るレジスタです。

これでいうとAとかBですね。

そのあとの値などが移す値となります。これでいうと9 ,Hですね。

 

ここで注意するのが、入れたものがレジスタということです。

レジスタの値は実際にプログラマーが見ることはできません。

そこでレジスタの値をメモリに移します。

メモリの値なら自由に見ることができますからね!

 

LD  (3943H) , A

Aレジスタの値をメモリの3943H番地にロードします。

括弧でくくるとメモリのアドレスとなるようです。

 

それでメモリのアドレスを直接書く場合は、Aレジスタを使わないといけないようです。

AレジスタのところにBレジスタやCレジスタは書けません。

それと値を直接入れることもできません。Aレジスタの位置に6とか数値を置くこと

もできないそうです。

 

Aレジスタは特殊ですね〜。それだけ大切なレジスタと言えそうです。

 

( ちなみに

LD   A , (9898H)

とすると、メモリのアドレス9898Hに入っている値をAレジスタにいれます。)

 

それで、Aレジスタ以外に値や他のレジスタを使いたいときもでてきますよね。

そういったときは

LD   (HL) , 6  (値を直接入れる場合)

16ビットのHLレジスタに、メモリのアドレスを入れて置いて、6という数値をいれるのです。

直接アドレスは入れれないけど、前もってアドレスをHLレジスタにいれておけばいいわけですね。

(  LD  D , (HL)

とすると(HL)レジスタに入っている内容が8909Hなら、アドレス8909番地の内容を

Dレジスタにいれます。)

 

しかしややこしいですね。

まあAレジスタを使うときは素直に使えて、その他のレジスタを使うときは少し特殊と覚えておきましょう。

 

とりえずはここまでにしておきます。

次回は、ハンドアセンブルです。

なんか楽しくなっていきそうです!!

 

次のページ

www.nyaonyao21.com

 

MSX BASIC + マシン語などの情報はこちらへ

www.nyaonyao21.com

 


「ニャオニャオ21世紀は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。」

当サイトは第三者配信の広告サービス「Google Adsense グーグルアドセンス」を利用しています。 広告配信事業者は、ユーザーの興味に応じた広告を表示するためにCookie(クッキー)を使用することがあります。 Cookie(クッキー)を無効にする設定およびGoogleアドセンスに関する詳細は「広告 – ポリシーと規約 – Google」をご覧ください