Menu
Coddy logo textTech

MOV Inmediato

Parte de la sección Fundamentos del Journey de Assembly de Coddy. Lección 15 de 45.

La forma más sencilla de MOV es MOV immediate. «Immediate» significa que el valor se escribe directamente en la propia instrucción.

Sintaxis:

mov register, value

El valor se copia en el register.

Ejemplos:

InstrucciónQué hace
mov rax, 5Copia el number 5 into rax
mov rbx, 100Copia el number 100 into rbx
mov rcx, 0Copia el number 0 into rcx

Este código no hace nada visible (todavía no hay salida), pero coloca correctamente números en los registros.

Nota: Verás el efecto de estas instrucciones MOV en lecciones posteriores, cuando aprendas a imprimir o depurar. Por ahora, solo debes saber que los números están almacenados en los registros.

Reglas importantes:

ReglaExplicación
El valor debe caber en el registerrax puede contener números muy grandes (hasta 2⁶⁴-1)
El valor se copia, no se mueveEl número original todavía existe (es solo un number)
Los register están a la izquierdamov rax, 5 es correcto. mov 5, rax es incorrecto
challenge icon

Desafío

Escribe una línea de código Assembly para cada tarea:

  1. Introduce el número 5 en el registro rax.
  2. Introduce el número 7 en el registro rbx.
  3. Introduce el número 3 en el registro rcx.

Pruébalo tú mismo

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"
    
    ; Guardar valores
    mov r12, rax
    mov r13, rbx
    mov r14, rcx
    
    ; Imprimir "rax = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rax
    mov rdx, msg_rax_len
    syscall
    
    ; Imprimir valor de rax
    mov rax, r12
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Imprimir "rbx = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rbx
    mov rdx, msg_rbx_len
    syscall
    
    ; Imprimir valor de rbx
    mov rax, r13
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Imprimir "rcx = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rcx
    mov rdx, msg_rcx_len
    syscall
    
    ; Imprimir valor de rcx
    mov rax, r14
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Salir
    mov rax, 60
    mov rdi, 0
    syscall
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Fundamentos

Practica por tu cuenta: Playground de Assembly