モトローラのMC6809を使った自作マイコン"MyOwn6809"は、Assist09というモトローラが発表した モニタープログラムを搭載しています。Assist09には、12のサービスルーチンがあります。
これらのサービスを使うことで、プログラムの開発をスムーズに進めることができます。
いつもの Hello World!を作ってみました。
* HELLO.ASM -- SAY "HELLO WORLD!" * ASSIST09 SERVICE ENTRY CODE PDATA EQU 3 PUT CR/LF AND STRING TO CONSOLE * CONSTANT VALUES EOT EQU $04 END OF TEXT CR EQU $0D CARIGE RETURN LF EQU $0A LINE FEED RAMTOP EQU $C000 * ORG RAMTOP MAIN: LEAX HELLO,PCR SWI FCB PDATA RTS * HELLO: FCC 'HELLO WORLD!' FCB CR,LF,EOT * END
このプログラムは、RAMエリアの先頭、C000からロードするように作ってあります。このようにして、実行します。
禺画像]
このプログラムには、プログラムをどのような位置にロードしても実行できるように、おまじないをかけています。 論より証拠、C000からロードして、更にC020からにロードして実行してみました。
禺画像]
C020から実行しても正常に動いています。 いわゆる「リロケータブル」なプログラムになっています。変数のアドレスを指定するのに、プログラムカウンタの値を基準にして 指定しているので、このようなことができます。プログラムカウンタ相対です。
このプログラム中、出力文字列のアドレスを指定する部分、
LEAX HELLO,PCRで、"PCR"がプログラムカウンタ相対を指定しています。
セコメントをする