User Tools

Site Tools


tanszek:oktatas:szamitastechnika:arm_assembly_alapok

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
tanszek:oktatas:szamitastechnika:arm_assembly_alapok [2024/09/14 09:52] – [ARM processzor (Advanced RISC Machines)] kneheztanszek:oktatas:szamitastechnika:arm_assembly_alapok [2026/09/29 18:22] (current) – [Összehasonlítás] knehez
Line 44: Line 44:
 Jól látható, hogy a megfelelő regiszterekben megjelentek a számok, és az eredmény is a r4-esben. Jól látható, hogy a megfelelő regiszterekben megjelentek a számok, és az eredmény is a r4-esben.
  
-=== Összehasonlítás ===+==== Összehasonlítás ==== 
  
 Az előző ábrán látható a **Current Program Status Register (CPSR)** regiszter legalul (ez az állapot regiszter). Ennek egyes bitjei jelölik azt, hgy egy művelet eredménye nulla, negatív, átvitelt eredményez, stb. Nem kell tudni, hogy a 32 bitből ezek melyek pontosan, a mellette megjelenő **NZCVI** szöveg egyes betűi jelölik a főbb állapotbiteket. Az előző ábrán látható a **Current Program Status Register (CPSR)** regiszter legalul (ez az állapot regiszter). Ennek egyes bitjei jelölik azt, hgy egy művelet eredménye nulla, negatív, átvitelt eredményez, stb. Nem kell tudni, hogy a 32 bitből ezek melyek pontosan, a mellette megjelenő **NZCVI** szöveg egyes betűi jelölik a főbb állapotbiteket.
Line 59: Line 59:
 addlt   r0, r0, #5 /* lt => less than. Ha (r0 < 3) akkor adj hozzá 5-öt */ addlt   r0, r0, #5 /* lt => less than. Ha (r0 < 3) akkor adj hozzá 5-öt */
 cmp     r0, #3     /* r0 - 3. Zero bit 1 lesz. Negative bit 0 lesz */ cmp     r0, #3     /* r0 - 3. Zero bit 1 lesz. Negative bit 0 lesz */
-addlt   r0, r0, #5 /* Ha (r0 < 3) akkor adj hozzá 1-et az r0-hoz */+addlt   r0, r0, #1 /* Ha (r0 < 3) akkor adj hozzá 1-et az r0-hoz */
  
 bkpt bkpt
Line 77: Line 77:
  
  
-=== Elágazások ===+==== Elágazások ==== 
  
  
Line 96: Line 96:
 A cmp összehasonlítja 0-val a r4-et, a **bne** (branch if not equals) ágazz el ha nem egyenlő. A cmp összehasonlítja 0-val a r4-et, a **bne** (branch if not equals) ágazz el ha nem egyenlő.
  
-=== Memória kezelés ===+==== Memória kezelés ====
  
 <code asm> <code asm>
Line 118: Line 118:
 </code> </code>
  
-A példában látható hogyan lehet változókat tárolni és a memóriacímeket ahol el vannak tárolva, hogyan lehet módosítani, illetve betölteni a regiszterekbe tartalmukat. A legutolsó utasítás felülírja adr_var2 helyen tárolt értéket, ezt a módosulást a harmadik memory fülön tudjuk ellenőrizni.+A példában látható, hogyan lehet változókat tárolni és a memóriacímeket, ahol el vannak tárolva, hogyan lehet módosítani, illetve betölteni a regiszterekbe tartalmukat. A legutolsó utasítás felülírja adr_var2 helyen tárolt értéket, ezt a módosulást a harmadik memory fülön tudjuk ellenőrizni.
  
-=== Verem ===+==== Verem ====
  
- +A verem adattárolásra szolgál, memóriacímét az **sp** regiszter mutatja, és új érték verembe helyezésekor az sp regiszter csökken 4 byteot.
-A verem adattárolásra szolgál, memóriacímét az **sp** regiszter mutatja és új érték verembe helyezésekor az sp regiszter csökken 4 byteot.+
  
 <code asm> <code asm>
tanszek/oktatas/szamitastechnika/arm_assembly_alapok.1726307538.txt.gz · Last modified: by knehez