HomeLoginRegisterCreate pageChangelogMenu

Wiki

Wiki - Sprungmarken (Labels)

Sprungmarken (Labels)

by janick2/7/2022


Ein Label in Assembly ähnelt einer Funktion in z.B. Java. Auch benötigt man einen sogenannten "Entry point". Dieser ist vergleichbar mit der main Funktion in Java. Der Entry point ist der Punkt im Programm von dem an Linear ausgeführt wird.

Beispiel: Das folgende Programm quadriert 2

    mov R0, #2
    b quadrieren --------
                         |
quadrieren:        <-----     
    mul R1, R0, R0 <----- 1.

Nun ist in R1 4 (2^2)

Man kann auch aus Labels Returnen. Mehr dazu hier

Ein weiteres Beispiel um das Springen zwischen labels weiter zu verdeutlichen wäre folgendes: Ein Programm das unendlich R0 += 1 rechnet

main:
    mov R0, #0
    b add_infinte

add_infinite:
    add R0, #1
    b add_infinite

1. Schritt nach start des Programms

main:
    mov R0, #0       <=== Jetzt steht in R0 0
    b add_infinte

add_infinite:
    add R0, #1
    b add_infinite

2. Schritt

main:
    mov R0, #0
    b add_infint     <=== Springt zu add_infinite

add_infinite:
    add R0, #1
    b add_infinite

3. Schritt

main:
    mov R0, #0
    b add_infint

add_infinite:
    add R0, #1       <=== Addiert auf R0 1
    b add_infinite

4. Schritt

main:
    mov R0, #0
    b add_infint

add_infinite:
    add R0, #1
    b add_infinite   <=== Springt zu add_infinite

Die Nächsten Schritte werden sich unendlich wiederholen

main:
    mov R0, #0
    b add_infint

add_infinite:
    add R0, #1       <=== Addiert auf R0 1
    b add_infinite
main:
    mov R0, #0
    b add_infint

add_infinite:
    add R0, #1
    b add_infinite   <=== Springt zu add_infinite