Menu
Coddy logo textTech

MOV Immediate

Teil des Abschnitts Grundlagen der Assembly-Journey von Coddy. Lektion 15 von 45.

Die einfachste Form von MOV ist MOV immediate. „Immediate“ bedeutet, dass der Wert direkt in die Anweisung selbst geschrieben wird.

Syntax:

mov register, value

Der Wert wird in das register kopiert.

Beispiele:

AnweisungWas sie tut
mov rax, 5Kopiert die number 5 in rax
mov rbx, 100Kopiert die number 100 in rbx
mov rcx, 0Kopiert die number 0 in rcx

Dieser Code bewirkt nichts Sichtbares (noch keine Ausgabe), aber er legt erfolgreich Zahlen in Registern ab.

Hinweis: Du wirst die Wirkung dieser MOV-Anweisungen in späteren Lektionen sehen, wenn du lernst, etwas auszugeben oder zu debuggen. Für den Moment solltest du nur wissen, dass die Zahlen in den Registern gespeichert sind.

Wichtige Regeln:

RegelErklärung
Der Wert muss in das register passenrax kann sehr große Zahlen aufnehmen (bis zu 2⁶⁴-1)
Der Wert wird kopiert, nicht verschobenDie ursprüngliche Zahl existiert weiterhin (sie ist einfach eine number)
Register stehen auf der linken Seitemov rax, 5 ist korrekt. mov 5, rax ist falsch
challenge icon

Aufgabe

Schreibe für jede Aufgabe eine Zeile Assembly-Code:

  1. Lege die Zahl 5 in das rax-Register.
  2. Lege die Zahl 7 in das rbx-Register.
  3. Lege die Zahl 3 in das rcx-Register.

Probier es selbst

section .data
    msg_rax db 'rax = '
    msg_rax_len equ $ - msg_rax
    msg_rbx db 'rbx = '
    msg_rbx_len equ $ - msg_rbx
    msg_rcx db 'rcx = '
    msg_rcx_len equ $ - msg_rcx

section .bss
    digit resb 1

section .text
    global _start

_start:
    %include "solution.asm"
    
    ; Werte speichern
    mov r12, rax
    mov r13, rbx
    mov r14, rcx
    
    ; "rax = " ausgeben
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rax
    mov rdx, msg_rax_len
    syscall
    
    ; rax-Wert ausgeben
    mov rax, r12
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; "rbx = " ausgeben
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rbx
    mov rdx, msg_rbx_len
    syscall
    
    ; rbx-Wert ausgeben
    mov rax, r13
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; "rcx = " ausgeben
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rcx
    mov rdx, msg_rcx_len
    syscall
    
    ; rcx-Wert ausgeben
    mov rax, r14
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Beenden
    mov rax, 60
    mov rdi, 0
    syscall
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Assembly-Playground