ニャオニャオ21世紀

レトロゲーム(MSX、PCエンジン、セガサターン)と、MSXぽいアプリ開発と、最新ゲーム(PS4、SWITCH)、身体(身体意識など)、ライフハックほか雑記を綴っています

MSXマシン語入門(Z80 アセンブラ・機械語) 勉強レポート 第5回 MSX メモリ 構成

スポンサーリンク

今日はメモリ構成をやりました!

その前に

2の補数表示というものの説明をしたいと思います。

 

nyaonyaokun.hatenablog.com

 

よくプログラムを組んでいると、扱える数値の範囲というのがあると

思います。

例えば、-32768 〜 +32767 までの数値を扱えますよというもの。

普通に暗記されている方が多いと思いますが、

ちょっと待ってください!!

今まで書いてきた2進数の知識では、マイナスを扱えません!!

 

そこで登場するのが2の補数です。

簡単な例をごらんください。

 

2進数                                               10進数

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

1000000000000000                           -32768

1000000000000001                           -32767

 

 

1111111110000000                           -128

1111111110000001                           -127

 

1111111111111111                           -1

 

マイナスは一番左のビットが1となっています。

ちなみに

2進数                                                 10進数

0111111111111111                            32767

プラスは一番左のビットが0です。

 

そういうものと覚えていただくのが早いですね〜。

 

 

メモリについてですが、

64Kバイトあるということは、0H番地〜FFFFH(65535)番地まであるということです。

 (Hは16進数の意味)

実際には64K中、32KバイトはMSX-BASICのインタプリタROMが入っています。

(インタプリタはその都度、マシン語に翻訳するとでも思ってください。そのつど

翻訳しているからBASICは遅い;)

32Kマシンにも、実際には64Kメモリがあって半分はBASICインタプリタに

占領されているなんてはじめてしりました!

 

MSXの32Kマシンだと

 

アドレス

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

0000 |

    |        BASIC インタプリタ (32K)  

         |  

7FFF |

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

8000 |

         |       RAM( 32 K )

         |

FFFF |

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

 

こんな構造になっているようです。

 

驚くべきことに、64Kマシンは、32KのBASICインタプリタを切り替えて

実際のプログラムが動くようにしているということらしいです。

つまり、BASICインタプリタをどかして容量を確保しているらしいです。

ということですので、BASICだと32Kマシンと同じ分しかプログラムが走らない

みたいです。

 

ちなみに16Kマシンはというと

アドレス

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

0000 |

    |        BASIC インタプリタ (32K)  

         |  

7FFF |

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

    |   この間はメモリは入っていない

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

C000 |       RAM (16K)

FFFF |

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

 

ということらしいです。

 

今日はこの辺りにしておきます。

では〜

 

 

nyaonyaokun.hatenablog.com

 

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

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