コードはこちら。
https://github.com/takeisa/ocaml-hack-assembler
サンプルコード Test.asm
1から100まで加算し、シンボルiで示すアドレスに計算結果を格納するプログラム。
// sum from 1 to 100 @i M=1 // i=1 @sum M=0 // sum=0 (LOOP) // comment(space) @i D=M // D=i @100 D=D-A // D=i-100 @END D;JGT // if (i-100) > 0 then jump END @i D=M // D=i @sum M=D+M // sum=sum+i @i M=M+1 // i=i+1 @LOOP 0;JMP (END) @END 0;JMP
シンボルテーブルを出力するようにしたので、実行すると以下のようになる。
satoshi@jessie: ./assembler Test.asm === Symbol table === SP 0000 LCL 0001 ARG 0002 THIS 0003 THAT 0004 R00 0000 R01 0001 R02 0002 R03 0003 R04 0004 R05 0005 R06 0006 R07 0007 R08 0008 R09 0009 R10 000a R11 000b R12 000c R13 000d R14 000e R15 000f SCREEN 4000 KBD 6000 i 0010 sum 0011 LOOP 0004 END 0013
0 件のコメント:
コメントを投稿