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 registro.

Ejemplos:

InstrucciónQué hace
mov rax, 5Copia el número 5 en rax
mov rbx, 100Copia el número 100 en rbx
mov rcx, 0Copia el número 0 en 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 registrorax puede contener números muy grandes (hasta 2⁶⁴-1)
El valor se copia, no se mueveEl número original aún existe (es simplemente un número)
Los registros van 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