Skip to content

SuperH CPU 73050

The CPU73050 is used by the fx-CG50 PRIZM, that’s neighbor of the ClassPad CP400 and theorized similar CPU (CP400 report as SH-7305). It’s a SuperH4 Big Endian CPU with no Floating Point Unit (FPU).

FormatAbstractCode
add #imm,RnAdds Rm to Rn and stores result in Rn.0111nnnniiiiiiii
add Rm,RnAdds Rm to Rn and stores result in Rn.0011nnnnmmmm1100
FormatAbstractCode
addc Rm,RnAdds with carry using T as carry-in/out.0011nnnnmmmm1110
FormatAbstractCode
addv Rm,RnAdds with signed overflow detection (T reflects overflow).0011nnnnmmmm1111
FormatAbstractCode
and #imm,R0Bitwise AND.11001001iiiiiiii
and Rm,RnBitwise AND.0010nnnnmmmm1001
FormatAbstractCode
and.b #imm,@(R0,GBR)11001101iiiiiiii
FormatAbstractCode
bf dispIf T==0 then branch to PC+4+(disp*2).10001011dddddddd
FormatAbstractCode
bf/s dispIf T==0 then delayed branch to PC+4+(disp*2).10001111dddddddd
FormatAbstractCode
bra dispUnconditional branch to PC+4+(disp*2).1010iiiidddddddd
FormatAbstractCode
braf RnUnconditional branch via register offset (PC+4+Rm).0000nnnn00100011
FormatAbstractCode
bsr dispBranch to subroutine; PR ← return address.1011iiiidddddddd
FormatAbstractCode
bsrf RnBranch to subroutine via register offset; PR ← return address.0000nnnn00000011
FormatAbstractCode
bt dispIf T==1 then branch to PC+4+(disp*2).10001001dddddddd
FormatAbstractCode
bt/s dispIf T==1 then delayed branch to PC+4+(disp*2).10001101dddddddd
FormatAbstractCode
clrdmxy0000000010001000
FormatAbstractCode
clrmacClears MAC registers.0000000000101000
FormatAbstractCode
clrsClears S bit.0000000001001000
FormatAbstractCode
clrtClears T bit.0000000000001000
FormatAbstractCode
cmp/eq #imm,R0Compares equality and updates T.10001000iiiiiiii
cmp/eq Rm,RnCompares equality and updates T.0011nnnnmmmm0000
FormatAbstractCode
cmp/ge Rm,RnSigned >= compare, updates T.0011nnnnmmmm0011
FormatAbstractCode
cmp/gt Rm,RnSigned > compare, updates T.0011nnnnmmmm0111
FormatAbstractCode
cmp/hi Rm,RnUnsigned > compare, updates T.0011nnnnmmmm0110
FormatAbstractCode
cmp/hs Rm,RnUnsigned >= compare, updates T.0011nnnnmmmm0010
FormatAbstractCode
cmp/pl RnCompares Rn > 0, updates T.0100nnnn00010101
FormatAbstractCode
cmp/pz RnCompares Rn >= 0, updates T.0100nnnn00010001
FormatAbstractCode
cmp/str Rm,RnByte-wise string compare between registers, updates T.0010nnnnmmmm1100
FormatAbstractCode
div0s Rm,RnInitializes signed divide step state.0010nnnnmmmm0111
FormatAbstractCode
div0uInitializes unsigned divide step state.0000000000011001
FormatAbstractCode
div1 Rm,RnPerforms one iterative divide step.0011nnnnmmmm0100
FormatAbstractCode
dmuls.l Rm,Rn0011nnnnmmmm1101
FormatAbstractCode
dmulu.l Rm,Rn0011nnnnmmmm0101
FormatAbstractCode
dsp111100xxxxxxxxxx
dsp111101xxxxxxxxxx
dsp111110xxxxxxxxxx
FormatAbstractCode
dt RnDecrement and test (updates T when result is zero).0100nnnn00010000
FormatAbstractCode
exts.b Rm,RnSign-extends byte to 32-bit.0110nnnnmmmm1110
FormatAbstractCode
exts.w Rm,RnSign-extends word to 32-bit.0110nnnnmmmm1111
FormatAbstractCode
extu.b Rm,RnZero-extends byte to 32-bit.0110nnnnmmmm1100
FormatAbstractCode
extu.w Rm,RnZero-extends word to 32-bit.0110nnnnmmmm1101
FormatAbstractCode
icbi @RnInstruction cache block invalidate.0000nnnn11100011
FormatAbstractCode
jmp @RnJump to target register address.0100nnnn00101011
FormatAbstractCode
jsr @RnJump to subroutine register target; PR ← return address.0100nnnn00001011
FormatAbstractCode
ldc Rn,SRLoads control register from general register.0100nnnn00001110
ldc Rn,GBRLoads control register from general register.0100nnnn00011110
ldc Rn,VBRLoads control register from general register.0100nnnn00101110
ldc Rn,SSRLoads control register from general register.0100nnnn00111110
ldc Rn,SPCLoads control register from general register.0100nnnn01001110
ldc Rn,Rm_bankLoads control register from general register.0100nnnn1mmm1110
ldc Rn,RCLoads control register from general register.0100nnnn01011110
ldc RnLoads control register from general register.0100nnnn01101110
ldc RnLoads control register from general register.0100nnnn01111110
ldc RnLoads control register from general register.0100nnnn00111010
ldc RnLoads control register from general register.0100nnnn11111010
FormatAbstractCode
ldc.l @Rn+,SRLoads control register longword from memory form.0100nnnn00000111
ldc.l @Rn+,GBRLoads control register longword from memory form.0100nnnn00010111
ldc.l @Rn+,VBRLoads control register longword from memory form.0100nnnn00100111
ldc.l @Rn+,SSRLoads control register longword from memory form.0100nnnn00110111
ldc.l @Rn+,SPCLoads control register longword from memory form.0100nnnn01000111
ldc.l @Rn+,Rm_bankLoads control register longword from memory form.0100nnnn1mmm0111
ldc.l @Rn+,RCLoads control register longword from memory form.0100nnnn01010111
ldc.l @Rn+Loads control register longword from memory form.0100nnnn01100111
ldc.l @Rn+Loads control register longword from memory form.0100nnnn01110111
ldc.l @Rn+Loads control register longword from memory form.0100nnnn00110110
ldc.l @Rn+Loads control register longword from memory form.0100nnnn11110110
FormatAbstractCode
ldrc RnLoad RC control/register context.0100nnnn00110100
ldrc #immLoad RC control/register context.10001010iiiiiiii
FormatAbstractCode
ldre @(disp,PC)Load resource/register extension.10001110dddddddd
FormatAbstractCode
ldrs @(disp,PC)Load status/control extension.10001100dddddddd
FormatAbstractCode
lds Rn,MACHLoads system register from general register.0100nnnn00001010
lds Rn,MACLLoads system register from general register.0100nnnn00011010
lds Rn,PRLoads system register from general register.0100nnnn00101010
lds RnLoads system register from general register.0100nnnn01101010
lds RnLoads system register from general register.0100nnnn01111010
lds RnLoads system register from general register.0100nnnn10001010
lds RnLoads system register from general register.0100nnnn10011010
lds RnLoads system register from general register.0100nnnn10101010
lds RnLoads system register from general register.0100nnnn10111010
FormatAbstractCode
lds.l @Rn+,MACHLoads system register longword from memory form.0100nnnn00000110
lds.l @Rn+,MACLLoads system register longword from memory form.0100nnnn00010110
lds.l @Rn+,PRLoads system register longword from memory form.0100nnnn00100110
lds.l @Rn+Loads system register longword from memory form.0100nnnn01100110
lds.l @Rn+Loads system register longword from memory form.0100nnnn01110110
lds.l @Rn+Loads system register longword from memory form.0100nnnn10000110
lds.l @Rn+Loads system register longword from memory form.0100nnnn10010110
lds.l @Rn+Loads system register longword from memory form.0100nnnn10100110
lds.l @Rn+Loads system register longword from memory form.0100nnnn10110110
FormatAbstractCode
ldtlbLoads TLB entry using MMU state.0000000000111000
FormatAbstractCode
mac.l @Rm+,@Rn+Multiply-accumulate longword.0000nnnnmmmm1111
FormatAbstractCode
mac.w @Rm+,@Rn+Multiply-accumulate word.0100nnnnmmmm1111
FormatAbstractCode
mov #imm,RnMoves a value between general registers.1110nnnniiiiiiii
mov Rm,RnMoves a value between general registers.0110nnnnmmmm0011
FormatAbstractCode
mov.b Rm,@RnMoves one byte between register/memory forms.0010nnnnmmmm0000
mov.b Rm,@-RnMoves one byte between register/memory forms.0010nnnnmmmm0100
mov.b Rm,@(R0,Rn)Moves one byte between register/memory forms.0000nnnnmmmm0100
mov.b @Rm,RnMoves one byte between register/memory forms.0110nnnnmmmm0000
mov.b @Rm+,RnMoves one byte between register/memory forms.0110nnnnmmmm0100
mov.b R0,@(disp,GBR)Moves one byte between register/memory forms.11000000iiiiiiii
mov.b R0,@(disp,Rm)Moves one byte between register/memory forms.10000000mmmmdddd
mov.b @(R0,Rm),RnMoves one byte between register/memory forms.0000nnnnmmmm1100
mov.b @(disp,GBR),R0Moves one byte between register/memory forms.11000100iiiiiiii
mov.b @(disp,Rm),R0Moves one byte between register/memory forms.10000100mmmmdddd
FormatAbstractCode
mov.l Rm,@RnMoves one longword between register/memory forms.0010nnnnmmmm0010
mov.l Rm,@-RnMoves one longword between register/memory forms.0010nnnnmmmm0110
mov.l Rm,@(R0,Rn)Moves one longword between register/memory forms.0000nnnnmmmm0110
mov.l Rm,@(disp,Rn)Moves one longword between register/memory forms.0001nnnnmmmmdddd
mov.l @Rm,RnMoves one longword between register/memory forms.0110nnnnmmmm0010
mov.l @Rm+,RnMoves one longword between register/memory forms.0110nnnnmmmm0110
mov.l R0,@(disp,GBR)Moves one longword between register/memory forms.11000010iiiiiiii
mov.l @(R0,Rm),RnMoves one longword between register/memory forms.0000nnnnmmmm1110
mov.l @(disp,GBR),R0Moves one longword between register/memory forms.11000110iiiiiiii
mov.l @(disp,Rm),RnMoves one longword between register/memory forms.0101nnnnmmmmdddd
mov.l @(disp,PC),RnMoves one longword between register/memory forms.1101nnnndddddddd
FormatAbstractCode
mov.w Rm,@RnMoves one word between register/memory forms.0010nnnnmmmm0001
mov.w Rm,@-RnMoves one word between register/memory forms.0010nnnnmmmm0101
mov.w Rm,@(R0,Rn)Moves one word between register/memory forms.0000nnnnmmmm0101
mov.w @Rm,RnMoves one word between register/memory forms.0110nnnnmmmm0001
mov.w @Rm+,RnMoves one word between register/memory forms.0110nnnnmmmm0101
mov.w R0,@(disp,GBR)Moves one word between register/memory forms.11000001iiiiiiii
mov.w R0,@(disp,Rm)Moves one word between register/memory forms.10000001mmmmdddd
mov.w @(R0,Rm),RnMoves one word between register/memory forms.0000nnnnmmmm1101
mov.w @(disp,GBR),R0Moves one word between register/memory forms.11000101iiiiiiii
mov.w @(disp,Rm),R0Moves one word between register/memory forms.10000101mmmmdddd
mov.w @(disp,PC),RnMoves one word between register/memory forms.1001nnnndddddddd
FormatAbstractCode
mova @(disp,PC),R0Computes PC-relative address into R0.11000111dddddddd
FormatAbstractCode
movca.l R0,@RnCache line move/store assist.0000nnnn11000011
FormatAbstractCode
movco.l R0,@RnConditional store longword variant.0000nnnn01110011
FormatAbstractCode
movli.l @Rn,R0Load-linked style move longword.0000nnnn01100011
FormatAbstractCode
movt RnCopies T bit into a general register.0000nnnn00101001
FormatAbstractCode
movua.l @Rn,R0Unaligned longword move variant.0100nnnn10101001
movua.l @Rn+,R0Unaligned longword move variant.0100nnnn11101001
FormatAbstractCode
mul.l Rm,Rn32-bit multiply, low result path.0000nnnnmmmm0111
FormatAbstractCode
muls.w Rm,RnSigned 16x16 multiply.0010nnnnmmmm1111
FormatAbstractCode
mulu.w Rm,RnUnsigned 16x16 multiply.0010nnnnmmmm1110
FormatAbstractCode
neg Rm,Rn0110nnnnmmmm1011
FormatAbstractCode
negc Rm,Rn0110nnnnmmmm1010
FormatAbstractCode
nopNo operation.0000000000001001
FormatAbstractCode
not Rm,RnBitwise NOT.0110nnnnmmmm0111
FormatAbstractCode
ocbi @RnOperand cache block invalidate.0000nnnn10010011
FormatAbstractCode
ocbp @RnOperand cache block purge.0000nnnn10100011
FormatAbstractCode
ocbwb @RnOperand cache block write-back.0000nnnn10110011
FormatAbstractCode
or #imm,R0Bitwise OR.11001011iiiiiiii
or Rm,RnBitwise OR.0010nnnnmmmm1011
FormatAbstractCode
or.b #imm,@(R0,GBR)11001111iiiiiiii
FormatAbstractCode
pref @RnPrefetch hint.0000nnnn10000011
FormatAbstractCode
prefi @RnInstruction prefetch hint.0000nnnn11010011
FormatAbstractCode
rotcl RnRotate left through carry (T).0100nnnn00100100
FormatAbstractCode
rotcr RnRotate right through carry (T).0100nnnn00100101
FormatAbstractCode
rotl RnRotate left through register.0100nnnn00000100
FormatAbstractCode
rotr RnRotate right through register.0100nnnn00000101
FormatAbstractCode
rteReturn from exception; restores control state and PC.0000000000101011
FormatAbstractCode
rtsReturn from subroutine; PC ← PR.0000000000001011
FormatAbstractCode
setdmx0000000010011000
FormatAbstractCode
setdmy0000000011001000
FormatAbstractCode
setrc RnSet RC control/register context.0100nnnn00010100
setrc #immSet RC control/register context.10000010iiiiiiii
FormatAbstractCode
setsSets S bit.0000000001011000
FormatAbstractCode
settSets T bit.0000000000011000
FormatAbstractCode
shad Rm,Rn0100nnnnmmmm1100
FormatAbstractCode
shal RnArithmetic shift left by 1.0100nnnn00100000
FormatAbstractCode
shar RnArithmetic shift right by 1.0100nnnn00100001
FormatAbstractCode
shld Rm,Rn0100nnnnmmmm1101
FormatAbstractCode
shll RnLogical shift left by 1.0100nnnn00000000
FormatAbstractCode
shll16 Rn0100nnnn00101000
FormatAbstractCode
shll2 Rn0100nnnn00001000
FormatAbstractCode
shll8 Rn0100nnnn00011000
FormatAbstractCode
shlr RnLogical shift right by 1.0100nnnn00000001
FormatAbstractCode
shlr16 Rn0100nnnn00101001
FormatAbstractCode
shlr2 Rn0100nnnn00001001
FormatAbstractCode
shlr8 Rn0100nnnn00011001
FormatAbstractCode
sleepEnters low-power sleep until interrupt/exception.0000000000011011
FormatAbstractCode
stc SR,RnStores control register to general register/memory form.0000nnnn00000010
stc GBR,RnStores control register to general register/memory form.0000nnnn00010010
stc VBR,RnStores control register to general register/memory form.0000nnnn00100010
stc SSR,RnStores control register to general register/memory form.0000nnnn00110010
stc SPC,RnStores control register to general register/memory form.0000nnnn01000010
stc Rm_bank,RnStores control register to general register/memory form.0000nnnn1mmm0010
stc RC,RnStores control register to general register/memory form.0000nnnn01010010
stcStores control register to general register/memory form.0000nnnn01100010
stcStores control register to general register/memory form.0000nnnn01110010
stcStores control register to general register/memory form.0000nnnn00111010
stcStores control register to general register/memory form.0000nnnn11111010
FormatAbstractCode
stc.l SR,@-RnStores control register longword with memory form.0100nnnn00000011
stc.l GBR,@-RnStores control register longword with memory form.0100nnnn00010011
stc.l VBR,@-RnStores control register longword with memory form.0100nnnn00100011
stc.l SSR,@-RnStores control register longword with memory form.0100nnnn00110011
stc.l SPC,@-RnStores control register longword with memory form.0100nnnn01000011
stc.l Rm_bank,@-RnStores control register longword with memory form.0100nnnn1mmm0011
stc.l RC,@-RnStores control register longword with memory form.0100nnnn01010011
stc.lStores control register longword with memory form.0100nnnn01100011
stc.lStores control register longword with memory form.0100nnnn01110011
stc.lStores control register longword with memory form.0100nnnn00110010
stc.lStores control register longword with memory form.0100nnnn11110010
FormatAbstractCode
sts MACH,Rn0000nnnn00001010
sts MACL,Rn0000nnnn00011010
sts PR,Rn0000nnnn00101010
sts0000nnnn01101010
sts0000nnnn01111010
sts0000nnnn10001010
sts0000nnnn10011010
sts0000nnnn10101010
sts0000nnnn10111010
FormatAbstractCode
sts.l MACH,@-Rn0100nnnn00000010
sts.l MACL,@-Rn0100nnnn00010010
sts.l PR,@-Rn0100nnnn00100010
sts.l0100nnnn01100010
sts.l0100nnnn01110010
sts.l0100nnnn10000010
sts.l0100nnnn10010010
sts.l0100nnnn10100010
sts.l0100nnnn10110010
FormatAbstractCode
sub Rm,RnSubtracts Rm from Rn and stores result in Rn.0011nnnnmmmm1000
FormatAbstractCode
subc Rm,RnSubtracts with borrow using T as borrow-in/out.0011nnnnmmmm1010
FormatAbstractCode
subv Rm,RnSubtracts with signed overflow detection (T reflects overflow).0011nnnnmmmm1011
FormatAbstractCode
swap.b Rm,Rn0110nnnnmmmm1000
FormatAbstractCode
swap.w Rm,Rn0110nnnnmmmm1001
FormatAbstractCode
syncoSynchronization barrier.0000000010101011
FormatAbstractCode
tas.b @RnTest-and-set byte; updates T and sets high bit in memory byte.0100nnnn00011011
FormatAbstractCode
trapa #immSoftware trap/exception instruction.11000011iiiiiiii
FormatAbstractCode
tst #imm,R0Bitwise test, updates T.11001000iiiiiiii
tst Rm,RnBitwise test, updates T.0010nnnnmmmm1000
FormatAbstractCode
tst.b #imm,@(R0,GBR)11001100iiiiiiii
FormatAbstractCode
xor #imm,R0Bitwise XOR.11001010iiiiiiii
xor Rm,RnBitwise XOR.0010nnnnmmmm1010
FormatAbstractCode
xor.b #imm,@(R0,GBR)11001110iiiiiiii
FormatAbstractCode
xtrct Rm,Rn0010nnnnmmmm1101