© Semtech 2005 www.semtech.com
3-5
XE8801A – SX8801R
Dec reg1, reg2 C, V, Z, a a := reg2-1; if a=hFF then C := 0 else C := 1; reg1 := a
Dec reg C, V, Z, a a := reg-1; if a=hFF then C := 0 else C := 1; reg := a
Dec reg, eaddr C, V, Z, a a := DM(eaddr)-1; if a=hFF then C := 0 else C := 1; reg := a
Decc reg1, reg2 C, V, Z, a a := reg2-(1-C); if a=hFF and C=0 then C := 0 else C := 1; reg1 := a
Decc reg C, V, Z, a a := reg-(1-C); if a=hFF and C=0 then C := 0 else C := 1; reg := a
Decc reg, eaddr C, V, Z, a a := DM(eaddr)-(1-C); if a=hFF and C=0 then C := 0 else C := 1; reg := a
And reg,#data[7:0] -,-, Z, a a := reg and data[7:0]; reg := a
And reg1, reg2, reg3 -,-, Z, a a := reg2 and reg3; reg1 := a
And reg1, reg2 -,-, Z, a a := reg1 and reg2; reg1 := a
And reg, eaddr -,-, Z, a a := reg and DM(eaddr); reg := a
Or reg,#data[7:0] -,-, Z, a a := reg or data[7:0]; reg := a
Or reg1, reg2, reg3 -,-, Z, a a := reg2 or reg3; reg1 := a
Or reg1, reg2 -,-, Z, a a := reg1 or reg2; reg1 := a
Or reg, eaddr -,-, Z, a a := reg or DM(eaddr); reg := a
Xor reg,#data[7:0] -,-, Z, a a := reg xor data[7:0]; reg := a
Xor reg1, reg2, reg3 -,-, Z, a a := reg2 xor reg3; reg1 := a
Xor reg1, reg2 -,-, Z, a a := reg1 xor reg2; reg1 := a
Xor reg, eaddr -,-, Z, a a := reg or DM(eaddr); reg := a
Add reg,#data[7:0] C, V, Z, a a := reg+data[7:0]; if overflow then C:=1 else C := 0; reg := a
Add reg1, reg2, reg3 C, V, Z, a a := reg2+reg3; if overflow then C:=1 else C := 0; reg1 := a
Add reg1, reg2 C, V, Z, a a := reg1+reg2; if overflow then C:=1 else C := 0; reg1 := a
Add reg, eaddr C, V, Z, a a := reg+DM(eaddr); if overflow then C:=1 else C := 0; reg := a
Addc reg,#data[7:0] C, V, Z, a a := reg+data[7:0]+C; if overflow then C:=1 else C := 0; reg := a
Addc reg1, reg2, reg3 C, V, Z, a a := reg2+reg3+C; if overflow then C:=1 else C := 0; reg1 := a
Addc reg1, reg2 C, V, Z, a a := reg1+reg2+C; if overflow then C:=1 else C := 0; reg1 := a
Addc reg, eaddr C, V, Z, a a := reg+DM(eaddr)+C; if overflow then C:=1 else C := 0; reg := a
Subd reg,#data[7:0] C, V, Z, a a := data[7:0]-reg; if underflow then C := 0 else C := 1; reg := a
Subd reg1, reg2, reg3 C, V, Z, a a := reg2-reg3; if underflow then C := 0 else C := 1; reg1 := a
Subd reg1, reg2 C, V, Z, a a := reg2-reg1; if underflow then C := 0 else C := 1; reg1 := a
Subd reg, eaddr C, V, Z, a a := DM(eaddr)-reg; if underflow then C := 0 else C := 1; reg := a
Subdc reg,#data[7:0] C, V, Z, a a := data[7:0]-reg-(1-C); if underflow then C := 0 else C := 1; reg := a
Subdc reg1, reg2, reg3 C, V, Z, a a := reg2-reg3-(1-C); if underflow then C := 0 else C := 1; reg1 := a
Subdc reg1, reg2 C, V, Z, a a := reg2-reg1-(1-C); if underflow then C := 0 else C := 1; reg1 := a
Subdc reg, eaddr C, V, Z, a a := DM(eaddr)-reg-(1-C); if underflow then C := 0 else C := 1; reg := a
Subs reg,#data[7:0] C, V, Z, a a := reg-data[7:0]; if underflow then C := 0 else C := 1; reg := a
Subs reg1, reg2, reg3 C, V, Z, a a := reg3-reg2; if underflow then C := 0 else C := 1; reg1 := a
Subs reg1, reg2 C, V, Z, a a := reg1-reg2; if underflow then C := 0 else C := 1; reg1 := a
Subs reg, eaddr C, V, Z, a a := reg-DM(eaddr); if underflow then C := 0 else C := 1; reg := a
Subsc reg,#data[7:0] C, V, Z, a a := reg-data[7:0]-(1-C); if underflow then C := 0 else C := 1; reg := a
Subsc reg1, reg2, reg3 C, V, Z, a a := reg3-reg2-(1-C); if underflow then C := 0 else C := 1; reg1 := a
Subsc reg1, reg2 C, V, Z, a a := reg1-reg2-(1-C); if underflow then C := 0 else C := 1; reg1 := a
Subsc reg, eaddr C, V, Z, a a := reg-DM(eaddr)-(1-C); if underflow then C := 0 else C := 1; reg := a
Mul reg,#data[7:0] u, u, u, a a := (data[7:0]*reg)[7:0]; reg := (data[7:0]*reg)[15:8]
Mul reg1, reg2, reg3 u, u, u, a a := (reg2*reg3)[7:0]; reg1 := (reg2*reg3)[15:8]
Mul reg1, reg2 u, u, u, a a := (reg2*reg1)[7:0]; reg1 := (reg2*reg1)[15:8]
Mul reg, eaddr u, u, u, a a := (DM(eaddr)*reg)[7:0]; reg := (DM(eaddr)*reg)[15:8]
Mula reg,#data[7:0] u, u, u, a a := (data[7:0]*reg)[7:0]; reg := (data[7:0]*reg)[15:8]
Mula reg1, reg2, reg3 u, u, u, a a := (reg2*reg3)[7:0]; reg1 := (reg2*reg3)[15:8]
Mula reg1, reg2 u, u, u, a a := (reg2*reg1)[7:0]; reg1 := (reg2*reg1)[15:8]
Mula reg, eaddr u, u, u, a a := (DM(eaddr)*reg)[7:0]; reg := (DM(eaddr)*reg)[15:8]
Mshl reg,#shift[2:0] u, u, u, a a := (reg*2shift)[7:0]; reg := (reg*2shift)[15:8]
Mshr reg,#shift[2:0] u, u, u, a a := (reg*2(8-shift)[7:0]; reg := (reg*2(8-shift)[15:8]
Mshra reg,#shift[2:0] u, u, u, a* a := (reg*2(8-shift)[7:0]; reg := (reg*2(8-shift)[15:8]
Cmp reg,#data[7:0] C, V, Z, a a := data[7:0]-reg; if underflow then C :=0 else C:=1; V := C and (not Z)
Cmp reg1, reg2 C, V, Z, a a := reg2-reg1; if underflow then C :=0 else C:=1; V := C and (not Z)
Cmp reg, eaddr C, V, Z, a a := DM(eaddr)-reg; if underflow then C :=0 else C:=1; V := C and (not Z)
Cmpa reg,#data[7:0] C, V, Z, a a := data[7:0]-reg; if underflow then C :=0 else C:=1; V := C and (not Z)
Cmpa reg1, reg2 C, V, Z, a a := reg2-reg1; if underflow then C :=0 else C:=1; V := C and (not Z)
Cmpa reg, eaddr C, V, Z, a a := DM(eaddr)-reg; if underflow then C :=0 else C:=1; V := C and (not Z)
Tstb reg,#bit[2:0] -, -, Z, a a[bit] := reg[bit]; other bits in a are 0
Setb reg,#bit[2:0] -, -, Z, a reg[bit] := 1; other bits unchanged; a := reg
Clrb reg,#bit[2:0] -, -, Z, a reg[bit] := 0; other bits unchanged; a := reg
Invb reg,#bit[2:0] -, -, Z, a reg[bit] := not reg[bit]; other bits unchanged; a := reg
Not Recommended for
New Designs