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
(→‎References: hid archive URL for E&L)
(→‎References: hid archive URL for E&L)
 
Line 22: Line 22:
=== References ===
=== References ===
* [[Eyes & Lichty]], [https://archive.org/details/0893037893ProgrammingThe65816/page/388 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



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