Menu
Coddy logo textTech

MOV Imediato

Parte da seção Fundamentos do Journey de Assembly da Coddy — lição 15 de 45.

A forma mais simples de MOV é MOV imediato. "Imediato" significa que o valor é escrito diretamente na própria instrução.

Sintaxe:

mov register, value

O valor é copiado para o registrador.

Exemplos:

InstruçãoO que faz
mov rax, 5Copia o número 5 para rax
mov rbx, 100Copia o número 100 para rbx
mov rcx, 0Copia o número 0 para rcx

Este código não faz nada visível (nenhuma saída ainda), mas ele coloca números em registradores com sucesso.

Nota: Você verá o efeito dessas instruções MOV em lições posteriores, quando aprender a imprimir ou depurar. Por enquanto, apenas saiba que os números estão armazenados nos registradores.

Regras importantes:

RegraExplicação
O valor deve caber no registradorrax pode conter números muito grandes (até 2⁶⁴-1)
O valor é copiado, não movidoO número original ainda existe (é apenas um número)
Registradores à esquerdamov rax, 5 está correto. mov 5, rax está incorreto
challenge icon

Desafio

Escreva uma linha de código assembly para cada tarefa:

  1. Coloque o número 5 no registrador rax.
  2. Coloque o número 7 no registrador rbx.
  3. Coloque o número 3 no registrador rcx.

Experimente você mesmo

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"
    
    ; Salvar 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
    
    ; Sair
    mov rax, 60
    mov rdi, 0
    syscall
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos