KernelSimは,九州産業大学情報科学部情報科学科1年次の計算機初等教育で使われているコンピュータターミナル&シミュレータです.KernelSimで採用されている16ビットのCPU(Kernel-1)のアーキテクチャには,アキュムレータマシーンを採用しています.
Instruction Set
0XXX : LOAD (Direct, Index) (IF1)
1XXX : STORE (Direct, Index) (IF1)
2XXX : ADD (Direct, Index) (IF1)
3XXX : SUB (Direct, Index) (IF1)
4XXX : AND (Direct, Index) (IF1)
5XXX : OR (Direct, Index) (IF1)
6XXX : XOR (Direct, Index) (IF1)
7XXX : COMP (Direct, Index) (IF1)
8XXX : JUMP,CALL (Direct) (IF2)
9XXX : LOAD,ADD (Immediate) (IF3)
AXXX : NOT,NEG (IF4)
BXXX : LSL,LSR (IF4)
CXXX : SKIP (IF5)
DXXX : IN,OUT (IF4)
EXXX : HALT (IF6)
FXXX : NOP (IF6)
Instruction Format
OC: Operation Code
RS: Register Select (0:ACC,1:IXR)
AM: Addressing Mode (0:Direct,1:Index)
IF1: 15-12: OC, 11: RS, 10: AM, 9-0: Operand
IF2: 15-11: OC, 10: AM, 9-0: Operand
IF3: 15-12: OC1, 11: RS, 10: OC2, 9-0: Operand (Signed Immediate)
IF4: 15-12: OC1, 11: Reserved, 10: OC2, 9-0: Reserved
IF5: 15-12: OC, 11: Sign, 10: Zero, 9: Overflow, 8: Carry, 7-0: Reserved
IF6: 15-12: OC, 11-0: Reserved
Sample Code
// ACCが1ずつ増える.(無限ループ)
0000: 9401 ADDI ACC,1
0001: 8000 JUMP 0x0000