Skip to content
Harry Broeders edited this page Jun 1, 2022 · 18 revisions

LEGv7 Pinky instructieset

De LEGv7 Pinlky instructieset is een kleine subset van de ARMv7 16-bit Thumb instructieset. Programma's geschreven in LEGv7 Pinky kunnen geassembleerd worden in de STM32Cube IDE met de daarin aanwezige GNU assembler en uitgevoerd worden op een STM32.

Registers

Alleen de registers R0 t/m R7 en SP, LR, PC en CPSR zijn bruikbaar in de ARMv7 16-bit Thumb instructieset. Regsisters R8 t/m R12 kunnen dus niet gebruikt worden. De encoding van de ARMv7 16-bit Thumb instructieset kun je vinden op p. 129 van de Arm v7-M Architecture Reference Manual: https://documentation-service.arm.com/static/606dc36485368c4c2b1bf62f#page=129.

De LEGv7 Pinlky instructieset bevat de volgende instructiegroepen:

Rekenkundige berekeningen

Logische bewerkingen

Schuif-bewerkingen

Kopiëren

Vergelijken met nul en spring voorwaards

Vergelijken en springen als ...

  • CMP <Rn>,<Rm> Compare (register)

  • CMP <Rn>,#<imm8> Compare (8-bit immediate)

  • B<c> <label> Branch <c> = conditie:

    • EQ Equal, Z == 1
    • NE Not Equal, Z == 0
    • CS (HS) Carry Set (unsigned Higher or Same), C == 1
    • CC (LO) Carry Clear (unsigned LOwer), C == 0
    • MI MInus, N == 1
    • PL PLus, N == 0
    • VS Overflow Set, V == 1
    • VC Overflow Clear, V == 0
    • HI unsigned HIgher, C == 1 and Z == 0
    • LS unsigned Lower or Same, C == 0 or Z == 1
    • GE signed Greater than or Equal, N == V
    • LT signed Less Than, N != V
    • GT signed Greater Than, Z == 0 and N == V
    • LE signed Less than or Equal, Z == 1 or N != V
    • None (AL) Always (unconditional)

Lezen en schrijven in het geheugen

Doe niets

Spring naar subroutine en return

Stack bewerkingen

Clone this wiki locally