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:cs:chapter_3_10 [2026/03/01 14:11] – [Data addressing] ktokarzen:multiasm:cs:chapter_3_10 [2026/03/01 14:14] (current) – [Program control flow destination addressing] ktokarz
Line 78: Line 78:
 The operand of jump, branch, or function call instructions addresses the destination of the program flow control. The result of these instructions is the change of the Instruction Pointer content. Jump instructions should be avoided in high-level structural or object-oriented languages, but they are common in assembler programming. Our examples will use the hypothetic //jump// instruction with a single operand—the destination address.  The operand of jump, branch, or function call instructions addresses the destination of the program flow control. The result of these instructions is the change of the Instruction Pointer content. Jump instructions should be avoided in high-level structural or object-oriented languages, but they are common in assembler programming. Our examples will use the hypothetic //jump// instruction with a single operand—the destination address. 
  
-**Direct addressing** of the destination is similar to direct data addressing. It specifies the destination address as the constant value, usually represented by a name. In assembler, we define the names of the addresses in code as //labels//. In the following example, the code will jump to the label named //destin//:+**Direct addressing** of the destination is similar to direct data addressing. It specifies the destination address as the constant value, usually represented by a name. In assembler, we define the names of the addresses in code as //labels//. In the following example, shown in Fig {{ref>jumpdirect}} and in the code, the program will jump to the label named //destin//:
 <code> <code>
  jump destin  jump destin
Line 88: Line 88:
 </figure> </figure>
  
-**Indirect addressing** of the destination uses the content of the register as the address where the program will jump. In the following example, the processor will jump to the destination address, which is stored in //R0//:+**Indirect addressing** of the destination, as shown in Fig {{ref>jumpindirect}} uses the content of the register as the address where the program will jump. In the following example, the processor will jump to the destination address, which is stored in //R0//:
 <code> <code>
  jump [R0]  jump [R0]
en/multiasm/cs/chapter_3_10.1772367108.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