Instr
Instr
LACC Load data memory value/long immediate, with left shift, to ACC
*Affecté par SXM
Direct: LACC dma [,shift ]
Indirect: LACC {ind} [,shift [,ARn ]
]
Long immediate: LACC #lk [,shift]
LACB The contents of the accumulator buffer (ACCB) are loaded into
the accumulator (ACC).
LACB ;pas d’opérande
CRGT Store ACC in ACCB if ACC > ACCB CRGT ; pas d’opérande
CRLT Store ACC in ACCB if ACC < ACCB CRLT ; pas d’opérande
LAMM Load contents of mem register to ACCL; zero ACCH, allows any
memory location on data memory page 0 to be loaded into the
Direct: LAMM dma
Indirect: LAMM {ind} [,ARn ]
ACC without modifying the DP bits.
SAMM The contents of the accumulator low byte (ACCL) are copied to
the addressed memory-mapped register.like LAMM
Direct: SAMM dma
Indirect: SAMM {ind} [,ARn ]
ABS Absolute value of ACC;zero carry bit affected by OVM (affectsC ABS ;pas d’opérande
and OV)
CMPL 1s complement ACC CMPL ;pas d’opérande
NEG Negate (2s complement) ACC affected by OVM (affectsC and NEG ;pas d’opérande
OV)
NORM ACC bit 31 is exclusive-ORed (XOR) with ACC bit 30 to
determine if bit 30 is part of the magnitude or part of the sign
NORM{ind}
extension. If the bits are the same, then they are both sign bits,
and the ACC is shifted left to eliminate the extra sign bit. If the
result of the XOR operation is true, the TC bit is set; otherwise,
the TC bit is cleared. Affects: TC
ADD Add data memory value, with leftshift/Add short immediate/Add
long immediate, with left shift, to ACC,Affecté par OVM et SXM
Direct: ADD dma [,shift ]
Indirect: ADD {ind} [,shift ] [,ARn ]
(Direct, indirect ou Long immediate addressing),Affecté par Short immediate: ADD #k
Long immediate: ADD #lk [,shift]
OVM (Short immediate addressing),Affecte C et OV
ADDT Add data memory value, with left shift specified by the 4 LSBs
TREG1, to ACC Affected by: OVM, SXM, and TRM Affects: C
Direct: ADDT dma
Indirect: ADDT {ind} [,ARn ]
and OV
ADDS Add data memory value to ACC with sign extension suppressed
Affected by: OVM Affects: C and OV
Direct: ADDS dma
Indirect: ADDS {ind} [,ARn ]
ADDC Add data memory value and carry bit to ACC with sign extension
suppressed Affected by: OVM Affects: C and OV
Direct: ADDC dma
Indirect: ADDC {ind} [,ARn ]
ADDB Add ACCB to ACC Sans opérande
ADCB Add ACCB and carry bit to ACC Affecté par OVM; Affecte C et
OV
Sans opérande
SBBB Subtract ACCB and logical inversion of carry bit from ACC Sans opérande
SUBT Subtract data memory value, with left shift specified by TREG1,
from ACC c=1 si r=0 et c=0 sinon
Direct: SUBT dma
Indirect: SUBT {ind} [,ARn ]
SUBB Subtract data memory value and logical inversion of carry bit
from ACC with sign extension suppressed,same case for c as
Direct: SUBB dma
Indirect: SUBB {ind} [,ARn ]
before
SUBS Subtract data memory value from ACC with sign extension
suppressed
Direct: SUBS dma
Indirect: SUBS {ind} [,ARn ]
SUBC If (ACC) – ((dma) x2^15 )>= 0: (ALU output) x2 + 1->ACC
Else: (ACC) x2 -> ACC
Direct: SUBC dma
Indirect: SUBC {ind} [,ARn ]
AND AND data memory value withACCL; zero ACCH/AND long
immediate, with left shift, with ACC
Direct:AND dma
Indirect: AND {ind} [,ARn ]
Long immediate: AND #lk [,shift]
ANDB AND ACCB with ACC Sans opérande
SFR Shift ACC right 1 bit Affecté par OVM Sans opérande
LPH Load data memory value to PREG high byte Direct: LPH dma
Indirect: LPH {ind} [,ARn ]
SPM Set product shift mode (PM) bits SPM cte; avec cte entre 0 et 3
SPH Store PREG high byte, with shift specified by PM bits, in data
memory location
Direct: SPH dma
Indirect: SPH {ind} [,ARn ]
SPL Store PREG low byte, with shift specified by PM bits, in data
memory location
Direct: SPH dma
Indirect: SPH {ind} [,ARn ]
ZPR Zero PREG Sans opérande
PAC Load PREG, with shift specified by PM bits, to ACC Sans opérande
APAC Add PREG, with shift specified by PM bits, to ACC Sans opérande
SPAC Subtract PREG, with shift specified by PM bits, from ACC Sans opérande
DMOV Move data in data memory, The contents of the data memory
address (dma) are copied to the next higher dma.
Direct: DMOV dma
Indirect: DMOV {ind} [,ARn ]
LT Load data memory value to TREG0 Direct: LT dma
Indirect: LT {ind} [,ARn ]
LTP Load data memory value to TREG0; store PREG, with shift
specified by PM bits, in ACC *Affecte par PM&TRM
Direct: LTP dma
Indirect: LTP {ind} [,ARn ]
LTA Load data memory value to TREG0; add PREG, with shift
specified by PM bits, to ACC *Affected by: Affects:OVM, PM, and
Direct: LTA dma
Indirect: LTA {ind} [,ARn ]
TRM
LTS Load data memory value to TREG0; subtract PREG, with shift
specified by PM bits, from ACC
Direct: LTS dma
Indirect: LTS {ind} [,ARn ]
LTD Load data memory value to TREG0; add PREG, with shift
specified by PM bits, to ACC; and move data
Direct: LTD dma
Indirect: LTD {ind} [,ARn ]
MPY Multiply data memory value/ short immediate/ long immediate by
TREG0 and store result in PREG
Direct: MPY dma
Indirect: MPY {ind} [,ARn ]
Short immediate: MPY #k
Long immediate: MPY #lk
MPYU Multiply unsigned data memory value by TREG0 and store result
in PREG
Direct: MPYU dma
Indirect: MPYU {ind} [,ARn ]
MPYA Add PREG, with shift specified by PM bits, to ACC; multiply data
memory value by TREG0 and store result in PREG
Direct: MPYA dma
Indirect: MPYA {ind} [,ARn ]
MPYS Subtract PREG, with shift specified by PM bits, from ACC;
multiply data memory value by TREG0 and store result in PREG
Direct: MPYS dma
Indirect: MPYS {ind} [,ARn ]
SQRA Add PREG, with shift specified by PM bits, to ACC; load data
memory value to TREG0; square value and store result in PREG
Direct: SQRA dma
Indirect: SQRA {ind} [,ARn ]
SQRS Subtract PREG, with shift specified by PM bits, from ACC; load
data memory value to TREG0; square value and store result in
Direct: SQRS dma
Indirect: SQRS {ind} [,ARn ]
PREG
PMST.
MAC Add PREG, with shift specified by PM bits, to ACC; Load data Direct: MAC pma, dma
memory value to TREG0;Multiply data memory value by program Indirect: MAC pma, {ind} [,ARn ]
memory value and store result in PREG
MACD Add PREG, with shift specified by PM bits, to ACC; Load data
memory value to TREG0; Multiply data memory value by
Direct: MACD pma, dma
Indirect: MACD pma, {ind} [,ARn ]
program memory value and store result in PREG;Move data for
on-chip RAM blocks only.
MADS Add PREG, with shift specified by PM bits, to ACC;Load data
memory value to TREG0; Multiply data memory value by value
Direct: MADS dma
Indirect: MADS {ind} [,ARn ]
specified in BMAR and Store result in PREG
MADD Add PREG, with shift specified by PM bits, to ACC; Load data
memory value to TREG0;Multiply data memory value by value
Direct: MADD dma
Indirect: MADD {ind} [,ARn ]
specified in BMAR and store result in PREG; and move data
BLDP Block move from program to data memory with source address in
BMAR ;Block move from program to data memory with source
Direct: BLDP dma
Indirect: BLDP {ind} [,ARn ]
address long immediate
BANZ registre auxiliaire courant est un décrément de 1 BANZ pma [, {ind} [,ARn ] ]
DIRECTIVES
. set Permet de définir (initialiser) une constante.
.copy/.includ lire les instructions à partir d’un autre fichier source avant de
continuer.
e
*During shifting, the low-order bits of the ACC are zero-filled. If the SXM bit is cleared, the
high-order bits of the ACC are zero-filled; if the SXM bit is set, the high-order bits of the ACC
are sign-extended.