CPU

メモリアクセス機能を追加

2007年6月23日

ニーモニック表を更新。

1)[b1], [b2] へのアクセスだけでは無理がありそうなので、[b1+1], [b1+2], [b1+3], [b2-1], [b2-2], [b2-3] へも、x レジスタから読み書きできるようにした。従来の mov x,[b1] は、mov xl, [b1]l へと変更したので、selector 周りのコードも少しすっきりした。

2)push b2, push ss を廃止し、代わりに push x, push f とした。

他に、気のついたところ:

1)cmp 命令が欲しい。
2)sub a2,a2 は不要なので、ここに何かの命令を割り当てられそう(sub a1,a1 は、x レジスタの値をゼロにするのに有用)。
3)ローテート命令を複合命令として実装すれば、便利。
4)シフト命令は、shr a1 と shl a2 の二つにし、shr a2 と shl a1 は複合命令を用いて記述するようにするかもしれない。
5)複合命令用に、inc cs:ip, dec cs:ip があれば、便利かもしれない。

00 mov x,a1
01 mov x,a2
02 mov x,b1
03 mov x,b2
04 mov x,ip
05 mov x,ds
06 mov x,ss
07 mov x,cs
08 mov a1,x
09 mov a2,x
0a mov b1,x
0b mov b2,x
0c mov ip,x (jmp)
0d mov ds,x
0e mov ss,x
0f mov cs,x

10 push a1
11 push a2
12 push b1
13 push x
14 push ip
15 push ds
16 push f
17 push cs
18 pop a1
19 pop a2
1a pop b1
1b pop x
1c pop ip (ret)
1d pop ds
1e pop f
1f pop cs

20 mov xl,a1l
21 mov xl,a2l
22 mov xl,b1l
23 mov xl,b2l
24 mov xl,fl
25 mov xl,xh
26 mov x,[b1]
27 mov x,[b2]
28 mov a1l,xl
29 mov a2l,xl
2a mov b1l,xl
2b mov b2l,xl
2c mov fl,xl
2d mov xh,xl
2e mov [b1],x
2f mov [b2],x

30 if z
31 if nz
32 if c
33 if nc
        
40 add a1,a1
41 add a1,a2
42 add a1,[b1]
43 add a1,[b2]
44 nop
45 add a2,a2
46 add a2,[b1]
47 add a2,[b2]
48 sub a1,a1
49 sub a1,a2
4a sub a1,[b1]
4b sub a1,[b2]
4c sub a2,a1
4d sub a2,a2
4e sub a2,[b1]
4f sub a2,[b2]

50 inc a1
51 inc a2
52 inc ds:b1
53 inc ss:b2
54 dec a1
55 dec a2
56 dec ds:b1
57 dec ss:b2
58 shl a1
59 shl a2
5a shr a1
5b shr a2
5c nor a1,a2
5d nand a1,a2
5e inc x
5f dec x

60 mov xl,0h
61 mov xl,1h
62 mov xl,2h
63 mov xl,3h
64 mov xl,4h
65 mov xl,5h
66 mov xl,6h
67 mov xl,7h
68 mov xl,8h
69 mov xl,9h
6a mov xl,ah
6b mov xl,bh
6c mov xl,ch
6d mov xl,dh
6e mov xl,eh
6f mov xl,fh

70 mov xh,0h
71 mov xh,1h
72 mov xh,2h
73 mov xh,3h
74 mov xh,4h
75 mov xh,5h
76 mov xh,6h
77 mov xh,7h
78 mov xh,8h
79 mov xh,9h
7a mov xh,ah
7b mov xh,bh
7c mov xh,ch
7d mov xh,dh
7e mov xh,eh
7f mov xh,fh

80 mov x,[b1]
81 mov x,[b1+1]
82 mov x,[b1+2]
83 mov x,[b1+3]
84 mov x,[b2]
85 mov x,[b2-1]
86 mov x,[b2-2]
87 mov x,[b2-3]
88 mov [b1],x
89 mov [b1+1],x
8a mov [b1+2],x
8b mov [b1+3],x
8c mov [b2],x
8d mov [b2-1],x
8e mov [b2-2],x
8f mov [b2-3],x

コメント

コメントはありません

コメント送信