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

AND (Super FX): Difference between revisions

From SnesLab
Jump to: navigation, search
(→‎References: hid archive URL)
(made flags affected more prominent)
 
(26 intermediate revisions by the same user not shown)
Line 1: Line 1:
'''AND''' is a [[Super FX]] instruction that performs a logical AND.
{| class="wikitable" style="float:right;clear:right;width:60%"
 
{| class="wikitable" style="float:right;clear:right;width:30%"
!colspan="8"|Basic Info
!colspan="8"|Basic Info
|+
|+
Line 11: Line 9:
|'''Cache Speed'''
|'''Cache Speed'''
|+
|+
|immediate
|[[Immediate]]
|3E7n
|3E7n
|2 bytes
|2 bytes
Line 18: Line 16:
|2 cycles
|2 cycles
|+
|+
|implied
|[[Implied]] (type 1)
|7n
|7n
|1 byte
|1 byte
Line 29: Line 27:
!colspan="9"|Flags Affected
!colspan="9"|Flags Affected
|+
|+
|B
|[[B Flag|B]]
|ALT1
|[[ALT1]]
|ALT2
|[[ALT2]]
|O/V
|[[O/V]]
|S
|[[Sign Flag|S]]
|CY
|[[CY]]
|Z
|[[Zero Flag|Z]]
|+
|+
|0
|0
Line 41: Line 39:
|0
|0
|.
|.
|
|S
|.
|.
|
|Z
|}
|}
'''AND''' is a [[Super FX]] instruction that performs a logical AND on the [[source register]] and R<sub>n</sub>.  The conjunction is stored in the [[destination register]].  The operand cannot be R<sub>0</sub>.
The [[ALT0]] state is restored.
The source and destination registers should be specified in advance using [[WITH]], [[FROM]], or [[TO]].  Otherwise, R<sub>0</sub> serves as the default.
==== Syntax ====
<pre>
AND Rn
AND #n
</pre>
==== Example 1 ====
AND  R<sub>8</sub>  ; R<sub>0</sub> AND R<sub>8</sub> -> R<sub>0</sub>
          ; 163ah and 00ffh -> 003ah
FROM R<sub>9</sub>  ; set the source reg to R<sub>9</sub>
TO  R<sub>10</sub>  ; set the dest reg to R<sub>10</sub>
AND  R<sub>7</sub>  ; R<sub>9</sub> AND R<sub>7</sub> -> R<sub>10</sub>
          ; 55aah and ff00h -> 5500h
==== Example 2 ====
Let:
R<sub>0</sub> = 3e5dh (0011 1110 0101 1101b)
After executing AND #6h:
R<sub>0</sub> = 0004h (0000 0000 0000 0100b)
=== See Also ===
* [[OR (Super FX)]]
* [[XOR (Super FX)]]
* [[BIC (Super FX)]]
* [[ALT2]]
* [[AND]]
* [[AND (SPC700)]]


=== External Links ===
=== External Links ===
* Official Nintendo documentation on AND: [https://archive.org/details/SNESDevManual/book2/page/n166 Page 2-9-10 of Book II]
* Official Nintendo documentation on AND: 9.11 [https://archive.org/details/SNESDevManual/book2/page/n166 Page 2-9-10 of Book II]
* AND with immediate addressing: 9.12 [https://archive.org/details/SNESDevManual/book2/page/n167 Page 2-9-11 of Book II]


[[Category:ASM]]
[[Category:ASM]]
[[Category:Super FX]]
[[Category:Super FX]]
[[Category:Logical Operation Instructions]]
[[Category:Logical Operation Instructions]]
[[Category:Expects Sreg/Dreg Prearranged]]

Latest revision as of 18:35, 30 July 2024

Basic Info
Addressing Mode Opcode Length ROM Speed RAM Speed Cache Speed
Immediate 3E7n 2 bytes 6 cycles 6 cycles 2 cycles
Implied (type 1) 7n 1 byte 3 cycles 3 cycles 1 cycle
Flags Affected
B ALT1 ALT2 O/V S CY Z
0 0 0 . S . Z

AND is a Super FX instruction that performs a logical AND on the source register and Rn. The conjunction is stored in the destination register. The operand cannot be R0.

The ALT0 state is restored.

The source and destination registers should be specified in advance using WITH, FROM, or TO. Otherwise, R0 serves as the default.

Syntax

AND Rn
AND #n

Example 1

AND  R8   ; R0 AND R8 -> R0
          ; 163ah and 00ffh -> 003ah
FROM R9   ; set the source reg to R9
TO   R10  ; set the dest reg to R10
AND  R7   ; R9 AND R7 -> R10
          ; 55aah and ff00h -> 5500h

Example 2

Let:

R0 = 3e5dh (0011 1110 0101 1101b)

After executing AND #6h:

R0 = 0004h (0000 0000 0000 0100b)

See Also

External Links