[English]

KUE-CHIP2とは

KUE-CHIP2とKUE-CHIP2教育用ボード

KUE-CHIP2 (Kyoto University Education Chip2)は, 大学などでの計算機教育のための教材として開発された8ビットマイクロプロセッサです. KUE-CHIP2は, きわめて単純なアーキテクチャを持ち基本的な命令セットを備えています.

KUE-CHIP2教育用ボードを用いれば,1クロックずつ,あるいは1命令ずつプログラムを実行しながら, 実行中のレジスタやメモリの状態を観察したり,変更することが可能となります.

KUE-CHIP2教育用ボードは,ASTEMによって製造,販売がされています. 詳しくは ASTEM Home Page をご覧ください.

【注】KUE-CHIP2は2025年3月末をもって頒布完了になっています.


KUE-CHIP2の命令仕様

すべて「KUE-CHIP2教育用ボードリファレンスマニュアル」からの抜粋です

アセンブラ文法

KUE-CHIP2のアドレスモード
ACC アキュミュレータ
IX インデックスレジスタ
d 即値アドレス
[d] 絶対アドレス(プログラム領域)
(d) 絶対アドレス(データ領域)
[IX+d] インデックス修飾アドレス(プログラム領域)
(IX+d) インデックス修飾アドレス(データ領域)

KUE-CHIP2論理アドレスモード
{ea} 全てのアドレスモード
{reg} レジスタアドレスモード
{imm} 即値アドレスモード
{ma} メモリ参照アドレスモード

アドレスモード対応表
ACC IX d [d] (d) [IX+d] (IX+d)
{ea}
{reg}
{imm}
{ma}

KUE-CHIP2命令表
略記号 アドレスモード 命令機能
HLT
NOP
Halt
No OPeration
IN
OUT
INput
OUTput
SCF
RCF
Set Carry Flag
Reset Carry Flag
LD
ST
{reg},{ea}
{reg},{ma}
LoaD
STore
ADD
ADC
SUB
SBC
CMP
AND
OR
EOR
{reg},{ea}
{reg},{ea}
{reg},{ea}
{reg},{ea}
{reg},{ea}
{reg},{ea}
{reg},{ea}
{reg},{ea}
ADD
ADd with Carry
SUBtract
SuBtract with Carry
CoMPare
AND
OR
Exclusive OR
Ssm
Rsm
{reg}
{reg}
Shift
Rotate
sm RA
LA
RL
LL
Right Arithmetically
Left Arithmerically
Right Logically
Left Logically
Bcc {imm} Branch
cc A
VF
NZ
Z
ZP
N
P
ZN
NI
NO
NC
C
GE
LT
GT
LE
Always
on oVerFlow
on Not Zero
on Zero
on Zero or Positive
on Negative
on Positive
on Zero or Negative
on No Input
on No Output
on No Carry
on Carry
on Greater than or Equal
on Less Than
on Greater Than
on Less than or Equal

命令セット

略記号 命令コード(1語目) B'(2語目) 命令機能の概略
NOP 0 0 0 0 0 - - - No OPeration
HLT 0 0 0 0 1 - - - HaLT 停止
0 1 0 1 - - - - 未使用(HLT)
OUT 0 0 0 1 0 - - - OUTput (ACC)→OBUF
IN 0 0 0 1 1 - - - INput (IBUF)→ACC
RCF 0 0 1 0 0 - - - Reset CF 0→CF
SCF 0 0 1 0 1 - - - Set CF 1→CF
Bcc 0 0 1 1 cc Branch cc 条件が成立すればB'→PC
Ssm 0 1 0 0 A 0 sm Shift sm (A)→shift, rotate→A
はみ出したビット→CF
Rsm 0 1 0 0 A 1 sm Rotate sm
LD 0 1 1 0 A B LoaD (B)→A
ST 0 1 1 1 A B STore (A)→B
SBC 1 0 0 0 A B SuBtract with Carry (A)-(B)-CF→A
ADC 1 0 0 1 A B ADd with Carry (A)+(B)+CF→A
SUB 1 0 1 0 A B SUBtract (A)-(B)→A
ADD 1 0 1 1 A B ADD (A)+(B)→A
EOR 1 1 0 0 A B Exclusive OR (A)⨁(B)→A
OR 1 1 0 1 A B OR (A)∨(B)→A
AND 1 1 1 0 A B AND (A)∧(B)→A
CMP 1 1 1 1 A B CoMPare (A)-(B)

A

B'

B

cc: Condition Code

A 0 0 0 0 Always
VF 1 0 0 0 on oVerFlow
NZ 0 0 0 1 on Not Zero
Z 1 0 0 1 on Zero
ZP 0 0 1 0 on Zero or Positive
N 1 0 1 0 on Negative
P 0 0 1 1 on Positive
ZN 1 0 1 1 on Zero or Negative
NI 0 1 0 0 on No Input
NO 1 1 0 0 on No Output
NC 0 1 0 1 on Not Carry
C 1 1 0 1 on Carry
GE 0 1 1 0 on Greater than or Equal
LT 1 1 1 0 on Less Than
GT 0 1 1 1 on Greater Than
LE 1 1 1 1 on Less than or Equal

sm: Shift Mode

RA 0 0 Right Arithmetically
LA 0 1 Left Arithmetically
RL 1 0 Right Logically
LL 1 1 Left Logically

Shift/Rotate命令の機能

