home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1998 January (DVD)
/
VPR980100.ISO
/
DRIVER
/
IBM
/
VW200
/
VW200_2.EXE
/
DEVINFO
/
SMC88ZB.TXT
< prev
next >
Wrap
Text File
|
1995-05-05
|
6KB
|
210 lines
PUSH r: Push r reg. onto stack (3cycle)
機能 [SP-1] ← r, SP ← SP - 1
rレジスタ(A/B/L/H)の内容をスタックポインタ(SP)から1を減算した内容で示され
るアドレスにストアします。SPはデクリメント(-1)されます。
コード MSB LSB
1 1 0 0 1 1 1 1 CFH
1 0 1 1 0 0 r B0H~B3H ※
※ r ニーモニック コード
A 00 PUSH A B0H
B 01 PUSH B B1H
L 10 PUSH L B2H
H 11 PUSH H B3H
フラグ I1 I0 U D N V C Z
- - - - - - - -
モード レジスタ直接
例 PUSH Aを実行。
A SP
実行前 5AH 0000H Stack
5AH(A) 00FFFFH
実行後 5AH FFFFH
PUSH rp: Push rp reg. onto stack (4cycle)
機能 [SP-1] ← rp(H), [SP-2] ← rp(L), SP ← SP - 2
rpレジスタ(BA/HL/IX/IY)の内容を上位バイト、下位バイトの順にスタックポイン
タ(SP)から1を減算した内容で示されるアドレスと、さらにひとつ前のアドレスに
ストアします。SPからは2が減算されます。
コード MSB LSB
1 0 1 0 0 0 rp A0H~A3H ※
※ rp ニーモニック コード
BA 00 PUSH BA A0H
HL 01 PUSH HL A1H
IX 10 PUSH IX A2H
IY 11 PUSH IY A3H
フラグ I1 I0 U D N V C Z
- - - - - - - -
モード レジスタ直接
例 PUSH BAを実行。
BA SP
実行前 235AH 0000H Stack
5AH(A) 00FFFEH
実行後 235AH FFFEH 23H(B) 00FFFFH
PUSH BR: Push BR reg. onto stack (3cycle)
機能 [SP-1] ← BR, SP ← SP - 1
BRレジスタの内容をスタックポインタ(SP)から1を減算した内容で示されるアドレ
スにストアします。SPはデクリメント(-1)されます。
コード MSB LSB
1 0 1 0 0 1 0 0 A4H
フラグ I1 I0 U D N V C Z
- - - - - - - -
モード レジスタ直接
例 BR SP
実行前 5AH 0000H Stack
5AH(BR) 00FFFFH
実行後 5AH FFFFH
PUSH EP: Push EP reg. onto stack (3cycle)
機能 [SP-1] ← EP, SP ← SP - 1
EPレジスタの内容をスタックポインタ(SP)から1を減算した内容で示されるアドレ
スにストアします。SPはデクリメント(-1)されます。
コード MSB LSB
1 0 1 0 0 1 0 1 A5H
フラグ I1 I0 U D N V C Z
- - - - - - - -
注意 MODEL0/1では本命令が使用できません。
モード レジスタ直接
例 BR SP
実行前 5AH 0000H Stack
5AH(EP) 00FFFFH
実行後 5AH FFFFH
PUSH IP: Push IP reg. onto stack (4cycle)
機能 [SP-1] ← XP, [SP-2] ← YP, SP ← SP - 2
YPレジスタ、XPレジスタの内容をそれぞれスタックポインタ(SP)から1を減算した
内容で示されるアドレスと、さらにひとつ前のアドレスにストアします。SPからは
2が減算されます。
コード MSB LSB
1 0 1 0 0 1 1 0 A6H
フラグ I1 I0 U D N V C Z
- - - - - - - -
モード レジスタ直接
例 PUSH IPを実行。
XP YP SP
実行前 23H 5AH 0000H Stack
5AH(YP) 00FFFEH
実行後 23H 5AH FFFEH 23H(XP) 00FFFFH
注意 MODEL0/1では本命令が使用できません。
PUSH SC: Push SC reg. onto stack (3cycle)
機能 [SP-1] ← SC, SP ← SP - 1
システムコンディションフラグ(SC)の内容をスタックポインタ(SP)から1を減算し
た内容で示されるアドレスにストアします。SPはデクリメント(-1)されます。
コード MSB LSB
1 0 1 0 0 1 1 1 A7H
フラグ I1 I0 U D N V C Z
- - - - - - - -
モード レジスタ直接
例 SC SP
実行前 5AH 0000H Stack
5AH(SC) 00FFFFH
実行後 5AH FFFFH
PUSH ALE: Push all registers including expand registers (15cycle)
機能 PUSH BA, HL, IX, IY, BR, EP, IP
BA、HL、IX、IY、BR、EP、IP(YP/XP)の順にレジスタの内容をスタックポインタ
(SP)が示すアドレスから下位のアドレスに向けてプッシュします。SPはプッシュし
たバイト数分の12が減算されます。
MODEL2/3で使用するレジスタを退避します。
コード MSB LSB
1 1 0 0 1 1 1 1 CFH
1 0 1 1 1 0 0 1 B9H
フラグ I1 I0 U D N V C Z
- - - - - - - -
モード インプライド(レジスタ直接)
例 SP=0000Hの場合、PUSH ALEを実行すると、下図のようにレジスタがスタックされSP=
FFF4Hとなります。
00FFFAH IX(L) 00FFF4H YP
OOFFFBH IX(H) OOFFF5H XP
00FFFCH L 00FFF6H EP
00FFFDH H 00FFF7H BR
00FFFEH A 00FFF8H IY(L)
00FFFFH B 00FFF9H IY(H)
注意 MODEL0/1では本命令が使用できません。
PUSH ALL: Push all registers (12cycle)
機能 PUSH BA, HL, IX, IY, BR
BA、HL、IX、IY、BRの順にレジスタの内容をスタックポインタ(SP)が示すアドレス
から下位のアドレスに向けてプッシュします。SPはプッシュしたバイト数分の9が
減算されます。
MODEL0/1で使用するレジスタを退避します。
コード MSB LSB
1 1 0 0 1 1 1 1 CFH
1 0 1 1 1 0 0 0 B8H
フラグ I1 I0 U D N V C Z
- - - - - - - -
モード インプライド(レジスタ直接)
例 SP=0000Hの場合、PUSH ALLを実行すると、下図のようにレジスタがスタックされSP=
FFF7Hとなります。
00FFFCH L 00FFF7H BR
00FFFDH H 00FFF8H IY(L)
00FFFEH A 00FFF9H IY(H)
00FFFFH B 00FFFAH IX(L)
00FFFBH IX(H)