Menu
Coddy logo textTech

Resumen: Desafío MOV

Parte de la sección Fundamentos del Journey de Assembly de Coddy — lección 22 de 45.

challenge icon

Desafío

Este desafío pondrá a prueba tu comprensión de:

  • Cargar valores desde la memoria
  • Almacenar valores en la memoria
  • Copiar entre registros
  • Usar el tamaño de registro correcto

Las direcciones de datos ya han sido creadas para ti. Solo necesitas escribir las instrucciones MOV.

Desafío

Completa las siguientes tareas en orden. Escribe una línea de ensamblador para cada tarea.

Datos ya proporcionados:

  • num1 — contiene el valor 8 (1 byte)
  • num2 — contiene el valor 3 (1 byte)
  • result — espacio vacío (1 byte)

Tareas:

  1. Carga el valor de num1 en al
  2. Carga el valor de num2 en bl
  3. Copia el valor de bl en cl
  4. Almacena el valor de al en result

Después de tu código:

  • al debe contener 8
  • bl debe contener 3
  • cl debe contener 3
  • La memoria en result debe contener 8

Pruébalo tú mismo

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:
    ; El código del estudiante se ejecuta primero
    
    %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

Todas las lecciones de Fundamentos