devmove
devmove
device move
Code: 62 F4
Description: Perform a device copy between memory or memory-mapped devices.
Copies Areg bytes to address Breg from address Creg. Only the minimum number of
reads and writes required to copy the data will be performed. Each read will be to a
strictly higher (more positive) address than the one before and each write will be to a
strictly higher byte address than the one before. There is no guarantee of the relative
ordering of read and write cycles, except that a write cannot occur until the
corresponding read has been performed. The memory accesses performed by this
instruction are guaranteed to be correctly sequenced with respect to other device-
access instructions. Also the instruction is guaranteed to be executed after all normal
memory access instructions that appear before it in the code sequence, and before all
normal memory accesses that appear after it.
Definition:
if (source and destination overlap)
Undefined effect
else for i = 0 .. (Aregunsigned − 1)
byte′[Breg + i] ← byte[Creg + i]
Areg′ ← undefined
Breg′ ← undefined
Creg′ ← undefined
Error signals: none
Comments:
Secondary instruction.
The effect of the instruction is undefined if the source and destination overlap.
Instruction is interruptible.
Devmove will not operate from or to peripheral addresses.
See also: move
66/212
®