略記号概略ビット操作
SRAShift Right ArithmeticallyShift Right Arithmetically
SLA†Shift Left ArithmeticallyShift Left Arithmetically
SRLShift Right LogicallyShift Right Logically
SLL†Shift Left LogicallyShift Left Logically
RRARotate Right ArithmeticallyRotate Right Arithmetically
RLARotate Left ArithmeticallyRotate Left Arithmetically
RRLRotate Right LogicallyRotate Right Logically
RLLRotate Left LogicallyRotate Left Logically

† SLAとSLLでは,実行後のフラグの状態が異なる(フラグ機能参照)


フラグ機能

CF: Carry Flag, VF: oVerflow Flag, NF: Negative Flag, ZF: Zero Flag

略記号命令機能の概略 実行への影響 実行後の状態
CFVFNFZF CFVFNFZF
NOPNo OPeration ---- ----
HLTHaLT ---- ----
OUTOUTput ---- ----
ININput ---- ----
RCFReset Carry Flag ---- 0---
SCFSet Carry Flag ---- 1---
SRAShift Right Arithmetically ---- b00NZ
SLAShift Left Arithmetically ---- b7VNZ
SRLShift Right Logically ---- b00NZ
SLLShift Left Logically ---- b70NZ
RRARotate Right Arithmetically b7--- b00NZ
RLARotate Left Arithmetically b0--- b7VNZ
RRLRotate Right Logically ---- b00NZ
RLLRotate Left Logically ---- b70NZ
LDLoaD ---- ----
STSTore ---- ----
SBCSuBtract with Carry c--- CVNZ
ADCADd with Carry c--- CVNZ
SUBSUBtract ---- -VNZ
ADDADD ---- -VNZ
EORExclusive OR ---- -0NZ
OROR ---- -0NZ
ANDAND ---- -0NZ
CMPCoMPare ---- -VNZ
BABranch Always ---- ----
BVFBranch on oVerFlow -VF-- ----
BNZBranch on Not Zero ---
ZF
----
BZBranch on Zero ---ZF ----
BZPBranch on Zero or Positive --
NF
- ----
BNBranch on Negative --NF- ----
BPBranch on Positive --
NF∨ZF
----
BZNBranch on Zero or Negative --NF∨ZF ----
BNIBranch on No Input ---- ----
BNOBranch on No Output ---- ----
BNCBranch on Not Carry
CF
--- ----
BCBranch on Carry CF--- ----
BGEBranch on Greater than or Equal -
VF⨁NF
- ----
BLTBranch on Less Than -VF⨁NF- ----
BGTBranch on Greater Than -
(VF⨁NF)∨ZF
----
BLEBranch on Less than or Equal -(VF⨁NF)∨ZF ----

実行への影響†

実行後の状態‡


命令コード早見表

ACCに対する代入および算術命令
ACC IX d [d] (d) [IX+d] (IX+d)
LD ACC, 60 61 62 64 65 66 67
ST ACC, - - - 74 75 76 77
SBC ACC, 80 81 82 84 85 86 87
ADC ACC, 90 91 92 94 95 96 97
SUB ACC, A0 A1 A2 A4 A5 A6 A7
ADD ACC, B0 B1 B2 B4 B5 B6 B7
EOR ACC, C0 C1 C2 C4 C5 C6 C7
OR ACC, D0 D1 D2 D4 D5 D6 D7
AND ACC, E0 E1 E2 E4 E5 E6 E7
CMP ACC, F0 F1 F2 F4 F5 F6 F7

IXに対する代入および算術命令
ACC IX d [d] (d) [IX+d] (IX+d)
LD IX, 68 69 6A 6C 6D 6E 6F
ST IX, - - - 7C 7D 7E 7F
SBC IX, 88 89 8A 8C 8D 8E 8F
ADC IX, 98 99 9A 9C 9D 9E 9F
SUB IX, A8 A9 AA AC AD AE AF
ADD IX, B8 B9 BA BC BD BE BF
EOR IX, C8 C9 CA CC CD CE CF
OR IX, D8 D9 DA DC DD DE DF
AND IX, E8 E9 EA EC ED EE EF
CMP IX, F8 F9 FA FC FD FE FF

シフト命令
ACC IX
SRA 40 48
SLA 41 49
SRL 42 4A
SLL 43 4B
RRA 44 4C
RLA 45 4D
RRL 46 4E
RLL 47 4F

分岐命令
BA 30
BVF 38
BNZ 31
BZP 32
BP 33
BNI 34
BNC 35
BGE 36
BGT 37
BZ 39
BN 3A
BZN 3B
BNO 3C
BC 3D
BLT 3E
BLE 3F

制御命令
NOP 00
HLT 0F
OUT 10
IN 1F
RCF 20
SCF 2F

KUE-CHIP2シミュレータJAVA

KUE-CHIP2教育用ボード はプロセッサの動作を理解するのに非常に有効なものです. しかしユーザとのインタフェースに関しては,主としていくつかのボタンとスイッチ, 7セグメントによる2種類の表示部しかありません.

これだけのインターフェースでプログラムの入力やデータの表示, プログラムの動作確認などを行うのはやはり簡単ではありません. そこで,このKUE-CHIP2 の命令セットをソフトウェアでシミュレートすることによって この点を改善し,さらにハードウェアでは実現することの困難な

といった機能を追加しました.

また,このシミュレータはJavaによるアプレットとして記述されています. したがって,Javaに対応したブラウザがあれば, ユーザの計算機環境に依存せず,Internetを通じていつでもだれでも 利用することができます. また,Javaのアプレット であるためある特定のサーバに対する負荷も軽減できます.


KUE-CHIP2シミュレータJAVAのページへ戻る