ファイルに開始・終了アドレスの範囲にあるデータを保存する。
読み込みはこれよりかんたん。似た感じなので省略。
このプログラムの内容としてはdatasからdataeの範囲にあるデータをファイルに保存してる。
内容はhello。ファイル名指定とか、アドレスの指定がややっこしい。
-- Assembled Statements -- 0x0000 6000 LD r0,$0 # start address 0x0013 0x0002 6113 LD r1,$13 # 0x0004 6200 LD r2,$0 # end address 0x0017 0x0006 6317 LD r3,$17 # 0x0008 A00E LOADI filename # 0x000A 00F1 SYS $0F1 # save 0x000C 100C loop JP loop # inf loop... 0x000E 0074 filename FCB $74 # 'test'0x0 0x000F 0065 FCB $65 # 0x0010 0073 FCB $73 # 0x0011 0074 FCB $74 # 0x0012 0000 FCB $00 # 0x0013 0068 datas FCB $68 # 'hello' 0x0014 0065 FCB $65 # 0x0015 006C FCB $6c # 0x0016 006C FCB $6c # 0x0017 006F datae FCB $6f #
通常アドレスを格納したりするのにはIresというダブルバイトレジスタを使うのだけれど、保存や読み込みではダブルバイトのレジスタを3つ使わなきゃイケない。そのせいでへんてこなレジスタ使いになっているのがちょっと使い辛いところ。
開始・終了アドレスを格納っていうようなファンクションを作った方がマシなのかも。