今日の雑記

生きることでいっぱいいっぱい

今日の NCTMG

ジャンプ命令が動いた。


00h
10h 0 10
11h 2 0
13h 00000001h 20
12h 1 00000001h
14h 00000000h 2
15h 00000010h 00000000h
20h 1 16
21h 0 1
22h 2 5
23h 0 2
24h 2 4
25h 1 2
26h 1 2
27h 1 2
28h 0 4
29h 2 1
18h 0 15.125
19h 1 0
1bh 00000008h 3.141592
1ah 2 00000008h
1ch 00000009h 0
1dh 0000000ah 00000009h
1ah 3 0000000ah
01h label2
00h
label1:
01h label3
label2:
10h 10 20
01h label1
label3:
10h 11 30
コードはこんな感じ。だんだんマシン語っぽくなくなってきたきがするが。
実行結果。

0x00000000 nop
0x00000001 mov i00 10
0x00000004 mov i02 i00
0x00000007 mov 0x00000001 20
0x0000000a mov i01 0x00000001
0x0000000d mov 0x00000000 i02
0x00000010 mov 0x00000010 0x00000000
0x00000013 add i01 16
0x00000016 add i00 i01
0x00000019 sub i02 5
0x0000001c sub i00 i02
0x0000001f mul i02 4
0x00000022 mul i01 i02
0x00000025 div i01 2
0x00000028 div i01 i02
0x0000002b mod i00 4
0x0000002e mod i02 i01
0x00000031 mov f00 15.125000
0x00000034 mov f01 f00
0x00000037 mov 0x00000008 3.141592
0x0000003a mov f02 0x00000008
0x0000003d mov 0x00000009 f00
0x00000040 mov 0x0000000a 0x00000009
0x00000043 mov f03 0x0000000a
0x00000046 jmp label2
0x0000004b mov i10 20
0x0000004e jmp label1
0x00000049 jmp label3
0x00000050 mov i11 30

iREG Result
0x00000001 0x00000012 0x00000002 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000014 0x0000001e
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000

fREG Result
15.125000 15.125000 3.141592 15.125000
0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000
0.000000 0.000000 0.000000 0.000000

MEMORY Result
0x0000000a 0x00000014 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x40490fd8 0x41720000 0x41720000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x0000000a 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000
0x00000000 0x00000000 0x00000000 0x00000000

LABEL Table
00 0x0000004b : label2
01 0x00000049 : label1
02 0x00000050 : label3

ラベルテーブルもきちんと定義されてますな。
これで CALL 命令とかも作れるし、文字定数ラベルも作れるようになったよ。
現状とりあえず、無理して 1 パスで通しているけど、今後無理は出ないのかしら?ちょっと不安。