Apple II アセンブラ体験記

 アセンブリ言語や機械語に触れたことがなかったので、CPUが古いからわかりやすいだろうということで、Apple IIエミュレータで勉強してみることにしました。

SFCメディアセンターの次の本を参考にします。

Assembly Language for the Applesoft Programmer (007.64,AS1,4)

他にも、6502 Assembly Languageという本もあったのですが、この本が一番とっつきやすいようだったので、これをもとに勉強することにしました。

Apple IIにはApple Monitorという環境があって、ここでメモリの内容の編集、逆アセンブルができます。Apple Monitorに入るには、BASICのプロンプト]から、

] CALL -151

と入力します。すると、*印のプロンプトが現れます。これがApple Monitorです。

ここで、* FBE2.FBEFと入力すると、次のような結果が返ってきます。

FBE2- A0 C0 A9 0C 20 A8
FBE8- FC AD 30 C0 88 D0 F5 60

このように、ピリオドをはさんで開始アドレス.終了アドレスと入力すると、その範囲のメモリダンプが表示されます。

メモリ内容の表示に対して、変更は、

* 300: A9 20 85 E6 A9 7F 85 1C 20 F6 F3 8D 57 C0 8D 50 C0 20 1B FD 8D 51 C0 60

という風に番地: 内容(16進数) の形式で入力すればそのままメモリに書き込まれます。

  • Apple Monitorは、逆アセンブル機能があります。
    * 300L

という風に、アドレスの後にLを入力してリターンを押すと、そのアドレス以降いくらかのメモリが逆アセンブルされます。

機械語をメモリにストアしたら、ついに実行です。300Gと入力すると、今メモリに入れた部分が実行されます。番地Gで実行です。
画面の色が変わるのがわかります。

Apple Monitorを終了するには、Control-Cを入力してからリターンキーを押します。するとBASICに戻ることができます。

inserted by FC2 system