home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1998 January (DVD)
/
VPR980100.ISO
/
DRIVER
/
IBM
/
VW200
/
VW200_2.EXE
/
DEVINFO
/
SMC88B.TXT
< prev
next >
Wrap
Text File
|
1995-07-16
|
19KB
|
599 lines
4.4 命令の詳細説明
ここでは各命令を個々に説明します。
なお、説明は以下のフォーマットにしたがって行います。
<説明の見方>
ADC A,r: Add with carry r reg. to A reg. (2cycle)
ニーモニック: ニーモニックの意味 (バスサイクル数)
機能 A ← A + r + C
rレジスタ(A/B)の内容とキャリー(C)をAレジスタに加えます。 機能説明
コード MSB LSB
0 0 0 0 1 0 0 r 08H、09H ※ オブジェクトコード
コードが確定されるもの
※ r ニーモニック コード については16進数を表記
A 0 ADC A, A 08H
B 1 ADC A, B 09H 複数の命令を1個所で説明する場合は、
命令により変更されるビット等を表記
フラグ I1 I0 U D N V C Z 命令実行後のフラグの状態
- - ★ ★ - 変化しない
0 リセット
実行結果によりセット/リセット
★ 10進演算/アンパック演算可能
モード Src: レジスタ直接 アドレッシングモード
Dst: レジスタ直接 Srcはソース、Dstはディスティネーションを示します
例 設定値 結 果
A B C A SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0 命令の実行例
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
記号の意味は命令一覧表と同様です。 ⇒ "4.3.2 記号の意味"
なお、複数のレジスタを一括して説明する際には以下の記号を使用します。
r.....データレジスタA/B、またはA/B/L/H
ir....インデックスレジスタIX/IY
rp....16ビット(ペア)レジスタBA/HL、または16ビットレジスタ(BA)/HL/IX/IY/(SP)
er....ニューコードバンクレジスタNB、およびエクスパンドページレジスタEP/XP/YP
cc1...分岐条件C/NC/Z/NZ
cc2...分岐条件LT/LE/GT/GE/V/NV/P/M/F0/F1/F2/F3/NF0/NF1/NF2/NF3
マキシマムモードとミニマムモードでバスサイクル数の異なるものについてはサイクル数
に(MAX)と(MIN)を付けて記載します。MINにはMODEL0/1も含まれます。
ADC A,r: Add with carry r reg. to A reg. (2cycle)
機能 A ← A + r + C
rレジスタ(A/B)の内容とキャリー(C)をAレジスタに加えます。
コード MSB LSB
0 0 0 0 1 0 0 r 08H、09H ※
※ r ニーモニック コード
A 0 ADC A, A 08H
B 1 ADC A, B 09H
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: レジスタ直接
Dst: レジスタ直接
例 設定値 結 果
A B C A SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC A,#nn: Add with carry immediate data nn to A reg. (2cycle)
機能 A ← A + nn + C
8ビット即値データnnとキャリー(C)をAレジスタに加えます。
コード MSB LSB
0 0 0 0 1 0 1 0 0AH
n n nn
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: 即値データ
Dst: レジスタ直接
例 設定値 結 果
A nn C A SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC A,[BR:ll]: Add with carry location [BR:ll] to A reg. (3cycle)
機能 A ← A + [BR:ll] + C
BRレジスタの内容を上位バイト、8ビット絶対アドレスll下位バイトとしてアドレ
ス指定されたデータメモリの内容とキャリー(C)をAレジスタに加えます。
EPレジスタの内容がデータメモリのページアドレスになります(MODEL2/3)。
コード MSB LSB
0 0 0 0 1 1 0 0 0CH
l l ll
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: 8ビット絶対
Dst: レジスタ直接
例 設定値 結 果
A [BR:ll] C A SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC A,[hhll]: Add with carry location [hhll] to A reg. (4cycle)
機能 A ← A + [hhll] + C
16ビット絶対アドレスhhllでアドレス指定されたデータメモリの内容とキャリー
(C)をAレジスタに加えます。
EPレジスタの内容がデータメモリのページアドレスになります(MODEL2/3)。
コード MSB LSB
0 0 0 0 1 1 0 1 0DH
l l ll
h h hh
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: 16ビット絶対
Dst: レジスタ直接
例 設定値 結 果
A [hhll] C A SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC A,[HL]: Add with carry location [HL] to A reg. (2cycle)
機能 A ← A + [HL] + C
HLレジスタでアドレス指定されたデータメモリの内容とキャリー(C)をAレジスタ
に加えます。
EPレジスタの内容がデータメモリのページアドレスになります(MODEL2/3)。
コード MSB LSB
0 0 0 0 1 0 1 1 0BH
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: レジスタ間接
Dst: レジスタ直接
例 設定値 結 果
A [HL] C A SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC A,[ir]: Add with carry location [ir reg.] to A reg. (2cycle)
機能 A ← A + [ir] + C
irレジスタ(IX/IY)でアドレス指定されたデータメモリの内容とキャリー(C)をAレ
ジスタに加えます。
XPレジスタ(IX指定時)、YPレジスタ(IY指定時)の内容がデータメモリのページアド
レスになります(MODEL2/3)。
コード MSB LSB
0 0 0 0 1 1 1 ir 0EH、0FH ※
※ ir ニーモニック コード
IX 0 ADC A,[IX] 0EH
IY 1 ADC A,[IY] 0FH
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: レジスタ間接
Dst: レジスタ直接
例 設定値 結 果
A [ir] C A SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC A,[ir+dd]: Add with carry location [ir reg.+dd] to A reg.
(4cycle)
機能 A ← A + [ir+dd] + C
irレジスタ(IX/IY)の内容とディスプレースメントddの和でアドレス指定されたデ
ータメモリの内容とキャリー(C)をAレジスタに加えます。
ddは符号付きデータとして扱われ、範囲は-128~127です。
XPレジスタ(IX指定時)、YPレジスタ(IY指定時)の内容がデータメモリのページアド
レスになります(MODEL2/3)。
コード MSB LSB
1 1 0 0 1 1 1 0 CEH
0 0 0 0 1 0 0 ir 08H、09H ※
d d dd
※ ir ニーモニック コード
IX 0 ADC A, 08H
[IX+dd]
IY 1 ADC A, 09H
[IY+dd]
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: ディスプレースメント付きレジスタ間接
Dst: レジスタ直接
例 設定値 結 果
A [ir+dd] C A SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC A,[ir+L]: Add with carry location [ir reg.+L] to A reg. (4cycle)
機能 A ← A + [ir+L] + C
irレジスタ(IX/IY)の内容とLレジスタの内容の和でアドレス指定されたデータメモ
リの内容とキャリー(C)をAレジスタに加えます。
Lレジスタの内容は符号付きデータとして扱われ、範囲は-128~127です。
XPレジスタ(IX指定時)、YPレジスタ(IY指定時)の内容がデータメモリのページアド
レスになります(MODEL2/3)。
コード MSB LSB
1 1 0 0 1 1 1 0 CEH
0 0 0 0 1 0 1 ir 0AH、0BH ※
※ ir ニーモニック コード
IX 0 ADC A, 0AH
[IX+L]
IY 1 ADC A, 0BH
[IY+L]
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: インデックスレジスタ付きレジスタ間接
Dst: レジスタ直接
例 設定値 結 果
A [ir+L] C A SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC [HL], A: Add with carry A reg. to location [HL] (4cycle)
機能 [HL] ← [HL] + A + C
Aレジスタの内容とキャリー(C)をHLレジスタでアドレス指定されたデータメモリに
加えます。
EPレジスタの内容がデータメモリのページアドレスになります(MODEL2/3)。
コード MSB LSB
1 1 0 0 1 1 1 0 CEH
0 0 0 0 1 1 0 0 0CH
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: レジスタ直接
Dst: レジスタ間接
例 設定値 結 果
[HL] A C [HL] SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC [HL], #nn: Add with carry immediate data nn to location [HL]
(5cycle)
機能 [HL] ← [HL] + nn + C
8ビット即値データnnとキャリー(C)をHLレジスタでアドレス指定されたデータメモ
リに加えます。
EPレジスタの内容がデータメモリのページアドレスになります(MODEL2/3)。
コード MSB LSB
1 1 0 0 1 1 1 0 CEH
0 0 0 0 1 1 0 1 0DH
n n nn
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: 即値データ
Dst: レジスタ間接
例 設定値 結 果
[HL] nn C [HL] SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC [HL], [ir]: Add with carry location [ir reg.] to location [HL]
(5cycle)
機能 [HL] ← [HL] + [ir] + C
irレジスタ(IX/IY)でアドレス指定されたデータメモリの内容とキャリー(C)をHLレ
ジスタでアドレス指定されるデータメモリに加えます。
EPレジスタの内容がデータメモリ[HL]のページアドレス、XPレジスタ(IX指定時)、
YPレジスタ(IY指定時)の内容がデータメモリ[ir]のページアドレスになります
(MODEL2/3)。
コード MSB LSB
1 1 0 0 1 1 1 0 CEH
0 0 0 0 1 1 1 ir 0EH、0FH ※
※ ir ニーモニック コード
IX 0 ADC [HL], 0EH
[IX]
IY 1 ADC [HL], 0FH
[IY]
フラグ I1 I0 U D N V C Z
- - ★ ★
モード Src: レジスタ間接
Dst: レジスタ間接
例 設定値 結 果
[HL] [ir] C [HL] SC
N V C Z
D=0, U=0 の場合
18H 25H 0 3DH 0 0 0 0
18H 25H 1 3EH 0 0 0 0
30H D0H 0 00H 0 0 1 1
30H F0H 0 20H 0 0 1 0
30H 50H 0 80H 1 1 0 0
D=1, U=0 の場合
18 25 1 44 0 0 0 0
D=1, U=1 の場合
18 25 1 04 0 0 1 0
ADC BA, rp: Add with carry rp reg. to BA reg. (4cycle)
機能 BA ← BA + rp + C
rpレジスタ(BA/HL/IX/IY)の内容とキャリー(C)をBAレジスタに加えます。
コード MSB LSB
1 1 0 0 1 1 1 1 CFH
0 0 0 0 0 1 rp 04H、07H ※
※ rp ニーモニック コード
BA 00 ADC BA, BA 04H
HL 01 ADC BA, HL 05H
IX 10 ADC BA, IX 06H
IY 11 ADC BA, IY 07H
フラグ I1 I0 U D N V C Z
- - - -
モード Src: レジスタ直接
Dst: レジスタ直接
例 設定値 結 果
BA rp C BA SC
N V C Z
1380H 3546H 0 48C6H 0 0 0 0
1380H 3546H 1 48C7H 0 0 0 0
1380H EC80H 0 0000H 0 0 1 1
5218H 4174H 0 938CH 1 1 0 0
5342H C32AH 1 166DH 0 0 1 0
(rp≠BA)
ADC BA, #mmnn:Add with carry immediate data mmnn to BA reg.
(4cycle)
機能 BA ← BA + mmnn + C
16ビット即値データとキャリー(C)をBAレジスタに加えます。
コード MSB LSB
1 1 0 0 1 1 1 1 CFH
0 1 1 0 0 0 0 0 60H
n n nn
m m mm
フラグ I1 I0 U D N V C Z
- - - -
モード Src: 即値データ
Dst: レジスタ直接
例 設定値 結 果
BA mmnn C BA SC
N V C Z
1380H 3546H 0 48C6H 0 0 0 0
1380H 3546H 1 48C7H 0 0 0 0
1380H EC80H 0 0000H 0 0 1 1
5218H 4174H 0 938CH 1 1 0 0
5342H C32AH 1 166DH 0 0 1 0
ADC HL, rp: Add with carry rp reg. to HL reg. (4cycle)
機能 HL ← HL + rp + C
rpレジスタ(BA/HL/IX/IY)の内容とキャリー(C)をHLレジスタに加えます。
コード MSB LSB
1 1 0 0 1 1 1 1 CFH
0 0 1 0 0 1 rp 24H~27H ※
※ rp ニーモニック コード
BA 00 ADC HL, BA 24H
HL 01 ADC HL, HL 25H
IX 10 ADC HL, IX 26H
IY 11 ADC Hl, IY 27H
フラグ I1 I0 U D N V C Z
- - - -
モード Src: レジスタ直接
Dst: レジスタ直接
例 設定値 結 果
HL rp C HL SC
N V C Z
1380H 3546H 0 48C6H 0 0 0 0
1380H 3546H 1 48C7H 0 0 0 0
1380H EC80H 0 0000H 0 0 1 1
5218H 4174H 0 938CH 1 1 0 0
5342H C32AH 1 166DH 0 0 1 0
(rp≠HL)
ADC HL, #mmnn:Add with carry immediate data mmnn to HL reg.
(4cycle)
機能 HL ← HL + mmnn + C
16ビット即値データとキャリー(C)をHLレジスタに加えます。
コード MSB LSB
1 1 0 0 1 1 1 1 CFH
0 1 1 0 0 0 0 1 61H
n n nn
m m mm
フラグ I1 I0 U D N V C Z
- - - -
モード Src: 即値データ
Dst: レジスタ直接
例 設定値 結 果
HL mmnn C HL SC
N V C Z
1380H 3546H 0 48C6H 0 0 0 0
1380H 3546H 1 48C7H 0 0 0 0
1380H EC80H 0 0000H 0 0 1 1
5218H 4174H 0 938CH 1 1 0 0
5342H C32AH 1 166DH 0 0 1 0