User Tools

Site Tools


arm:armv6-m

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
arm:armv6-m [2020/07/23 11:08] utedassarm:armv6-m [2022/09/12 00:30] (current) – external edit 127.0.0.1
Line 10: Line 10:
  
 ====== Registers ====== ====== Registers ======
 +[[https://azeria-labs.com/arm-data-types-and-registers-part-2/|Nice page, maybe not specifically armv6-m]]
 +
 ^ Register ^ Special function ^ Description                          ^ ^ Register ^ Special function ^ Description                          ^
 | R0-R12   | -                | General purpose 32-bit registers     | | R0-R12   | -                | General purpose 32-bit registers     |
Line 16: Line 18:
 | R15      | PC               | Program Counter, stores the address to the <wrap hi>next</wrap> instruction | | R15      | PC               | Program Counter, stores the address to the <wrap hi>next</wrap> instruction |
  
-====== Assembler instructions ======+====== Exceptions and interrupts ====== 
 +The vector table, B1.5.3
  
 +
 +====== Assembler ======
 +
 +A comprehensive list of mnemonics (several architectures, not only v6-m): [[https://www.keil.com/support/man/docs/armasm/armasm_dom1361289850509.htm|Keil Assembler User Guide]].
 ===== Conditional execution, A6.3 ===== ===== Conditional execution, A6.3 =====
 Instruction mnemonics can be followed by a suffix to specify conditional execution. Instruction mnemonics can be followed by a suffix to specify conditional execution.
 +[[https://www.keil.com/support/man/docs/armasm/armasm_dom1361289860997.htm|Keil Assembler Guide]]
 ^ cond ^ Mnemonic extension ^ Description                     ^ Condition flags   ^ ^ cond ^ Mnemonic extension ^ Description                     ^ Condition flags   ^
 | 0000 | EQ                 | Equal           | Z == 1            | | 0000 | EQ                 | Equal           | Z == 1            |
Line 36: Line 44:
 | 1101 | LE                 | Signed less than or equal         | Z == 1 or N != V  | | 1101 | LE                 | Signed less than or equal         | Z == 1 or N != V  |
 | 1110 | None (AL)          | Always (unconditional)         | Any               | | 1110 | None (AL)          | Always (unconditional)         | Any               |
 +
 +Example
 +<code arm>
 +BNE my_fancy_label
 +</code>
 +
 +===== Addressing =====
 +The ARMv6-M only supports offset addressing.
 +
 +The syntax is ''<Rn>, <offset>'' where ''Rn'' contains the base address and ''offset'' is either an immediate value or a register, ''Rm'', containing the offset from the base address.
 +
 +===== Instructions, A6.7 =====
 +There is a comprehensive list of instructions for the ARMv6-M in chapter A6.7.
 +
 +A good tutorial at [[https://azeria-labs.com/arm-instruction-set-part-3/]].
  
arm/armv6-m.1595502512.txt.gz · Last modified: 2022/09/12 00:30 (external edit)

Except where otherwise noted, content on this wiki is licensed under the following license: CC0 1.0 Universal
CC0 1.0 Universal Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki