I'm "re-learning" 68000 assembly language and came across the "MOVEQ" command that is labeled "MOVE QUICK".
According to the NXP Programmers Reference Manual (reference below), the command MOVEQ (MOVE QUICK) is described as:
Moves a byte of immediate data to a 32-bit data register. The data in an 8-bit
field within the operation word is sign- extended to a long operand in the data
register as it is transferred.
I've searched the manual and cannot find why it's "quick".
Meaning, what's the difference (in performance) in the following instructions?
MOVEQ #100, D0
MOVE #100, D0
I gather the MOVEQ is a better fit for moving 8-bit data. Or, is it ONLY 8-bits of data as I cannot seem to confirm.
REF:
https://www.nxp.com/files-static/archives/doc/ref_manual/M68000PRM.pdf
The MOVE.B instruction can have any source and destination mode, including memory to memory. At the time it was easier and simpler to have a standard operand decoder + microcode generator that you re-used for as many instructions as possible. Today, with many more gates, maybe you would reserve the move.b immediate -> register opcode pattern for another purpose.
– Hugh Fisher Dec 26 '21 at 00:09