Menu
Coddy logo textTech

Riepilogo: sfida MOV

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

challenge icon

Sfida

Questa sfida metterà alla prova la tua comprensione di:

  • Caricare valori dalla memoria
  • Memorizzare valori in memoria
  • Copiare tra registri
  • Usare la dimensione corretta del registro

Gli indirizzi dei dati sono già stati creati per te. Devi solo scrivere le istruzioni MOV.

Sfida

Completa le seguenti attività nell'ordine indicato. Scrivi una riga di assembly per ogni attività.

Dati già forniti:

  • num1: contiene il valore 8 (1 byte)
  • num2: contiene il valore 3 (1 byte)
  • result: spazio vuoto (1 byte)

Attività:

  1. Carica il valore da num1 in al
  2. Carica il valore da num2 in bl
  3. Copia il valore da bl in cl
  4. Memorizza il valore da al in result

Dopo il codice:

  • al dovrebbe contenere 8
  • bl dovrebbe contenere 3
  • cl dovrebbe contenere 3
  • La memoria all'indirizzo result dovrebbe contenere 8

Provalo tu

section .data
    msg_al db 'al = '
    msg_al_len equ $ - msg_al
    msg_bl db 'bl = '
    msg_bl_len equ $ - msg_bl
    msg_cl db 'cl = '
    msg_cl_len equ $ - msg_cl
    msg_result db 'result = '
    msg_result_len equ $ - msg_result
    newline db 0xa

section .bss
    digit resb 1

section .text
    global _start

_start:
    ; Il codice dello studente viene eseguito per primo
    
    %include "solution.asm"
    
    mov r12, rax
    mov r13, rbx
    mov r14, rcx
    mov r15, 0
    mov r15b, [result]

    mov rax, 1
    mov rdi, 1
    mov rsi, msg_al
    mov rdx, msg_al_len
    syscall

    mov rax, r12
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, newline
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, msg_bl
    mov rdx, msg_bl_len
    syscall

    mov rax, r13
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, newline
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, msg_cl
    mov rdx, msg_cl_len
    syscall

    mov rax, r14
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, newline
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, msg_result
    mov rdx, msg_result_len
    syscall

    mov rax, r15
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall

    mov rax, 1
    mov rdi, 1
    mov rsi, newline
    mov rdx, 1
    syscall

    mov rax, 60
    mov rdi, 0
    syscall

Tutte le lezioni di Fondamenti

Esercitati da solo: Playground Assembly