メモリアクセス機能を追加
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 があれば、便利かもしれない。
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