概要
windowsでiverilogやってみた。
polyphonyでcpu書いてみる。
アセンブラでfizzbuzz書いてみる。
ハンドコンパイルしてみた。
ニーモニック
| ニーモニック | HEX | 
|---|---|
| r0set 0 | 0x8000 | 
| r1set 1 | 0x8401 | 
| r0save 0 | 0xd000 | 
| r1save 1 | 0xd401 | 
| r0load 0 | 0xc000 | 
| r1load 1 | 0xc401 | 
| r0out | 0xa000 | 
| r0 + r1 | 0x0100 | 
| r0 < r1 | 0x6100 | 
| r0 % r1 | 0x7100 | 
| jp 2 | 0x4002 | 
| if 2 | 0x5002 | 
アセンブラをハンドコンパイル
rom = [
0x8000, #  r0set  0    0
0xd000, #  r0save 0    1 
0xd001, #  r0save 1    2 
0xd002, #  r0save 2    3
        #label_20:     
0xc002, #  r0load  2   4
0x8401, #  r1set  1    5 
0x0100, #  r0 + r1     6
0xd002, #  r0save  2   7
0x8409, #  r1set  9    8
0x6100, #  r0 < r1     9
0x5011, #  if label_32 a
0xc001, #  r0load  1   b
0x8401, #  r1set  1    c
0x0100, #  r0 + r1     d
0xd001, #  r0save  1   e
0x8000, #  r0set  0    f
0xd002, #  r0save  2   10
        #label_32:     
0xc000, #  r0load  0   11
0x8401, #  r1set  1    12
0x0100, #  r0 + r1     13
0xd000, #  r0save 0    14
0xc000, #  r0load  0   15
0x8464, #  r1set  100  16
0x6100, #  r0 < r1     17
0x5053, #  if label_255 18
0xc000, #  r0load  0   19
0x840f, #  r1set  15   1a
0x7100, #  r0 % r1     1b
0x502a, #  if label_120 1c
0xd000, #  r0load  0   1d
0x8005, #  r1set  5    1e
0x7100, #  r0 % r1     1f
0x503d, #  if label_140 20
0xd000, #  r0load  0    21
0x8003, #  r1set  3    22
0x7100, #  r0 % r1     23
0x5048, #  if label_160 24
0xc001, #  r0load  1    25
0xa000, #  r0out        26
0x8002, #  r0load  2    27
0xa000, #  r0out        28
0x4004, #  jp label_20  29
        #label_120:     
0x8066, #  r0set  'f'   2a
0xa000, #  r0out        2b
0x8069, #  r0set  'i'   2c
0xa000, #  r0out        2d
0x807a, #  r0set  'z'   2e
0xa000, #  r0out        2f
0x807a, #  r0set  'z'   30
0xa000, #  r0out        31
0x8062, #  r0set  'b'   32
0xa000, #  r0out        33
0x8075, #  r0set  'u'   34
0xa000, #  r0out        35
0x807a, #  r0set  'z'   36
0xa000, #  r0out        37
0x807a, #  r0set  'z'   38
0xa000, #  r0out        39
0x8020, #  r0set  ' '   3a
0xa000, #  r0out        3b
0x4004, #  jp label_20  3c
        #label_140:     
0x8062, #  r0set  'b'   3d
0xa000, #  r0out        3e
0x8075, #  r0set  'u'   3f
0xa000, #  r0out        40
0x807a, #  r0set  'z'   41
0xa000, #  r0out        42
0x807a, #  r0set  'z'   43
0xa000, #  r0out        44
0x8020, #  r0set  ' '   45
0xa000, #  r0out        46
0x4004, #  jp label_20  47
        #label_160:     
0x8066, #  r0set  'f'   48
0xa000, #  r0out        49
0x8069, #  r0set  'i'   4a
0xa000, #  r0out        4b
0x807a, #  r0set  'z'   4c
0xa000, #  r0out        4d
0x807a, #  r0set  'z'   4e
0xa000, #  r0out        4f
0x8020, #  r0set  ' '   50
0xa000, #  r0out        51
0x4004, #  jp label_20  52
        #label_255:
0x4056, #  end          53
]
以上。
