We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
MOV (SPC700): Difference between revisions
From SnesLab
(→External Links: MOV has two pages in the official manual) |
(moved tables up) |
||
Line 1: | Line 1: | ||
{| class="wikitable" style="float:right;clear:right;width:30%" | {| class="wikitable" style="float:right;clear:right;width:30%" | ||
!colspan="8"|Basic Info (Group 1) | !colspan="8"|Basic Info (Group 1) | ||
Line 338: | Line 332: | ||
|. | |. | ||
|} | |} | ||
'''MOV''' is an [[SPC700]] instruction that moves a value. There are a large number of variations for this instruction, and they are divided into three groups: | |||
* In Group 1, MOV moves values from ARAM to registers. | |||
* In Group 2, MOV moves values from registers to ARAM. | |||
* In Group 3, MOV moves values from registers to registers or from ARAM to ARAM. | |||
=== External Links === | === External Links === |
Revision as of 17:46, 13 July 2023
Basic Info (Group 1) | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
immediate | E8 | 2 bytes | 3 cycles | ||||
E6 | 1 byte | 3 cycles | |||||
BF | 1 byte | 4 cycles | |||||
direct page | E4 | 2 bytes | 3 cycles | ||||
F4 | 2 bytes | 4 cycles | |||||
absolute | E5 | 3 bytes | 4 cycles | ||||
F5 | 3 bytes | 5 cycles | |||||
F6 | 3 bytes | 5 cycles | |||||
E7 | 2 bytes | 6 cycles | |||||
F7 | 2 bytes | 6 cycles | |||||
immediate | CD | 2 bytes | 2 cycles | ||||
direct page | F8 | 2 bytes | 3 cycles | ||||
F9 | 2 bytes | 4 cycles | |||||
absolute | E9 | 3 bytes | 4 cycles | ||||
immediate | 8D | 2 bytes | 2 cycles | ||||
direct page | EB | 2 bytes | 3 cycles | ||||
FB | 2 bytes | 4 cycles | |||||
absolute | EC | 3 bytes | 4 cycles |
Flags Clobbered (Group 1) | |||||||
---|---|---|---|---|---|---|---|
N | V | P | B | H | I | Z | C |
. | . | . | . | . | . |
Basic Info (Group 2) | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
C6 | 1 byte | 4 cycles | |||||
AF | 1 byte | 4 cycles | |||||
C4 | 2 bytes | 4 cycles | |||||
D4 | 2 bytes | 5 cycles | |||||
C5 | 3 bytes | 5 cycles | |||||
D5 | 3 bytes | 6 cycles | |||||
D6 | 3 bytes | 6 cycles | |||||
C7 | 2 bytes | 7 cycles | |||||
D7 | 2 bytes | 6 cycles | |||||
D8 | 2 bytes | 4 cycles | |||||
D8 | 2 bytes | 4 cycles | |||||
D9 | 2 bytes | 5 cycles | |||||
C9 | 3 bytes | 5 cycles | |||||
CB | 2 bytes | 4 cycles | |||||
DB | 2 bytes | 5 cycles | |||||
CC | 3 bytes | 5 cycles |
Flags Clobbered (Group 2) | |||||||
---|---|---|---|---|---|---|---|
N | V | P | B | H | I | Z | C |
. | . | . | . | . | . | . | . |
Basic Info (Group 3) | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
7D | 1 byte | 2 cycles | |||||
DD | 1 byte | 2 cycles | |||||
5D | 1 byte | 2 cycles | |||||
FD | 1 byte | 2 cycles | |||||
9D | 1 byte | 2 cycles |
Flags Clobbered (Group 3) | |||||||
---|---|---|---|---|---|---|---|
N | V | P | B | H | I | Z | C |
. | . | . | . | . | . |
Basic Info (Group 3 cont.) | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
BD | 1 byte | 2 cycles | |||||
FA | 3 bytes | 5 cycles | |||||
8F | 3 bytes | 5 cycles |
Flags Clobbered (Group 3 cont.) | |||||||
---|---|---|---|---|---|---|---|
N | V | P | B | H | I | Z | C |
. | . | . | . | . | . | . | . |
MOV is an SPC700 instruction that moves a value. There are a large number of variations for this instruction, and they are divided into three groups:
- In Group 1, MOV moves values from ARAM to registers.
- In Group 2, MOV moves values from registers to ARAM.
- In Group 3, MOV moves values from registers to registers or from ARAM to ARAM.
External Links
- Official Super Nintendo development manual on MOV: Appendix C-3 of Book I
- Appendix C-4 of Book I lbid