We've just updated MediaWiki and its underlying software. If anything doesn't look or work quite right, please mention it to us. --RanAS

CMPW (SPC700): Difference between revisions

From SnesLab
Jump to: navigation, search
(made basic info table shorter)
(made flags affected more prominent)
 
(10 intermediate revisions by the same user not shown)
Line 7: Line 7:
|'''Speed'''
|'''Speed'''
|+
|+
|direct page
|[[Direct Page Addressing | Direct Page]]
|5A
|5A
|2 bytes
|2 bytes
Line 15: Line 15:
{| class="wikitable" style="float:right;clear:right;width:30%"
{| class="wikitable" style="float:right;clear:right;width:30%"
!colspan="8"|Flags Affected
!colspan="8"|Flags Affected
|+
|[[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]]
|+
|+
|N
|N
|V
|P
|B
|H
|I
|Z
|C
|+
|
|.
|.
|.
|.
Line 31: Line 31:
|.
|.
|.
|.
|
|Z
|
|C
|}
|}


'''CMPW''' (Compare Word) is an [[SPC700]] command that performs a comparsion between [[YA]].
'''CMPW''' (Compare Word) is an [[SPC700]] command that performs a comparsion between [[YA]] and a 16-bit word in the [[direct page]]. Internally, this is done by the [[ALU]] subtracting the direct page word from YA, but the difference is not stored anywhere - the side effect is the N, Z, and C flags being modified.
 
==== Syntax ====
<pre>
CMPW YA, dp
</pre>


=== See Also ===
=== See Also ===
Line 41: Line 46:
* [[ADDW]]
* [[ADDW]]
* [[SUBW]]
* [[SUBW]]
* [[MOVW]]


=== External Links ===
=== External Links ===
* Official Nintendo documentation on CMPW: [https://archive.org/details/SNESDevManual/book1/page/n233 Appendix C-8 of Book I]
* Official Nintendo documentation on CMPW: Table C-12 in [https://archive.org/details/SNESDevManual/book1/page/n233 Appendix C-8 of Book I]
* anomie: https://github.com/yupferris/TasmShiz/blob/8fabc9764c33a7ae2520a76d80ed7220bb939f12/spc700.txt#L407


[[Category:ASM]]
[[Category:ASM]]
[[Category:SPC700]]
[[Category:SPC700]]
[[Category:16-bit Operation Commands]]
[[Category:16-bit Operation Commands]]
[[Category:Two-byte Instructions]]

Latest revision as of 13:55, 30 July 2024

Basic Info
Addressing Mode Opcode Length Speed
Direct Page 5A 2 bytes 4 cycles
Flags Affected
N V P B H I Z C
N . . . . . Z C

CMPW (Compare Word) is an SPC700 command that performs a comparsion between YA and a 16-bit word in the direct page. Internally, this is done by the ALU subtracting the direct page word from YA, but the difference is not stored anywhere - the side effect is the N, Z, and C flags being modified.

Syntax

CMPW YA, dp

See Also

External Links