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 inmediato. "Inmediato" 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 (aún no hay salida), pero coloca con éxito 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 ten en cuenta que los números se almacenan 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 sigue existiendo (es solo un número)
Registros a la izquierdamov rax, 5 es correcto. mov 5, rax es incorrecto
challenge icon

Desafío

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

  1. Pon el número 5 en el registro rax.
  2. Pon el número 7 en el registro rbx.
  3. Pon 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 el 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 el 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 el 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