MCF548x Reference Manual, Rev. 3
3-20 Freescale Semiconductor
Enhanced support for byte and word-sized operands through new move operations
Enhanced support for position-independent code
For descriptions of the ColdFire instruction set, see the latest version of the ColdFire Programmers
Reference Manual.
The following list summarizes new and enhanced instructions of ISA_B:
New instructions:
INTOUCH loads blocks of instructions to be locked in the instruction cache.
MOV3Q.L moves 3-bit immediate data to the destination location.
MOVE to/from USP loads and stores user stack pointer.
MVS.{B,W} sign-extends the source operand and moves it to the destination register.
MVZ.{B,W} zero-fills the source operand and moves it to the destination register.
SATS.L performs a saturation operation for signed arithmetic and updates the destination
register depending on CCR[V] and bit 31 of the register.
TAS.B performs an indivisible read-modify-write cycle to test and set the addressed memory
byte.
Enhancements to existing Revision_A instructions:
Longword support for branch instructions (Bcc, BRA, BSR)
Byte and word support for compare instructions (CMP, CMPI)
Word support for the compare address register instruction (CMPA)
Byte and longword support for MOVE.x,where the source is immediate data and the
destination is specified by d16(Ax); that is, MOVE.{B,W} #<data>, d16(Ax)
Floating-point instructions. See Chapter 6, “Floating-Point Unit (FPU).”
EMAC instructions. See Chapter 4, “Enhanced Multiply-Accumulate Unit (EMAC),” for more
information.
Table 3-7 shows the syntax for the new and enhanced instructions. As Table 3-7 shows, some ISA_B
opcodes were defined in the M68000 family and others are new.
Table 3-7. V4 New Instruction Summary
Instruction Mnemonic1Source Destination M68000
ISA_B Extensions
Branch Always bra.l <label> Yes
Branch Conditionally bcc.l <label> Yes
Branch to Subroutine bsr.l <label> Yes
Compare cmp.{b,w,l} <ea>y Dx Yes
Compare Address cmpa.w <ea>y Ax Yes
Compare Immediate cmpi.{b,w} #<data> Dx Yes
Instruction Fetch Touch intouch <Ay>
Move 3-Bit Data Quick mov3q.l #<data> <ea>x
Move Data Source to Destination move.{b,w} #<data> d16(Ax) Yes
Move from USP move.l USP Ax Yes