2019-12-14 09:38:40 +11:00
|
|
|
The AVR instruction set is a bit more regular than z80's, which allows us for
|
|
|
|
simpler upcode spitting logic (simplicity which is lost when we need to take
|
|
|
|
into account all AVR models and instruction constraints on each models). This
|
|
|
|
file categorizes all available ops with their opcode signature. X means upcode
|
|
|
|
bit.
|
|
|
|
|
|
|
|
Categories are in descending order of "popularity"
|
|
|
|
|
|
|
|
Mnemonics with "*" are a bit special.
|
|
|
|
|
|
|
|
### 16-bit
|
|
|
|
|
|
|
|
## Plain
|
|
|
|
|
|
|
|
XXXX XXXX XXXX XXXX
|
|
|
|
|
|
|
|
BREAK, CLC, CLH, CLI, CLN, CLS, CLT, CLV, CLZ, EICALL, EIJMP, ELPM*, ICALL,
|
|
|
|
IJMP, NOP, RET, RETI, SEC, SEH, SEI, SEN, SES, SET, SEV, SEZ, SLEEP, SPM*, WDR
|
|
|
|
|
|
|
|
## Rd(5)
|
|
|
|
|
|
|
|
XXXX XXXd dddd XXXX
|
|
|
|
|
2019-12-23 10:36:15 +11:00
|
|
|
ASR, COM, DEC, ELPM*, INC, LAC, LAS, LAT, LD*, LPM*, LSL*, LSR, NEG, POP, PUSH,
|
|
|
|
ROR, ST*, SWAP, XCH
|
2019-12-14 09:38:40 +11:00
|
|
|
|
|
|
|
## Rd(5) + Rr(5)
|
|
|
|
|
|
|
|
XXXX XXrd dddd rrrr
|
|
|
|
|
|
|
|
ADC, ADD, AND, CLR, CP, CPC, CPSE, EOR, MOV, MUL, OR, ROL*, SBC, SUB,
|
|
|
|
TST*
|
|
|
|
|
|
|
|
## k(7)
|
|
|
|
|
|
|
|
XXXX XXkk kkkk kXXX
|
|
|
|
|
|
|
|
BRCC, BRCS, BREQ, BRGE, BRHC, BRHS, BRID, BRIE, BRLO, BRLT, BRMI, BRNE, BRPL,
|
|
|
|
BRSH, BRTC, BRTS, BRVC, BRVS
|
|
|
|
|
|
|
|
## Rd(4) + K(8)
|
|
|
|
|
|
|
|
XXXX KKKK dddd KKKK
|
|
|
|
|
|
|
|
ANDI, CBR*, CPI, LDI, ORI, SBCI, SBR, SUBI
|
|
|
|
|
|
|
|
## Rd(5) + bit
|
|
|
|
|
|
|
|
XXXX XXXd dddd Xbbb
|
|
|
|
|
|
|
|
BLD, BST, SBRC, SBRS
|
|
|
|
|
|
|
|
## A(5) + bit
|
|
|
|
|
|
|
|
XXXX XXXX AAAA Abbb
|
|
|
|
|
|
|
|
CBI, SBI, SBIC, SBIS
|
|
|
|
|
|
|
|
## Rd(3) + Rr(3)
|
|
|
|
|
|
|
|
XXXX XXXX Xddd Xrrr
|
|
|
|
|
|
|
|
FMUL, FMULS, FMULSU, MULSU
|
|
|
|
|
|
|
|
## Rd(4) + Rr(4)
|
|
|
|
|
|
|
|
XXXX XXXX dddd rrrr
|
|
|
|
|
|
|
|
MOVW, MULS
|
|
|
|
|
|
|
|
## Rd(5) + A(6)
|
|
|
|
|
|
|
|
XXXX XAAd dddd AAAA
|
|
|
|
|
|
|
|
IN, OUT
|
|
|
|
|
|
|
|
## Rd(4) + k(7)
|
|
|
|
|
|
|
|
XXXX Xkkk dddd kkkk
|
|
|
|
|
|
|
|
LDS*, STS*
|
|
|
|
|
|
|
|
## Rd(2) + K
|
|
|
|
|
|
|
|
XXXX XXXX KKdd KKKK
|
|
|
|
|
|
|
|
ADIW, SBIW
|
|
|
|
|
|
|
|
## Rd(4)
|
|
|
|
|
|
|
|
XXXX XXXX dddd XXXX
|
|
|
|
|
|
|
|
SER
|
|
|
|
|
|
|
|
## K(4)
|
|
|
|
|
|
|
|
XXXX XXXX KKKK XXXX
|
|
|
|
|
|
|
|
DES
|
|
|
|
|
|
|
|
## k(12)
|
|
|
|
|
|
|
|
XXXX kkkk kkkk kkkk
|
|
|
|
|
|
|
|
RCALL, RJMP
|
|
|
|
|
|
|
|
## SREG
|
|
|
|
|
|
|
|
XXXX XXXX Xsss XXXX
|
|
|
|
|
|
|
|
BCLR, BSET
|
|
|
|
|
|
|
|
## SREG + k(7)
|
|
|
|
|
|
|
|
XXXX XXkk kkkk ksss
|
|
|
|
|
|
|
|
BRBC, BRBS
|
|
|
|
|
|
|
|
### 32-bit
|
|
|
|
|
|
|
|
## k(22)
|
|
|
|
|
|
|
|
XXXX XXXk kkkk XXXk
|
|
|
|
kkkk kkkk kkkk kkkk
|
|
|
|
|
|
|
|
CALL, JMP
|
|
|
|
|
|
|
|
## Rd(5) + k(16)
|
|
|
|
|
|
|
|
XXXX XXXd dddd XXXX
|
|
|
|
kkkk kkkk kkkk kkkk
|
|
|
|
|
|
|
|
LDS*, STS*
|
|
|
|
|