HOME | ⓘ | 無線 | PC−1245 | MSX | ファミコン | 迷路 |
---|---|---|---|---|---|---|
パソコン通信 | 売店 | 病院 | PC−9800 | PDA | 太陽光発電 | 経済 |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
LII n | 00 | 4 | I←n | I(カウンタ)にnを代入する | なし |
LIJ n | 01 | 4 | J←n | J(カウンタ)にnを代入する | なし |
LIA n | 02 | 4 | A←n | A(アキュムレータ)にnを代入する | なし |
LIB n | 03 | 4 | B←n | B(アキュムレータ予備)にnを代入する | なし |
|
10 | 8 | DP←nm | DP(外部RAMポインタ)にアドレスnmを代入する。 外部RAM上に置かれるコードでは「10 nn mm」となり、 アセンブラを使用する場合は特に意識する必要はないが、 ハンドアセンブルする場合は メモリの上位番地にアドレスの下位バイトが置かれる(Z80CPUと逆)ことに注意。 | なし |
LIDL n | 11 | 5 |
|
DP(外部RAMポインタ)の下位バイトにnを代入する。 | なし |
LIP n | 12 | 4 | P←n | P(内部RAMポインタ)にnを代入する。 | なし |
LIQ n | 13 | 4 | Q←n | Q(内部RAMポインタ)にnを代入する。 | なし |
LP n | 80〜BF | 2 | P←n | P(内部RAMポインタ)にnを代入する。 この命令はパラメータによってコードが変化し、パラメータと命令を合わせて1バイトしか 必要としない。内部RAMの後ろのほうはこの命令で届かないのでLIPを使用する。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
20 | 2 | A←P | A(アキュムレータ)にP(内部RAMポインタ)の値を代入する | なし |
LDQ | 21 | 2 | A←Q | A(アキュムレータ)にQ(内部RAMポインタ)の値を代入する | なし |
LDR | 22 | 2 | A←R | A(アキュムレータ)にR(内部RAMポインタ)の値を代入する | なし |
STP | 30 | 2 | P←A | P(内部RAMポインタ)にA(アキュムレータ)の値を代入する | なし |
|
31 | 2 |
|
Q(内部RAMポインタ)にA(アキュムレータ)の値を代入する | なし |
STR | 32 | 2 | R←A | R(内部RAMポインタ)にA(アキュムレータ)の値を代入する。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
STD | 52 | 2 | (DP)←A | 外部RAMにアキュムレータの値を書き出す命令。 A(アキュムレータ)の値を DP(外部RAMポインタ)の指しているメモリ(外部RAM)に 代入する。 | なし |
LDD | 57 | 3 |
|
外部RAMからアキュムレータに値を読み込む命令。 DP(外部RAMポインタ)の指している メモリ(外部RAM)の値をA(アキュムレータ)に代入する。 | なし |
|
59 | 2 | A←(P) | 内部RAMからアキュムレータに値を読み込む命令。 P(内部RAMポインタ)の指しているメモリ(内部RAM)の 値をA(アキュムレータ)に代入する。逆にアキュムレータの値を内部RAMに書き出す命令はないので、 代わりにEXAM(データ交換)命令を利用する。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
53 | 3 | (DP)←(P) | P(内部RAMポインタ)の指しているメモリ(内部RAM)の値を DP(外部RAMポインタ)の指しているメモリ(外部RAM)に代入する | なし |
MVMD | 55 | 3 |
|
DP(外部RAMポインタ)の指しているメモリ(外部RAM)の値を P(内部RAMポインタ)の指しているメモリ(内部RAM)に代入する | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
EXAB | DA | 5 | B←→A | A(アキュムレータ)とBの値を交換する | なし |
|
DB | 3 |
|
A(アキュムレータ)とP(内部RAMポインタ)の 指しているメモリ(内部RAM)の値を交換する | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
MVW | 08 | 5+2d |
(P)〜(P+I)←
(Q)〜(Q+I) |
内部RAM内でブロック転送を行う命令。 Q(内部RAMポインタ)からQ+Iまでのアドレス に入っている内容をP(内部RAMポインタ)からP+Iまでのメモリに転送する。 この命令の実行に先立ち事前にIにセットすべき値はブロック長−1となる。 | なし |
MVB | 0A | 5+2d |
(P)〜(P+J)←
(Q)〜(Q+J) |
使用するカウンタがJに変わること以外はMVWと同じ | なし |
|
18 | 5+4d |
(P)〜(P+I)←
(DP)〜(DP+I) |
外部RAMから内部RAMへブロック転送を行う命令。 DP(外部RAMポインタ)からDP+Iまでのアドレス に入っている内容をP(内部RAMポインタ)からP+Iまでのメモリに転送する。 この命令の実行に先立ち事前にIにセットすべき値はブロック長−1となる。 | なし |
MVBD | 1A | 5+4d |
(DP)〜(DP+J) |
使用するカウンタがJに変わること以外はMVWDと同じ | なし |
RST | 35 | ? |
(P)〜(P+I)←
(BA)〜(BA+I) |
外部RAMから内部RAMへブロック転送を行う命令。 レジスタペアBAからBA+Iまでのアドレス に入っている内容をP(内部RAMポインタ)からP+Iまでのメモリに転送する。 この命令の実行に先立ち事前にIにセットすべき値はブロック長−1となる。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
EXW | 09 | 6+3d |
(P)〜(P+I)←→
(Q)〜(Q+I) |
内部RAM内でデータのブロック交換を行う命令。 P(内部RAMポインタ)からP+Iまでのアドレス に入っている内容とQ(内部RAMポインタ)からQ+Iまでの アドレスに入っている内容を交換する。 この命令の実行に先立ち事前にIレジスタにセットすべき値はブロック長−1となる。 | なし |
EXB | 0B | 6+3d |
(P)〜(P+J)←→
(Q)〜(Q+J) |
使用するカウンタがJに変わること以外はEXWと同じ | なし |
|
19 | 7+6d |
(DP)〜(DP+I)←→
(P)〜(P+I) |
外部RAMと内部RAM間でデータのブロック交換を行う命令。 P(内部RAMポインタ)からP+Iまでのアドレス に入っている内容とDP(外部RAMポインタ)からDP+Iまでの アドレスに入っている内容を交換する。 この命令の実行に先立ち事前にIレジスタにセットすべき値はブロック長−1となる。 | なし |
EXBD | 1B | 7+6d |
←→(P)〜(P+J) |
使用するカウンタがJに変わること以外はEXWDと同じ | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
INCI | 40 | 4 | I←I+1 | Iに1を加える | C,Z |
DECI | 41 | 4 | I←I−1 | Iから1を引く | C,Z |
INCA | 42 | 4 | A←A+1 | Aに1を加える | C,Z |
DECA | 43 | 4 | A←A−1 | Aから1を引く | C,Z |
INCK | 48 | 4 | K←K+1 | Kに1を加える | C,Z |
DECK | 49 | 4 | K←K−1 | Kから1を引く | C,Z |
INCM | 4A | 4 | M←M+1 | Mに1を加える | C,Z |
|
4B | 4 |
|
Mから1を引く | C,Z |
INCP | 50 | 4 | P←P+1 | Pに1を加える | なし |
DECP | 51 | 4 | P←P−1 | Pから1を引く | なし |
INCJ | C0 | 4 | J←J+1 | Jに1を加える | C,Z |
DECJ | C1 | 4 | J←J−1 | Jから1を引く | C,Z |
INCB | C2 | 4 | B←B+1 | Bに1を加える | C,Z |
DECB | C3 | 4 | B←B−1 | Bから1を引く | C,Z |
INCL | C8 | 4 | L←L+1 | Lに1を加える | C,Z |
DECL | C9 | 4 | L←L−1 | Lからを1を引く | C,Z |
INCN | CA | 4 | N←N+1 | Nに1を加える | C,Z |
DECN | CB | 4 | N←N−1 | Nから1を引く | C,Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
04 | 6 |
|
Xに1を加える | なし |
DX | 05 | 6 | X←X−1 | Xから1を引く。Qの内容が破壊される。 | なし |
IY | 06 | 6 | Y←Y+1 | Yに1を加える。Qの内容が破壊される。 | なし |
DY |
|
6 | Y←Y−1 | Yから1を引く | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
IXL | 24 | 7 |
A←(X) |
Xに1を加え、それによって示されるメモリ (外部RAM)の値をアキュムレータに読み込む。 Qの内容が破壊される。 | なし |
|
25 | 7 |
A←(X) |
Xから1を引き、それによって示されるメモリ (外部RAM)の値をアキュムレータに読み込む。 Qの内容が破壊される。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
IYS | 26 | 6 |
(Y)←A |
Yに1を加え、それによって示されるメモリ (外部RAM)にアキュムレータの値を書き出す。 DPとQの値が破壊される。 | なし |
|
27 | 6 |
(Y)←A |
Yから1を引き、それによって示されるメモリ (外部RAM)にアキュムレータの値を書き出す。 DPとQの値が破壊される。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
1E |
|
(P)〜(P+I)←A | PからP+Iまでのアドレスの内部RAMにアキュムレータの 値をセットする。事前にIにセットしておくべき値は ブロック長−1となる。Pの値が破壊される。 | なし |
FILD | 1F |
|
|
DPからDP+Iまでのアドレスの外部RAMにアキュムレータの 値をセットする。事前にIにセットしておくべき値は ブロック長−1となる。DPの値が破壊される。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
ADIA n | 74 | 4 | A←A+n | A(アキュムレータ)にnを加算する。 | C,Z |
|
75 | 4 |
|
A(アキュムレータ)からnを引く。 | C,Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
ADIM n | 70 | 4 | (P)←(P)+n | P(ポインタ)の示す内部RAMにnを加算する。 | C,Z |
|
71 | 4 |
|
P(ポインタ)の示す内部RAMからnを減算する。 | C,Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
ADM | 44 | 3 | (P)←(P)+A | P(ポインタ)の示す内部RAMにA(アキュムレータ)の値を加算する。 Aの値は変化しない。 | C,Z |
|
45 | 3 |
|
P(ポインタ)の示す内部RAMからA(アキュムレータ)の値を引く。 Aの値は変化しない。 | C,Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
ADCM | C4 | 3 |
|
P(ポインタ)の示す内部RAMにA(アキュムレータ)とCフラグの値を加算する。 Aの値は変化しない。 | C,Z |
|
C5 | 3 | (P)←(P)−A−C | P(ポインタ)の示す内部RAMからA(アキュムレータ)とCフラグの値を引く。 Aの値は変化しない。 | C,Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
ADB | 14 | 5 |
(P+1,P)←
(P+1,P)+BA |
P+1とPによって示される内部RAMに レジスタ・ペアBAの値を加算する。 | C,Z |
|
15 | 5 |
(P+1,P)−BA |
P+1とPによって示される内部RAMから レジスタ・ペアBAの値を減算する。 | C,Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
ADN | 0C | 7+3d |
(P−I〜P)←
(P−1〜P)+A |
P−IからPで表されるブロックにAの値を加える。 それぞれ連続したBCDの数として演算を行う。 | C,Z |
SBN | 0D | 7+3d |
(P−I〜P)←
(P−1〜P)−A |
P−IからPで表されるブロックからAの値を引く。 それぞれ連続したBCDの数として演算を行う。 | C,Z |
ADW | 0E | 7+3d |
(P−I〜P)←
(P−1〜P)+(Q−I〜Q) |
P−IからPで表されるブロックにQ−IからQで表されるブロックの値を加える。 それぞれ連続したBCDの数として演算を行う。 | C,Z |
|
0F | 7+3d |
(P−1〜P)−(Q−I〜Q) |
P−IからPで表されるブロックからQ−IからQで表されるブロックの値を引く。 それぞれ連続したBCDの数として演算を行う。 | C,Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
1C | 5+d |
|
PからP+Iで表されるブロック内で4ビット単位の右シフトを行う。 その際、ブロックの先頭の4ビットに0が補われ、 ブロックの末尾の4ビットは捨てられる。例えば、 Aレジスタに78、Bレジスタに9Aと入っている時に、 Iに01、Pに02をセットしてこの命令を実行すると、 Aレジスタが07、Bレジスタが89になる。 | なし |
SLW | 1D | 5+d | 4ビット左シフト | PからP+Iで表されるブロック内で4ビット単位の左シフトを行う。 その際、ブロックの先頭の4ビットは捨てられ、 ブロックの末尾の4ビットに0が補われる。例えば、 Aレジスタに78、Bレジスタに9Aと入っている時に、 Iに01、Pに02をセットしてこの命令を実行すると、 Aレジスタが89、BレジスタがA0になる。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
47 | 3 | (P)←(P)∪A | Pで表される内部RAMとアキュムレータとのORを取り、 結果をそのメモリに格納する。結果が0ならZフラグが立つ。 アキュムレータは変化しない。 | Z |
|
61 | 3 | (P)←(P)∪n | Pで表される内部RAMとイミディエイト値nとのORを取り、 結果をそのメモリに格納する。結果が0ならZフラグが立つ。 | Z |
ORIA n | 65 | 4 | A←A∪n | アキュムレータとイミディエイト値nとのORを取り、 結果をアキュムレータに格納する。結果が0ならZフラグが立つ。 | Z |
ORID n | D5 | 6 |
|
DPで表される外部RAMとイミディエイト値nとのORを取り、 結果をそのメモリに格納する。結果が0ならZフラグが立つ。 | Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
46 | 3 | (P)←(P)∩A | Pで表される内部RAMとアキュムレータとのANDを取り、 結果をそのメモリに格納する。結果が0ならZフラグが立つ。 アキュムレータは変化しない。 | Z |
|
60 | 3 | (P)←(P)∩n | Pで表される内部RAMとイミディエイト値nとのANDを取り、 結果をそのメモリに格納する。結果が0ならZフラグが立つ。 | Z |
ANIA n | 64 | 4 | A←A∩n | アキュムレータとイミディエイト値nとのANDを取り、 結果をアキュムレータに格納する。結果が0ならZフラグが立つ。 | Z |
ANID n | D4 | 6 |
|
DPで表される外部RAMとイミディエイト値nとのANDを取り、 結果をそのメモリに格納する。結果が0ならZフラグが立つ。 | Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
62 | 3 | Z←(P)∩n | Pで表される内部RAMとイミディエイト値nとのANDを取り、 結果をZフラグに反映する。 | Z |
TSIA n | 66 | 4 | Z←A∩n | アキュムレータとイミディエイト値nとのANDを取り、 結果をZフラグに反映する。 | Z |
TSID n | D6 | 6 |
|
DPで表される外部RAMとイミディエイト値nとのANDを取り、 結果をZフラグに反映する。 | Z |
|
C6 | 6 | Z←(P)∩A | Pで表される内部RAMとアキュムレータとのANDを取り、 結果をZフラグに反映する。 | Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
63 | 4 | C、Z←(P)−n | Pで表される内部RAMからイミディエイト値nを引き、 結果をCおよびZフラグに反映する。 | C、Z |
CPIA n | 67 | 4 | C、Z←A−n | アキュムレータからイミディエイト値nを引き、 結果をCおよびZフラグに反映する。 | C、Z |
|
C7 | 3 |
|
Pで表される内部RAMからアキュムレータの値を引き、 結果をCおよびZフラグに反映する。 | C、Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
58 | 2 |
|
アキュムレータの上位4ビットと下位4ビットを入れ換える。 例えば9Aのときこの命令を実行するとA9になる。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
SL | 5A | 2 | 左シフト | アキュムレータの値を1ビットずつ左にずらす。 その際、Cフラグの内容がビット0に入り、 ビット7の内容がCフラグに入る。 Cフラグが0の時にこの命令を実行することは、 アキュムレータの値を2倍にすることに相当する。 | C |
|
D2 | 2 |
|
アキュムレータの値を1ビットずつ右にずらす。 その際、Cフラグの内容がビット7に入り、 ビット0の内容がCフラグに入る。 Cフラグが0の時にこの命令を実行することは、 アキュムレータの値を2で割ることに相当する。 | C |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
SC | D0 | 2 | C←1 | Cフラグに1をセットする。 | C、Z |
|
D1 | 2 |
|
Cフラグに0をセットする。 | C、Z |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
JRNZP n | 28 | 7,4 | IF Z=0 THEN PC←PC+n | Zフラグが0の時、パラメータnのあるアドレスから見てnバイト先にジャンプする。 Zフラグが1の時はそのまま次の命令を実行する。 | なし |
|
29 | 7,4 |
|
Zフラグが0の時、パラメータnのあるアドレスから見てnバイト前にジャンプする。 Zフラグが1の時はそのまま次の命令を実行する。 | なし |
JRNCP n | 2A | 7,4 | IF C=0 THEN PC←PC+n | Cフラグが0の時、パラメータnのあるアドレスから見てnバイト先にジャンプする。 Cフラグが1の時はそのまま次の命令を実行する。 | なし |
|
2B | 7,4 | IF C=0 THEN PC←PC-n | Cフラグが0の時、パラメータnのあるアドレスから見てnバイト前にジャンプする。 Cフラグが1の時はそのまま次の命令を実行する。 | なし |
JRP n | 2C | 7 | PC←PC+n | パラメータnのあるアドレスから見てnバイト先に無条件にジャンプする。 | なし |
JRM n | 2D | 7 | PC←PC-n | パラメータnのあるアドレスから見てnバイト前に無条件にジャンプする。 | なし |
JRZP n | 38 | 7,4 | IF Z=1 THEN PC←PC+n | Zフラグが1の時、パラメータnのあるアドレスから見てnバイト先にジャンプする。 Zフラグが0の時はそのまま次の命令を実行する。 | なし |
JRZM n | 39 | 7,4 | IF Z=1 THEN PC←PC-n | Zフラグが1の時、パラメータnのあるアドレスから見てnバイト前にジャンプする。 Zフラグが0の時はそのまま次の命令を実行する。 | なし |
JRCP n | 3A | 7,4 | IF C=1 THEN PC←PC+n | Cフラグが1の時、パラメータnのあるアドレスから見てnバイト先にジャンプする。 Cフラグが0の時はそのまま次の命令を実行する。 | なし |
JRCM n | 3B | 7,4 | IF C=1 THEN PC←PC-n | Cフラグが1の時、パラメータnのあるアドレスから見てnバイト前にジャンプする。 Cフラグが0の時はそのまま次の命令を実行する。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
JP nm | 79 | 6 | PC←nm | アドレスnm番地にジャンプする。なお、メモリ上のコードでは「79 nn mm」となり、 アドレスの上位番地がメモリ上の下位番地に置かれることとなるので、 ハンドアセンブル時には注意(他の絶対ジャンプ命令も同様)。 | なし |
|
7C | 6 |
|
Zフラグが立っていない時アドレスnm番地にジャンプする。 | なし |
JPNC nm | 7D | 6 | IF C=0 THEN PC←nm | Cフラグが立っていない時アドレスnm番地にジャンプする。 | なし |
JPZ nm | 7E | 6 | IF Z=1 THEN PC←nm | Zフラグが立っている時アドレスnm番地にジャンプする。 | なし |
JPC nm | 7F | 6 | IF C=1 THEN PC←nm | Cフラグが立っている時アドレスnm番地にジャンプする。 | なし |
ニモニック | コード | サイクル数 | オペレーション |
|
|
---|---|---|---|---|---|
|
28 | 10,7 |
IF C≠1 THEN PC←PC-n |
スタックポインタ(Rレジスタ)の指しているメモリの値から1を引き、 Cフラグが立たない場合、 マイナス方向にnバイト相対ジャンプする。 Cフラグが立った場合はスタックポインタに1を加えて 次の命令を実行する。 あらかじめスタックにPUSHすべき値は ループ回数−1となる。LOOPを入れ子にして使うときは、 外側のループ内に内側のループのPUSH命令が含まれるようにしておかないと暴走する。 | C、Z |
PUSH | 34 | 3 |
R←R−1 (R)←A |
スタックにアキュムレータの値を保存する命令。 スタックポインタ(Rレジスタ)を1減算し、スタックポインタが指している メモリにアキュムレータの値を保存する。 保存した命令を取り出す時はPOP命令を使用する。 | なし |
RTN | 37 | 4 |
PC←(R,R+1) R←R+2 |
サブルーチンからサブルーチンの呼び出し元のアドレスへ戻る命令。 スタックに保存されている値をプログラムカウンタ(PC)に セットしてスタックポインタに2加える(CALL前の状態に戻す)。 | なし |
INA | 4C | 2 | A←IA | IAポートの内容を読み取ってアキュムレータに入れる。 あらかじめIAポートの読み取りたい行に対応する ビットを1にしてOUTA命令を実行する必要がある。 | なし |
NOPW | 4D | 2 | − | 2サイクルの間、何もしない命令。 | なし |
WAIT n | 4E | 6+n | − | 6+nサイクルの間、何もしない命令。 | なし |
POP | 5B | 2 |
A←(R) R←R+1 |
スタックに保管しておいた値をアキュムレータに 戻す命令。スタックポインタRの指しているメモリの値を アキュムレータに代入し、Rに1を加える。 | なし |
OUTA | 5D | 3 | IA←(5C) | 内部RAM 5Cの内容をIAポートに出力する。 | なし |
OUTF | 5F | 3 | FO←(5E) | 内部RAM 5Eの内容をFOポートに出力する。 | なし |
TEST n | 6B | 4 | Z←各信号線∩n | 各信号線とnとのANDを取り、結果をZフラグに反映する。 ビット0:0.5secカウンタ ビット1:2msecカウンタ ビット3:Kon ビット7:Xin | Z |
|
78 | 8 |
(R−1,R)←PC R←R−2 PC←nm |
アドレスnmをコールする命令。スタックに戻りアドレスを保存し、 アドレスnmにジャンプする。 | Z |
INB | CC | 2 | A←IB | IBポートの内容を読み取ってアキュムレータに入れる。 あらかじめIBポートの読み取りたい行に対応する ビットを1にしてOUTB命令を実行する必要がある。 | なし |
NOPT | CE | 3 | − | 3サイクルの間、何もしない命令。 | なし |
LEAVE | D8 | 2 | (R)←0 | スタックポインタの値を変えずに スタックポインタの指しているメモリに0を入れる。 ループ中に実行すると次のLOOP命令実行時に ループから抜けることになる。 | なし |
OUTB | DD | 2 | IB←(5D) | 内部RAM 5Dの内容をIBポートに出力する。 | なし |
OUTC | DF | 2 | コントロール←(5F) | 内部RAM 5Fの内容をコントロールポートに出力する。 | なし |
CAL nm | E0〜FF | 7 |
(R−1,R)←PC R←R−2 PC←nm |
アドレスnmをコールする命令。スタックに戻りアドレスを保存し、 アドレスnmにジャンプする。 通常のCALL命令との相違点は、 CALL命令を使用すると命令1バイトと パラメータ2バイトで合計3バイト必要になる所、 CAL命令では命令の中にパラメータが含まれているので、 2バイトしか必要としない。 また、実行にかかる時間も1サイクル短い。 ただし、この命令で呼び出せるアドレスは 0000から1FFFの範囲である。 このアドレス範囲は内部ROMに割り当てられている。 | なし |
|
オペレーション |
|
|
---|---|---|---|
|
|
Jに1を入れてコールすると、Yの内容がXに入る |
|
|
|
Jに1を入れてコールすると、Xの内容がYに入る |
|
|
|
Jに1を入れてコールすると、Xと(0C〜0D)の内容が交換される |
|
|
|
LCDをONにする |
|
|
|
Bに上位アドレス、Aに下位アドレス、Jに1を入れてコールするとXにBAがセットされる |
|
|
|
Bに上位アドレス、Aに下位アドレス、Jに1を入れてコールするとYにBAがセットされる |
|
|
|
Bに上位アドレス、Aに下位アドレス、Jに1を入れてコールするとXにBA−1がセットされる |
|
|
|
Bに上位アドレス、Aに下位アドレス、Jに1を入れてコールするとYにBA−1がセットされる |
|
|
|
Xに入っている内容を内部RAM(1C〜1D)に退避する。 |
|
|
|
内部RAM(1C〜1D)に退避しておいたアドレスをXに戻す |
|
|
A←押されているキーの内部コード | 呼ばれた時にキーが押されていたら、そのキーの「内部」コード※がAに入り、 Cフラグが立つ。Aに入るコードはアスキーコードとは異なる (例:0を押すとAに&40が入るがASC(”0”)=&30である)。 INKEY$と同様、複数キーが同時に押された場合の判定はできない。 | DP・P・Q・A・B・X・K・L・M |
|
00 | 03 | 05 | 06 | 07 | 09 | 0A | 0C | 0D | 0E | 0F | 11 | 34 | 35 | 36 | 37 | 38 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 4A | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 5A | 5B | 5C | 5D | 5E | 5F | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 6A |
|
ENTER | CL | INS | DEL | BRK | SHIFT | DEF | ↑ | ↓ | → | ← | SPC | = | + | − | * | / | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | . | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
HOME | ⓘ | 無線 | PC−1245 | MSX | ファミコン | 迷路 |
---|---|---|---|---|---|---|
パソコン通信 | 売店 | 病院 | PC−9800 | PDA | 太陽光発電 | 経済 |