ニャオニャオ21世紀

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

MSXマシン語入門(Z80 アセンブラ・機械語) 勉強レポート  第8回 マシンコードの求め方

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

いよいよマシンコードを書きます。

LDとかを16進数の打ち込む数値にしていきます。

 

勉強本の続きを読んでいきます。

どうやるのかな〜。興味はつきません。

PS:

当時のMSXプログラマーは必要な情報でしたが、現代のMSXプログラムは、

アセンブラで書くのが主流です。

マシンコードは知らなくてもOKです。

今は、MSX PENで書いています。とても便利^^

 

 

 

うむうむ。

なんか表を見ながら当てはめていくだけみたいです。

拍子抜けです〜。

 

ちょっと大変ですけど命令変換表を書いていきます。

 

f:id:nyaonyaokun:20151114042011j:plain

命令変換表

8ビットロード

 

       x>   |  A     B     C    D     E     H    L   (HL)  (BC) (DE) (IX+d) (IY+d) (nn)    n      I      R  

====== |=========================================================

LD A,x   |  7F   78   79   7A   7B   7C  7D   7E    0A    1A   DD      FD     3A    3E   ED   ED

              |                                                                   7E       7E     n      n     57     5F

              |                                                                    d          d       n

--------- |-----------------------------------------------------------------------------------------

LD B,x   | 47   40   41    42   43   44   45   46     /       /       DD     FD       /    06   /      /

              |                                                                         46      46             n

              |                                                                         d        d   

----------------------------------------------------------------------------------------------------

LD C,x   | 4F   48   49    4A  4B  4C   4D   4E    /       /       DD    FD        /    0E  /   /

              |                                                                        4E     4E               n

              |                                                                         d       d

----------------------------------------------------------------------------------------------------

LD D,x   | 57   50    51   52   53   54    55   56     /        /        DD   FD       /      16 /  /

              |                                                                          56    56                n

              |                                                                           d      d

----------------------------------------------------------------------------------------------------

LD E,x   | 5F   58    59   5A   5B   5C   5D   5E     /         /       DD   FD      /       1E /  /

              |                                                                          5E   5E                n

              |                                                                          d      d          

----------------------------------------------------------------------------------------------------

LD H,x   | 67  60    61    62   63    64    65    66     /        /        DD   FD      /        26 /  /

              |                                                                           66    66                n

              |                                                                           d      d

----------------------------------------------------------------------------------------------------

LD L,x   | 6F   68   69    6A  6B   6C   6D    6E      /         /     DD   FD       /       2E  /  /

             |                                                                           6E   6E                 n

             |                                                                          d      d

----------------------------------------------------------------------------------------------------

LD(HL),x|77  70   71    72   73    74    75      /        /         /     /      /         /          36 /  /

             |                                                                                                        n   

----------------------------------------------------------------------------------------------------

LD(BC),x|02

----------------------------------------------------------------------------------------------------

LD(DE),x|12

----------------------------------------------------------------------------------------------------

LD(X+d),x|DD DD DD DD  DD   DD  DD      /       /         /        /        /        /          DD /  /

              |  77  70  71  72   73    74   75                                                             36

              |   d   d    d    d     d      d     d                                                               d

              |                                                                                                          n

---------------------------------------------------------------------------------------------------

LD(Y+d),x|FD  FD  FD FD  FD    FD   FD     /     /        /          /        /       /           FD  /  /

               | 77  70   71  72  73    74    75                                                            36

               | d    d     d    d    d     d      d                                                               d

               |                                                                                                        n

----------------------------------------------------------------------------------------------------

LD(nn),x|32

             | n

             | n

----------------------------------------------------------------------------------------------------

LD I,x   | ED

             | 47

----------------------------------------------------------------------------------------------------

LD R,x  | ED

             | 4F

----------------------------------------------------------------------------------------------------

 

この表の見方ですが

LD  B,L

と書きたい場合は 45となります。

LD  A,9だと

3E 09

となります。

2バイトの命令ですね。

表横の最後はnとなっていますが、ここは数値が入ります。

8ビットの数値ならなんでもいいそうです。

 

次にメモリのアドレスを指定する場合ですが

LD  (8248H),A

の場合は

32 48 82

となります。

 

表で見ると

LD(nn),xのところとなります。32 n nと書いてありますが、

82と48のところが逆になっています。

 

実際にすこしやってみましょう。

LD A,9

LD (D800H),A

というのをマシンコードへ変換します。

これはAレジスタに9をロードして、Aレジスタの内容(9)をD800H番地にロードするものです。

 

アドレス  マシンコード

D000              3E09

D002              3200D8

 

なんとか出来たと思います。

肩が凝ってしまいますねぇ〜。歳かな^^

では〜。

 

次のページ

www.nyaonyao21.com

 

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

www.nyaonyao21.com



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

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