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
(simple admodes category) |
(both 3 bytes long) |
||
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: |
Revision as of 04:27, 24 July 2024
Two instructions use Block Move Addressing on the 65c816:
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
- Eyes & Lichty, page 388: https://archive.org/details/0893037893ProgrammingThe65816/page/388
- "Block Moves" on page 103, lbid: https://archive.org/details/0893037893ProgrammingThe65816/page/103
- section 3.5.9 of 65c816 datasheet, https://westerndesigncenter.com/wdc/documentation/w65c816s.pdf