XX-XE88LC01/03/05, Data Book 4 Central processing unit
Page 31
Preliminary information
AND
reg, data:8 reg reg data
res <- op1 AND op2 -, -, Z, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
OR
reg, data:8 reg reg data
res <- op1 OR op2 -, -, Z, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
XOR
reg, data:8 reg reg data
res <- op1 XOR op2 -, -, Z, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
ADD
reg, data:8 reg reg data
res <- op1 + op2, if overflow then C=1 C, V, Z, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
ADDC
reg, data:8 reg reg data
res <- op1 + op2 + C, if overflow then C=1 C, V, Z, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
SUBD
reg, data:8 reg reg data
res <- op1 -op2, if underflow then C=0 C, V, Z, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
SUBDC
reg, data:8 reg reg data
res <- op1 -op2 - (1-C), if underflow then C=0 C, V, Z, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
SUBS
reg, data:8 reg reg data
res <- op2 -op1, if underflow then C=0 C, V, Z, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
SUBSC
reg, data:8 reg reg data
res <- op2 -op1 - (1-C), if underflow then C=0 C, V, Z, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
MUL
reg, data:8 reg reg data res <- op1 * op2 (15:8), a <- op1 * op2 (7:0),
unsigned -, -, -, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
MULA
reg, data:8 reg reg data res <- op1 * op2 (15:8), a <- op1 * op2 (7:0),
signed (2 complement) -, -, -, a
reg1, reg2, reg3reg1 reg2reg3
reg1, reg2 reg1 reg2 reg1
reg reg reg eaddr
MSHL reg, shift:3 a(bitn) <- reg(bitn-shift) for (bitn >= shift),
reg(bitn) <- reg (bitn+8-shift) for (bitn < shift) -, -, -, a
MSHR reg, shift:3 reg(bitn) <- reg(bitn+shift) for (bitn + shift < 8),
a(bitn) <- reg (bitn-8+shift) for (bitn + shift >= 8) -, -, -, a
MSHRA reg, shift:3 a <- SHRA(shift,reg), a <- SHL(8-shift,reg),
SHRA propagates sign, do not use with shift=0x01-, -, -, a
CMP reg, data:8 reg data if op2 > op1 then C <- 0, V = C AND NOT(Z),
unsigned C, V, Z, areg1, reg2 reg1 reg2
reg, eaddr reg eaddr
CMPA reg, data:8 reg data if op2 > op1 then C <- 0, V = C AND NOT(Z),
signed C, V, Z, areg1, reg2 reg1 reg2
reg, eaddr reg eaddr
TSTB reg, bit:3 Z <- NOT(reg(bit)) -, -, Z, a
SETB reg, bit:3 reg(bit) <- 1 -, -, Z, a
CLRB reg, bit:3 reg(bit) <- 0 -, -, Z, a
INVB reg, bit:3 reg(bit) <- NOT(reg(bit)) -, -, Z, a
SFLAG a(7) <- C, a(6) <- C XOR V -, -, -, a
NAME Parameters res op1 op2 FUNCTION MODIF.
Table 4.2: CoolRISC 816 Instruction Set