SH-2A、SH2A-FPU
4. 命令の特長
4.2 アドレッシングモード
4.
命令の特長Rev.4.00 2011.02.22 4-4 R01US0031JJ0400
SH-2A、SH2A-FPU
4.
命令の特長Rev.4.00 2011.02.22 4-5 R01US0031JJ0400 SH-2A、SH2A-FPU
アドレッシングモード 命令フォーマット 実効アドレスの計算方法 計算式
@(disp:4,Rn) 実効アドレスはレジスタRnに4ビッ トディスプレースメントdispを加算 した内容です。dispはゼロ拡張後、オ ペランドサイズによってバイトで1 倍、ワードで2倍、ロングワードで4 倍します。
Rn
Rn 㧗disp1/2/4
1/2/4 disp㧔ࡠᒛ㧕 㧗
バイト:Rn+disp ワード:Rn+disp×2 ロングワード:Rn+disp×4 ディスプレースメント
付きレジスタ間接
@(disp:12,Rn) 実効アドレスはレジスタRnに12ビッ トディスプレースメントdispを加算 した内容です。dispはゼロ拡張します。
Rn
Rn 㧗disp1/2/4/8
1/2/4/8 disp㧔ࡠᒛ㧕 㧗
バイト:Rn+disp ワード:Rn+disp×2 ロングワード:Rn+disp×4 クワッドワード:
Rn+disp×8
インデックス付き レジスタ間接
@(R0,Rn) 実効アドレスはレジスタRnにR0を 加算した内容です。
㧗 Rn
R0
Rn㧗R0
Rn+R0
ディスプレースメント 付きGBR間接
@(disp:8,GBR) 実効アドレスはレジスタGBRに8ビ ットディスプレースメントdispを加 算した内容です。dispはゼロ拡張後、
オペランドサイズによってバイトで1 倍、ワードで2倍、ロングワードで4 倍します。
GBR
GBR 㧗disp1/2/4
1/2/4 㧗 disp㧔ࡠᒛ㧕
バイト:GBR+disp ワード:GBR+disp×2 ロングワード:
GBR+disp×4
インデックス付き GBR間接
@(R0,GBR) 実効アドレスはレジスタGBRにR0 を加算した内容です。
GBR
GBR㧗R0 R0
㧗
GBR+R0
4.
命令の特長Rev.4.00 2011.02.22 4-6 R01US0031JJ0400
SH-2A、SH2A-FPU
アドレッシングモード 命令フォーマット 実効アドレスの計算方法 計算式 ディスプレースメント
付きTBR二重間接
@@ (disp:8,TBR) 実効アドレスはレジスタTBRに8ビ ットディスプレースメントdispを加 算したアドレスの内容です。dispはゼ ロ拡張後4倍します。
TBR
TBR 㧗disp4
㧔TBR 㧗disp4㧕 4
㧗 disp㧔ࡠᒛ㧕
(TBR+disp×4)アドレス の内容
ディスプレースメント 付きPC相対
@(disp:8,PC) 実効アドレスはレジスタPCに8ビッ トディスプレースメントdispを加算 した内容です。dispはゼロ拡張後、オ ペランドサイズによってワードで2 倍、ロングワードで4倍します。
さらにロングワードのときはPCの下 位2ビットをマスクします。
PC
PC㧗disp2
߹ߚߪ PC㧒 H'FFFFFFFC
㧗disp4 H'FFFFFFFC
㧗 㧒
2/4 disp㧔ࡠᒛ㧕
*
*ࡠࡦࠣࡢ࠼ߩߣ߈
ワード:PC+disp×2 ロングワード:
PC&H'FFFFFFFC+disp×4
4.
命令の特長Rev.4.00 2011.02.22 4-7 R01US0031JJ0400 SH-2A、SH2A-FPU
アドレッシングモード 命令フォーマット 実効アドレスの計算方法 計算式 disp:8 実効アドレスはレジスタPCに8ビッ
トディスプレースメントdispを符号 拡張後2倍し、加算した内容です。
PC
2
disp㧔╓ภᒛ㧕 㧗 PC㧗disp2
PC+disp×2
disp:12 実効アドレスはレジスタPCに12ビッ トディスプレースメントdispを符号 拡張後2倍し、加算した内容です。
PC
2
disp㧔╓ภᒛ㧕 㧗 PC㧗disp2
PC+disp×2 PC相対
Rn 実効アドレスはレジスタPCにRnを 加算した内容です。
PC
PC㧗Rn Rn
㧗
PC+Rn
MOVI20命令の20ビットイミディエ イトimmは符号拡張します。
31
ᾢनᇱག
imm208(-19 0
―
#imm:20
MOVI20S命令の20ビットイミディエ イトimmは8ビット左にシフトし、上 位側は符号拡張、下位側はゼロ詰めを 行います。
31
ᾢनᇱག
imm208(- 00000000
27 8 0
―
#imm:8 TST、AND、OR、XOR命令の8ビッ トイミディエイトimmはゼロ拡張し ます。
―
#imm:8 MOV、ADD、CMP/EQ命令の8ビッ トイミディエイトimmは符号拡張し ます。
―
#imm:8 TRAPA命令の8ビットイミディエイ トimmはゼロ拡張後、4倍します。
― イミディエイト
#imm:3 BAND、BOR、BXOR、BST、BLD、
BSET、BCLR命令の3ビットイミデ ィエイトimmはビット位置を表しま す。
―