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

Block Move Addressing: Difference between revisions

From SnesLab
Jump to: navigation, search
(when source block remains intact)
(→‎References: hid archive URL for E&L)
 
(4 intermediate revisions by the same user not shown)
Line 4: Line 4:
* [[MVN]] (opcode 54)
* [[MVN]] (opcode 54)


The total number of bytes copied is the value in the [[C accumulator]] plus one.  If a block move is interrupted, the current byte copy is completed, then the interrupt is serviced.
They are both 3 bytes long.  The total number of bytes copied is the value in the [[C accumulator]] plus one.  If a block move is interrupted, the current byte copy is completed, then the interrupt is serviced.


When the copying is complete:
When the copying is complete:
Line 16: Line 16:
MVN srds
MVN srds
</pre>
</pre>
=== See Also ===
* [[DMA]]


=== References ===
=== References ===
* [[Eyes & Lichty]], page 388: https://archive.org/details/0893037893ProgrammingThe65816/page/388
* [[Eyes & Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/388 page 388]
* "Block Moves" on page 103, lbid: https://archive.org/details/0893037893ProgrammingThe65816/page/103
* "Block Moves" on [https://archive.org/details/0893037893ProgrammingThe65816/page/103 page 103], lbid
* section 3.5.9 of 65c816 datasheet, https://westerndesigncenter.com/wdc/documentation/w65c816s.pdf
* section 3.5.9 of 65c816 datasheet, https://westerndesigncenter.com/wdc/documentation/w65c816s.pdf


[[Category:ASM]]
[[Category:ASM]]
[[Category:Addressing Modes]]
[[Category:Addressing Modes]]
[[Category:Simple Admodes]]
[[Category:65c816 additions]]
[[Category:65c816 additions]]

Latest revision as of 21:53, 6 August 2024

Two instructions use Block Move Addressing on the 65c816:

  • MVP (opcode 44)
  • MVN (opcode 54)

They are both 3 bytes long. The total number of bytes copied is the value in the C accumulator plus one. If a block move is interrupted, the current byte copy is completed, then the interrupt is serviced.

When the copying is complete:

  • the accumulator will contain the value $FFFF.
  • both index registers will point to the byte one past the end of the blocks they were pointing to
  • if the source and destination blocks do not overlap, the source block is still intact

Syntax

Asar:

MVN srds

See Also

References