| ホーム | Web版シミュレータ | 仕様 | ダウンロード | 掲示板 | 前のページ | 次のページ |
| 上位ビット | 下位ビット |
| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
| ↑符号ビット |
(2) 主記憶の容量は65536語で、そのアドレスは0〜65535番地である。
(3)
数値は、16ビットの2進数で表現する。負数は、2の補数で表現する。
(4)
制御方式は逐次制御で、命令後は1語長又は2語長である。
(5) レジスタとして、GR(16ビット)、SP(16ビット)、PR(16ビット)、FR(3ビット)の4種類がある。
GR(汎用レジスタ、General Register)は、GR0〜GR7の8個があり、算術、論理、比較、シフトなどの演算に用いる。このうち、GR1〜GR7のレジスタは、指標レジスタ(Index Register)としてアドレスの修飾にも用いる。
SP(スタックポインタ、Stack Pointer)は、スタックの最上段のアドレスを保持している。
PR(プログラムレジスタ、Program Register)は、
次に実行すべき命令語の先頭アドレスを保持している。
FR(フラグレジスタ,Flag Register)は、OF
(Overflow Flag)、SF(Sign Flag)、ZF(Zero Flag)
と呼ぶ3個のビットからなり、演算命令などの実行によって次の値
が設定される。これらの値は、条件付き分岐命令で参照される。
| OF | 算術演算命令の場合は、演算結果が−32768〜32767に収まらなくなったとき1になり、 それ以外のとき0になる。論理演算命令の場合は、演算結果が0〜65535に収まらなくなったとき 1になり、それ以外のとき0になる。 |
| SF | 演算結果の符合が負(ビット番号15が1)のとき1、それ以外のとき0になる。 |
| ZF | 演算結果が零(全部のビットが0)のとき1、それ以外のとき0になる。 |
(6) 論理加算又は論理減算は、被演算データを符号の無い数値とみなして、加算又は減算する。
命令の形式およびその機能を示す。ここで、ひとつの命令コードに対し2種類のオペランドがある場合、上段はレジスタ間の命令、下段はレジスタと主記憶間の命令を表す。
| 命令 | 書き方 | 命令の説明 | FRの設定 | |
|---|---|---|---|---|
| 命令コード | オペランド | |||
| ロード LoaD |
LD | r1,r2 | r1 ← (r2) | ○*1 |
| r,adr[,x] | r ← (実効アドレス) | |||
| ストア STore |
ST | r,adr[,x] | 実効アドレス ← (r) | − |
| ロードアドレス Load ADdress |
LAD | r,adr[,x] | r ← 実効アドレス |
| 算術加算 ADD Arithmetic |
ADDA | r1,r2 | r1 ← (r1) + (r2) | ○ |
| r,adr[,x] | r ← (r) + (実効アドレス) | |||
| 論理加算 ADD Logical |
ADDL | r1,r2 | r1 ← (r1) +L (r2) | |
| r,adr[,x] | r ← (r) +L (実効アドレス) | |||
| 算術減算 SUBtract Arithmetic |
SUBA | r1,r2 | r1 ← (r1) − (r2) | |
| r,adr[,x] | r ← (r) − (実効アドレス) | |||
| 論理減算 SUBtract Logical |
SUBL | r1,r2 | r1 ← (r1) −L (r2) | |
| r,adr[,x] | r ← (r) −L (実効アドレス) | |||
| 論理積 AND |
AND | r1,r2 | r1 ← (r1) AND (r2) | ○*1 |
| r,adr[,x] | r ← (r) AND (実効アドレス) | |||
| 論理和 OR |
OR | r1,r2 | r1 ← (r1) OR (r2) | |
| r,adr[,x] | r ← (r) OR (実効アドレス) | |||
| 排他的論理和 eXclusive OR |
XOR | r1,r2 | r1 ← (r1) XOR (r2) | |
| r,adr[,x] | r ← (r) XOR (実効アドレス) |
| 算術比較 ComPare Arithmetic |
CPA | r1,r2 | (r1)と(r2)、又は(r)と(実効アドレス)の
算術比較又は論理比較を行い、比較結果によって、FRに次の値を設定する。
|
○*1 | |||||||||||||||||
| r,adr[,x] | |||||||||||||||||||||
| 論理比較 ComPare Logical |
CPL | r1,r2 | |||||||||||||||||||
| r,adr[,x] | |||||||||||||||||||||
| 算術左シフト Shift Left Arithmetic |
SLA | r,adr[,x] | 符合を除き(r)を実効アドレスで
指定したビット数だけ左又は右にシフトする。 シフトの結果、空いたビット位置には、左シフトの時は0、 右シフトの時は符号と同じものが入る。 |
○*2 |
| 算術右シフト Shift Right Arithmetic |
SRA | r,adr[,x] | ||
| 論理左シフト Shift Left Logical |
SLL | r,adr[,x] | 符号を含み(r)を実効アドレスで
指定したビット数だけ左又は右にシフトする。 シフトの結果、空いたビット位置には0が入る。 |
|
| 論理右シフト Shift Right Logical |
SRL | r,adr[,x] |
| 正分岐 Jump on PLus |
JPL | adr[,x] | FRの値によって、実効アドレスに分岐する。
分岐しない時は、次の命令に進む。
|
− | |||||||||||||||||||||||||||
| 負分岐 Jump on MInus |
JMI | adr[,x] | |||||||||||||||||||||||||||||
| 非零分岐 Jump on Non Zero |
JNZ | adr[,x] | |||||||||||||||||||||||||||||
| 零分岐 Jump on ZEro |
JZE | adr[,x] | |||||||||||||||||||||||||||||
| オーバーフロー分岐 Jump on OVerflow |
JOV | adr[,x] | |||||||||||||||||||||||||||||
| 無条件分岐 unconditional JUMP |
JUMP | adr[,x] | 無条件に実効アドレスに分岐する。 | ||||||||||||||||||||||||||||
| プッシュ PUSH |
PUSH | adr[,x] | SP ← (SP) −L 1, (SP) ← 実効アドレス |
− |
| ポップ POP |
POP | r | r ← ((SP)), SP ← (SP) +L 1 |
| コール CALL subroutine |
CALL | adr[,x] | SP ← (SP) −L 1, (SP) ← (PR), PR ← 実効アドレス |
− |
| リターン RETurn from subroutine |
RET | PR ← ((SP)), SP ← (SP) +L 1 |
| スーパバイザコール SuperVisor Call |
SVC | adr[,x] | 実効アドレスを引数として割出しを行う。実行後のGRとFRは不定となる。 | − |
| ノーオペレーション No OPeration |
NOP | 何もしない。 |
| (注) | r,r1,r2 | いずれもGRを示す。指定できるGRはGR0〜GR7 |
| adr | アドレスを示す。指定できる値の範囲は0〜65535 | |
| x | 指標レジスタとして用いるGRを示す。指定できるGRはGR1〜GR7 | |
| [ ] | [ ]内の指定は省略できることを示す。 | |
| ( ) | ( )内のレジスタ又はアドレスに格納されている内容を示す。 | |
| 実効アドレス | adrとxの内容との論理加算値又はその値が示す番地。 | |
| ← | 演算結果を、左辺のレジスタ又はアドレスに格納することを示す。 | |
| +L −L | 論理加算,論理減算を示す。 | FRの設定 |
|
|
(1)JIS X 0201 ラテン文字・片仮名用8ビット符号で規定する文字の組を使用する。 (2)右に符号表の一部を示す。1文字は8ビットからなり、上位4ビットを列で、下位4ビットを行で示す。 たとえば、間隔、4、H、¥のビット構成は、16進表示で、ビット構成が 21〜7E(及び表では省略しているA1〜DF)に対応する文字を図形文字という。 図形文字は、表示(印刷)装置で、文字として表示(印字)できる。 (3)この表にない文字とそのビット構成が必要な場合は、問題中で与える。 |
|
| ホーム | Web版シミュレータ | 仕様 | ダウンロード | 掲示板 | 前のページ | 次のページ |