Menu
Coddy logo textTech

MOV immediato

Fa parte della sezione Fondamenti del percorso Assembly di Coddy. Lezione 15 di 45.

La forma più semplice di MOV è MOV immediato. «Immediato» significa che il valore è scritto direttamente nell’istruzione stessa.

Sintassi:

mov register, value

Il valore viene copiato nel registro.

Esempi:

IstruzioneCosa fa
mov rax, 5Copia il numero 5 in rax
mov rbx, 100Copia il numero 100 in rbx
mov rcx, 0Copia il numero 0 in rcx

Questo codice non fa nulla di visibile (non produce ancora alcun output), ma inserisce correttamente i numeri nei registri.

Nota: Vedrai l’effetto di queste istruzioni MOV nelle lezioni successive, quando imparerai a stampare o a eseguire il debug. Per ora, sappi solo che i numeri sono memorizzati nei registri.

Regole importanti:

RegolaSpiegazione
Il valore deve entrare nel registrorax può contenere numeri molto grandi (fino a 2⁶⁴-1)
Il valore viene copiato, non spostatoIl numero originale esiste ancora (è solo un numero)
I registri a sinistramov rax, 5 è corretto. mov 5, rax è sbagliato
challenge icon

Sfida

Scrivi una riga di codice assembly per ogni attività:

  1. Inserisci il numero 5 nel registro rax.
  2. Inserisci il numero 7 nel registro rbx.
  3. Inserisci il numero 3 nel registro rcx.

Provalo tu

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"
    
    ; Salva i valori
    mov r12, rax
    mov r13, rbx
    mov r14, rcx
    
    ; Stampa "rax = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rax
    mov rdx, msg_rax_len
    syscall
    
    ; Stampa il valore di rax
    mov rax, r12
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Stampa "rbx = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rbx
    mov rdx, msg_rbx_len
    syscall
    
    ; Stampa il valore di rbx
    mov rax, r13
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Stampa "rcx = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rcx
    mov rdx, msg_rcx_len
    syscall
    
    ; Stampa il valore di rcx
    mov rax, r14
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Esci
    mov rax, 60
    mov rdi, 0
    syscall
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Assembly