We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS
MOV1 (SPC700): Difference between revisions
From SnesLab
m (Jeffythedragonslayer moved page MOV1 to MOV1 (SPC700): SPC700 in title) |
(made flags affected more prominent) |
||
(23 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
''' | {| class="wikitable" style="float:right;clear:right;width:40%" | ||
!colspan="8"|Basic Info | |||
|+ | |||
|'''Addressing Mode''' | |||
|'''Opcode''' | |||
|'''Length''' | |||
|'''Speed''' | |||
|+ | |||
|[[Absolute Boolean Bit]] | |||
|AA | |||
|3 bytes | |||
|4 cycles | |||
|+ | |||
|[[Absolute Boolean Bit]] | |||
|CA | |||
|3 bytes | |||
|6 cycles | |||
|} | |||
{| class="wikitable" style="float:right;clear:right;width:30%" | |||
!colspan="9"|Flags Affected | |||
|+ | |||
|Direction | |||
|[[Negative Flag|N]] | |||
|[[Overflow Flag|V]] | |||
|[[Direct Page Flag|P]] | |||
|[[Break Flag|B]] | |||
|[[Half-Carry Flag|H]] | |||
|[[Interrupt Enable Flag|I]] | |||
|[[Zero Flag|Z]] | |||
|[[Carry Flag|C]] | |||
|+ | |||
|to carry | |||
|. | |||
|. | |||
|. | |||
|. | |||
|. | |||
|. | |||
|. | |||
|C | |||
|+ | |||
|from carry | |||
|. | |||
|. | |||
|. | |||
|. | |||
|. | |||
|. | |||
|. | |||
|. | |||
|} | |||
'''MOV1''' is an [[SPC700]] command that moves a memory bit to or from the [[carry flag]]. The low 13 bits of the operand byte specify an absolute address. The high 3 bits of the operand byte specify which bit at that absolute address. | |||
The operands are stored in the instruction stream in the opposite order they appear in the assembler source. In the assembler source, the operand on the right is the source and the operand on the left is the destination. | |||
No flags are affected except when moving to the carry flag. | |||
==== Syntax ==== | |||
<pre> | |||
MOV1 C, mem. bit | |||
MOV1 mem. bit, C | |||
</pre> | |||
=== See Also === | |||
* [[MOVW]] | |||
* [[MOV]] | |||
* [[AND1]] | |||
* [[OR1]] | |||
* [[EOR1]] | |||
* [[NOT1]] | |||
=== External Links === | |||
* Official Super Nintendo development manual on MOV1: Table C-18 in [https://archive.org/details/SNESDevManual/book1/page/n234 Appendix C-9 of Book I] | |||
* subparagraph 8.2.3.3 of [https://archive.org/details/SNESDevManual/book1/page/n186 page 3-8-8], lbid. | |||
* anomie: https://github.com/yupferris/TasmShiz/blob/master/spc700.txt#L504 | |||
[[Category:ASM]] | [[Category:ASM]] | ||
[[Category:SPC700]] | [[Category:SPC700]] | ||
[[Category:Bit Operation Commands]] | [[Category:Bit Operation Commands]] | ||
[[Category:Three-byte Instructions]] |
Latest revision as of 14:03, 30 July 2024
Basic Info | |||||||
---|---|---|---|---|---|---|---|
Addressing Mode | Opcode | Length | Speed | ||||
Absolute Boolean Bit | AA | 3 bytes | 4 cycles | ||||
Absolute Boolean Bit | CA | 3 bytes | 6 cycles |
Flags Affected | ||||||||
---|---|---|---|---|---|---|---|---|
Direction | N | V | P | B | H | I | Z | C |
to carry | . | . | . | . | . | . | . | C |
from carry | . | . | . | . | . | . | . | . |
MOV1 is an SPC700 command that moves a memory bit to or from the carry flag. The low 13 bits of the operand byte specify an absolute address. The high 3 bits of the operand byte specify which bit at that absolute address.
The operands are stored in the instruction stream in the opposite order they appear in the assembler source. In the assembler source, the operand on the right is the source and the operand on the left is the destination.
No flags are affected except when moving to the carry flag.
Syntax
MOV1 C, mem. bit MOV1 mem. bit, C
See Also
External Links
- Official Super Nintendo development manual on MOV1: Table C-18 in Appendix C-9 of Book I
- subparagraph 8.2.3.3 of page 3-8-8, lbid.
- anomie: https://github.com/yupferris/TasmShiz/blob/master/spc700.txt#L504