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
en:multiasm:piot:chapter_4_5 [2026/03/01 19:40] – [Data Indirect Addressing] ktokarzen:multiasm:piot:chapter_4_5 [2026/04/01 14:21] (current) ktokarz
Line 1: Line 1:
 ====== Addressing Modes ====== ====== Addressing Modes ======
  
-Addressing modes define how the processor accesses data. There are 15 different addressing modes, such as: Direct Addressing, Indirect Addressing, Indirect with Displacement, Immediate Addressing, Register Addressing, Relative Addressing, Indirect I/O Addressing, and Stack Addressing. +Addressing modes define how the processor accesses data and the target address of a jump. There are more than a dozen different addressing modes, such as: Direct Addressing, Indirect Addressing, Indirect with Displacement, Immediate Addressing, Register Addressing, Relative Addressing, Indirect I/O Addressing, and othersIn this section, we first present the data addressing and later addressing used in flow control instructions.
- +
-Details on addressing modes are presented in Fig{{ref>avr_addr_1}},{{ref>avr_addr_2}},{{ref>avr_addr_3}},{{ref>avr_addr_4}},{{ref>avr_addr_5}},{{ref>avr_addr_6}},{{ref>avr_addr_7}},{{ref>avr_addr_8}},{{ref>avr_addr_9}},{{ref>avr_addr_10}},{{ref>avr_addr_11}},{{ref>avr_addr_12}},{{ref>avr_addr_13}},{{ref>avr_addr_14}} and {{ref>avr_addr_15}}:+
  
 =====Direct Single Register Addressing===== =====Direct Single Register Addressing=====
Line 136: Line 134:
  
 =====Program Memory Addressing with Post-increment===== =====Program Memory Addressing with Post-increment=====
-<todo @pczekalski>Continue figures formatting here</todo> 
 Program memory can be addressed with post-increment mode. In this mode, the Z pointer is automatically incremented after reading. Program memory can be addressed with post-increment mode. In this mode, the Z pointer is automatically incremented after reading.
 As shown in Fing {{ref>avr_addr_10}}, the Z-pointer contents specify a constant byte address. The 15 MSbs select the word address. The LSb selects the low byte if cleared (LSb == 0) or the high byte if set (LSb == 1).  As shown in Fing {{ref>avr_addr_10}}, the Z-pointer contents specify a constant byte address. The 15 MSbs select the word address. The LSb selects the low byte if cleared (LSb == 0) or the high byte if set (LSb == 1). 
Line 155: Line 152:
 As visible in Fig {{ref>avr_addr_11}}, for the **spm** instruction, the LSb must be 0, because **spm** works on whole words. The Z-pointer is incremented by 2 after the operation. The Z-pointer contents specify a constant byte address before incrementing. The 15 MSbs select the word address, and the LSb should be left cleared. As visible in Fig {{ref>avr_addr_11}}, for the **spm** instruction, the LSb must be 0, because **spm** works on whole words. The Z-pointer is incremented by 2 after the operation. The Z-pointer contents specify a constant byte address before incrementing. The 15 MSbs select the word address, and the LSb should be left cleared.
  
-<todo @mfojcik>Marcin, tu mam wątpliwości co do nazwy tego rozdziału - to addressing mode? KT odpowiadam - według dokmentacji AVR tak</todo> 
 <figure avr_addr_11> <figure avr_addr_11>
 {{ :en:multiasm:piot:ad11.png?600 |Store Program Memory}} {{ :en:multiasm:piot:ad11.png?600 |Store Program Memory}}
Line 173: Line 169:
 </figure> </figure>
  
-<todo @mfojcik> "immediate" -> "following immediately the instruction word"? KT - opisałem to dokładniej, Janek zmodyfikuje rysunek bo jest trochę nielogiczny</todo>+
  
 =====Indirect Program Memory Addressing===== =====Indirect Program Memory Addressing=====
en/multiasm/piot/chapter_4_5.1772386800.txt.gz · Last modified: by ktokarz
CC Attribution-Share Alike 4.0 International
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0