「65c816 資料」の編集履歴(バックアップ)一覧に戻る
65c816 資料 - (2016/02/29 (月) 09:27:28) の編集履歴(バックアップ)
実質自分用メモです。
前々からSNES Wikiを参照させて頂いてましたが、
個別でページが用意されているため所要クロック数確認が面倒だったり、
スパムの被害を受けている(さらに復元しようとしてもエラーが出る)ため記事を作ります。
所要クロック数まとめ
Indirect系
|
($**) 3 |
($**),y 3 |
($**,x) 3 |
[$**] 3 |
[$**],y 3 |
($**,s),y |
STA 1 |
5 |
6 |
6 |
6 |
6 |
7 |
Aレジスタ系 1 |
5 |
5 4 |
6 |
6 |
6 |
7 |
Direct/Absolute/AbsoluteLong系
|
#$** |
$** 3 |
$**,xy 3 |
$**** |
$****,xy |
$****** |
$******,x |
$**,s |
STA 1 |
-- |
3 |
4 |
4 |
5 |
5 |
5 |
4 |
Aレジスタ系 1 |
2 |
3 |
4 |
4 |
4 4 |
5 |
5 |
4 |
STZ 1 |
-- |
3 |
4 |
4 |
5 |
-- |
-- |
-- |
BIT 1 |
2 |
3 |
4 |
4 |
4 4 |
-- |
-- |
-- |
LDX/LDY 2 |
2 |
3 |
4 |
4 |
4 4 |
-- |
-- |
-- |
STX/STY 2 |
-- |
3 |
4 |
4 |
-- |
-- |
-- |
-- |
CPX/CPY 2 |
2 |
3 |
-- |
4 |
-- |
-- |
-- |
-- |
TSB/TRB 5 |
-- |
5 |
-- |
6 |
-- |
-- |
-- |
-- |
RW系命令 5 |
-- |
5 |
6 |
6 |
7 |
-- |
-- |
-- |
- 1 m=0(A/メモリ 16bitモード)時、1クロック追加。
- 2 x=0(X/Y 16bitモード)時、1クロック追加。
- 3 Dレジスタの下位バイトが0でない時、1クロック追加。
- 4 インデックス追加時にページ境界をまたいだ時、1クロック追加。
- 5 m=0(A/メモリ 16bitモード)時、2クロック追加。
- Aレジスタ系…STAを除くアキュムレータが関係する命令。ORA AND EOR ADC LDA CMP SBC
- RW系命令…1回でメモリ読み込み・書き込みを実行する命令。INC DEC ASL LSR ROL ROR
ジャンプ/コール系
|
$**** |
$****** |
($****) |
($****,x) |
[$****] |
JMP/JML |
3 |
4 |
5 |
6 |
6 |
JSR/JSL |
6 |
8 |
-- |
8 |
-- |
その他
- 分岐命令は2クロック、分岐時3クロック(エミュレーションモード時は4クロック)
- 通常のプッシュ系命令は8bitの場合は3クロック、16bitの場合は4クロック。
- ポップ系命令は8bitの場合は4クロック、16bitの場合は5クロック。
- Implied系命令は一部を除き2クロック。
あまり
命令 |
クロック数 |
|
命令 |
クロック数 |
RTS |
6 |
|
PEA |
5 |
RTL |
6 |
|
PEI |
6 1 |
RTI |
6 2 |
|
PER |
6 |
SEP |
3 |
|
REP |
3 |
XBA |
3 |
|
MVP |
7 3 |
XCE |
2 |
|
MVN |
7 3 |
BRK |
7 2 |
|
WAI |
3 |
COP |
7 2 |
|
STP |
3 |
NOP |
2 |
|
WDM |
2 |
- 1 Dレジスタの下位バイトが0でない時、1クロック追加。
- 2 ネイティブモード時、1クロック追加。
- 3 1バイト転送するごとに7クロック。