Les conventions et notations suivantes sont utilisées :
uimm11 constante non signée codée
sur 11 bits. Lorsque cette constante est employée dans une instruction,
elle est complétée par des 0 dans les bits
de poids fort si nécessaire pour l'étendre sur 16 bits.
simm11 constante signée codée sur
11 bits. Lorsque cette constante est employé dans une instruction,
elle est complétée par le bit de signe
dans les bits de poids fort si nécessaire pour l'étendre
sur 16 bits.
simm9 constante signée codée sur
9 bits. Même remarque que pour simm11.
simm5 constante signée codée sur
5 bits. Même remarque que pour simm11.
uimm5 constante non signée codée
sur 5 bits. Même remarque que pour uimm11.
uimm4 constante non signée codée
sur 4 bits. Même remarque que pour uimm11.
& et logique bit à bit.
| ou logique bit à bit.
<- affectation.
|| concaténation.
Mnémonique | Opération | Exemple |
lih rn,uimm11 | rn <-uimm11 || 00000b | lih r2,0x7FF |
Mnémonique | Opération | Exemple |
b simm11 | pc <- pc + (1 + simm11) | b -16 |
ba simm11 | pc <- simm11 || 0b | ba 0x0004 |
Mnémonique | Opération | Exemple |
beq simm9 | si (rcc[z] == 1) pc <- pc + (1 + simm9) | beq -16 |
bne simm9 | si (rcc[z] == 0) pc <- pc + (1 + simm9) | bne 16 |
bge simm9 | si (rcc[z] == 1 ou rcc[n] ==0) pc <- pc + (1 + simm9) | bge 16 |
bgt simm9 | si (rcc[z] == 0 et rcc[n] ==0) pc <- pc + (1 + simm9) | bgt 16 |
ble simm9 | si (rcc[z] == 1 ou rcc[n] ==1) pc <- pc + (1 + simm9) | ble 16 |
blt simm9 | si (rcc[z] == 0 et rcc[n] ==1) pc <- pc + (1 + simm9) | blt 16 |
bvs simm9 | si (rcc[v] == 1) pc <- pc + (1 + simm9) | ble 16 |
bvc simm9 | si (rcc[v] == 0) pc <- pc + (1 + simm9) | blt 16 |
Mnémonique | Opération | Exemple |
add rd,rs1,rs2 | rd <- rs1 + rs2 | add r3,r4,r3 |
add. rd,rs1,rs2 | rd <-rs1 + rs2 + C ; rcc modifié | add. r3,r4,r3 |
sub rd,rs1,rs2 | rd <- rs1 - rs2 | sub r0,r2,r2 |
sub. rd,rs1,rs2 | rd <-rs1 - rs2 + C ; rcc modifié | sub. r0,r3,r4 |
and. rd,rs1,rs2 | rd <- rs1 & rs2 | and. r3,r2,r1 |
or rd,rs1,rs2 | rd <- rs1 j rs2 | or r2,r3,r4 |
ldx rd,(rs1+rs2) | rd <- Mem[rs1+rs2] | ldx r2,(r3+r4) |
stx (rs1+rs2),rd | Mem[rs1+rs2] <- rd | stx (r2+r1),r1 |
ldbx rd,(rs1+rs2) | rd <- Mem[rs1+rs2] & 0x00ff | ldbx r2,(r3+r4) |
ldsbx rd,(rs1+rs2) | rd <- exts(Mem[rs1+rs2] & 0x00ff) | ldsbx r2,(r3+r4) |
stbx (rs1+rs2),rd | Mem[rs1+rs2] <- rd & 0x00ff | stbx (r2+r1),r1 |
Mnémonique | Opération | Exemple |
addi rd,rs1,simm5 | rd <- rs1 + simm5 | addi r3,r3,1 |
addi. rd,rs1,simm5 | rd <- rs1 + simm5 + C ; rcc modifié | addi. r4,r5,2 |
andi. rd,rs1,simm5 | rd <- rs1 & simm5 | andi. r4,r2,0xF |
ori rd,rs1,uimm5 | rd <- rs1 | uimm5 | ori r4,r5,0xA |
ld rd,(rs1+simm5) | rd <- Mem[rs1+simm5] | ld r8,(r5+0) |
st (rs1+simm5),rd | Mem[rs1+simm5] <- rd | st (r0+12),r4 |
ldb rd,(rs1+simm5) | rd <- Mem[rs1+simm5] & 0x00ff | ldb r8,(r5+0) |
ldsb rd,(rs1+simm5) | rd <- Mem[rs1+simm5] & 0x00ff | ldsb r8,(r5+0) |
stb (rs1+simm5),rd | Mem[rs1+simm5] <- rd & 0x00ff | stb (r0+17),r4 |
Mnémonique | Opération | Exemple |
lsl rd,rs1,uimm4 | rd <- rs1 << uimm4 | lsl r3,r3,1 |
rol rd,rs1,uimm4 | rd <- rs1 << uimm4 ; les bits de poids faible reçoivent les bits de poids fort éjectés | rol r4,r3,15 |
lsr rd,rs1,uimm4 | rd <- rs1 >> uimm4 | lsr r1,r1,3 |
asr rd,rs1,uimm4 | rd <- rs1 >>uimm4 ; les bits de poids fort sont comblés avec le bit de signe | asr r2,r3,4 |