FLAG
OPERATION ASSEMBLY SYNTAX ACTION
UPDATES
DATA PROCESSING
DP.AND.{cond}.{F} <RDEST>, <RSRC1>, N,Z,C RDEST = RSRC1 & (RSRC2 <SHIFT> # SHIFT_IMM)
<RSRC2> <SHIFT> # SHIFT_IMM
DP.AND.{cond}.{F} <RDEST>, <RSRC1>, N,Z,C RDEST = RSRC1 & (RSRC2 <SHIFT> RSHIFT)
<RSRC2> <SHIFT> <RSHIFT>
CLEAR BIT DP.CLRB.{cond}.{F} <RDEST>, <RSRC1>, N,Z,C RDEST = RSRC1 & ~(# IMM)
# IMM
DP.CLRB.{cond}.{F} <RDEST>, <RSRC1>, N,Z,C RDEST = RSRC1 & ~(RSRC2 <SHIFT> # SHIFT_IMM)
<RSRC2> <SHIFT> # SHIFT_IMM
DP.CLRB.{cond}.{F} <RDEST>, <RSRC1>, N,Z,C RDEST = RSRC1 & ~(RSRC2 <SHIFT> RSHIFT)
<RSRC2> <SHIFT> <RSHIFT>
MULTIPLY DP.MUL .{cond} <ROP_1>, <ROP_A>, ----- ROP_1 = (ROP_A * ROP_B) [31:0]
<ROP_B>
MULTIPLY DP.MA.{cond} <ROP_1>, <ROP_2>, ----- ROP_1 = (ROP_A * ROP_B) [31:0] + ROP_2
ACCUMULATE
<ROP_A>, <ROP_B>
UNSIGNED MULTI- DP.DMAU.{cond} <ROP_1>, <ROP_2>, ----- {ROP_1, ROP_2} = (ROP_A * ROP_B) +
PLY ACCUMU-
LATE LONG <ROP_A>, <ROP_B> {ROP_1,ROP_2}
SIGNED MULTI- DP.DMULS.{cond} <ROP_1>, <ROP_2>, ----- {ROP_1, ROP_2} = (ROP_A * ROP_B)
PLY LONG
<ROP_A>, <ROP_B>
SIGNED MULTI- DP.DMAS.{cond} <ROP_1>, <ROP_2>, ----- {ROP_1, ROP_2} = (ROP_A * ROP_B) +
PLY ACCUMU-
LATE LONG <ROP_A>, <ROP_B> {ROP_1,ROP_2}
SIGNED MULTI- SP.MULS.WH.{cond} <ROP_1>, <ROP_A>, ----- ROP_1 = (ROP_A * ROP_B(16-bit)) [47:16]
PLY (32X16)
<ROP_B>
SIGNED MULTI- SP.MAS.HH.{cond} <ROP_1>, <ROP_2>, ----- {ROP_1, ROP_2} = (ROP_A(16-bit) * ROP_B(16-
PLY ACCUMU-
LATE LONG (16X16) <ROP_A>, <ROP_B> bit)) + {ROP_1,ROP_2}
COUNT LEADING SP.CLZ .{conf} <ROP_1>, <ROP_2> ----- ROP_1 = No of Leading 0’s in ROP_2 content
ZEROS
COUNT LEADING SP.CLO.{conf} <ROP_1>, <ROP_2> ----- ROP_1 = No of Leading 1’s in ROP_2 content
ONES
BYTE REVERSE SP.BYRE.{cond} <ROP_1>, <ROP_2> ----- ROP_1 = {ROP_2 [7:0], ROP_2 [16:8], ROP_2
[23:16], ROP_2 [31:24]}
STORE WORD (PRE M{p}.ST.W.{cond} <RDEST>, [<ROP_A>, ----- MEM[ROP_A + / - #IMM] = ROP_C,
INDEX)
+/- #IMM]* ROP_A = ROP_A + / - #IMM
LOAD BYTE (POST M{p}.LD.B.{cond} <RDEST>, [<ROP_A>], ----- RDEST = Zero Extended (MEM[ROP_A]),
INDEX)
+/- #IMM ROP_A = ROP_A + / - #IMM
LOAD BYTE M{p}.LD.B.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Zero Extended (MEM[ROP_A + / -
(IMMEDIATE/REG-
ISTER OFFSET) +/- #IMM] #IMM])
LOAD BYTE (PRE M{p}.LD.B.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Zero Extended (MEM[ROP_A + / -
INDEX)
+/- #IMM]* #IMM]), ROP_A = ROP_A + / - #IMM
LOAD SIGNED M{p}.LD.SB.{cond} <RDEST>, [<ROP_A>], ----- RDEST = Sign Extended (MEM[ROP_A]),
BYTE (POST
INDEX) +/- #IMM ROP_A = ROP_A + / - #IMM
LOAD SIGNED M{p}.LD.SB.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Sign Extended (MEM[ROP_A + / -
BYTE (IMMEDI-
ATE/REGISTER +/- #IMM] #IMM])
OFFSET)
M{p}.LD.SB.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Sign Extended (MEM[ROP_A + / -
+/- <ROP_B>] ROP_B])
LOAD SIGNED M{p}.LD.SB.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Sign Extended (MEM[ROP_A + / -
BYTE (PRE INDEX)
+/- #IMM]* #IMM]), ROP_A = ROP_A + / - #IMM
STORE BYTE M{p}.ST.B.{cond} <ROP_C>, [<ROP_A>, ----- MEM[ROP_A + / - #IMM] = ROP_C [7:0]
(IMMEDIATE/REG-
ISTER OFFSET) +/- #IMM]
STORE BYTE (PRE M{p}.ST.B.{cond} <ROP_C>, [<ROP_A>, ----- MEM[ROP_A + / - #IMM] = ROP_C [7:0],
INDEX)
+/- #IMM]* ROP_A = ROP_A + / - #IMM
LOAD HALFWORD M{p}.LD.H.{cond} <RDEST>, [<ROP_A>], ----- RDEST = Zero Extended (MEM[ROP_A]),
(POST INDEX)
+/- #IMM ROP_A = ROP_A + / - #IMM
LOAD HALFWORD M{p}.LD.H.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Zero Extended (MEM[ROP_A + / -
(IMMEDIATE/REG-
ISTER OFFSET) +/- #IMM] #IMM])
LOAD HALFWORD M{p}.LD.H.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Zero Extended (MEM[ROP_A + / -
(PRE INDEX)
+/- #IMM]* #IMM]), ROP_A = ROP_A + / - #IMM
LOAD SIGNED M{p}.LD.SH.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Sign Extended (MEM[ROP_A + / -
HALFWORD
(IMMEDIATE/REG- +/- #IMM] #IMM])
ISTER OFFSET)
M{p}.LD.SH.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Sign Extended (MEM[ROP_A + / -
+/- <ROP_B>] ROP_B])
LOAD SIGNED M{p}.LD.SH.{cond} <RDEST>, [<ROP_A>, ----- RDEST = Sign Extended (MEM[ROP_A + / -
HALFWORD (PRE
INDEX) +/- #IMM]* #IMM]), ROP_A = ROP_A + / - #IMM
STORE HALFWORD M{p}.ST.H.{cond} <ROP_C>, [<ROP_A>, ----- MEM[ROP_A + / - #IMM] = ROP_C [16:0]
(IMMEDIATE/REG-
ISTER OFFSET) +/- #IMM]
STORE HALFWORD M{p}.ST.H.{cond} <ROP_C>, [<ROP_A>, ----- MEM[ROP_A + / - #IMM] = ROP_C [16:0],
(PRE INDEX)
+/- #IMM]* ROP_A = ROP_A + / - #IMM
MEMORY READ M.BIS.{cond} <ROP_A>, #<bit_pos> ----- Set the bit specified by <bit_pos> in
MODIFY WRITE
INSTRUCTION
MEM[ROP_A]
BRANCH INSTRUCTIONS
IMMEDIATE BR.{l}.IMM.{cond} <target_addr> ----- R16 = R16 + Sign Extended 24-bit Immediate
BRANCH INSTRUC-
TION value.
PROCEDURE-RETURN INSTRTUCTION