Menu
Coddy logo textTech

MOV z wartością natychmiastową

Część sekcji Podstawy ścieżki Assembly w Coddy. Lekcja 15 z 45.

Najprostsza forma MOV to MOV immediate. „Immediate” oznacza, że wartość jest zapisana bezpośrednio w samej instrukcji.

Składnia:

mov register, value

Wartość jest kopiowana do rejestru.

Przykłady:

InstrukcjaCo robi
mov rax, 5Kopiuje liczbę 5 do rax
mov rbx, 100Kopiuje liczbę 100 do rbx
mov rcx, 0Kopiuje liczbę 0 do rcx

Ten kod nie robi nic widocznego (na razie nie wyświetla żadnego wyniku), ale poprawnie umieszcza liczby w rejestrach.

Uwaga: Efekt działania tych instrukcji MOV zobaczysz na późniejszych lekcjach, gdy nauczysz się wyświetlać dane lub debugować. Na razie wystarczy wiedzieć, że liczby są przechowywane w rejestrach.

Ważne zasady:

ZasadaWyjaśnienie
Wartość musi mieścić się w rejestrzerax może przechowywać bardzo duże liczby (do 2⁶⁴-1)
Wartość jest kopiowana, a nie przenoszonaOryginalna liczba nadal istnieje (to po prostu liczba)
Rejestry po lewej stroniemov rax, 5 jest poprawne. mov 5, rax jest niepoprawne
challenge icon

Wyzwanie

Napisz jedną linię kodu asemblera dla każdego zadania:

  1. Umieść liczbę 5 w rejestrze rax.
  2. Umieść liczbę 7 w rejestrze rbx.
  3. Umieść liczbę 3 w rejestrze rcx.

Spróbuj swoich sił

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"
    
    ; Zapisz wartości
    mov r12, rax
    mov r13, rbx
    mov r14, rcx
    
    ; Wypisz "rax = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rax
    mov rdx, msg_rax_len
    syscall
    
    ; Wypisz wartość rax
    mov rax, r12
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Wypisz "rbx = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rbx
    mov rdx, msg_rbx_len
    syscall
    
    ; Wypisz wartość rbx
    mov rax, r13
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Wypisz "rcx = "
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rcx
    mov rdx, msg_rcx_len
    syscall
    
    ; Wypisz wartość rcx
    mov rax, r14
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Zakończ program
    mov rax, 60
    mov rdi, 0
    syscall
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Edytor online Assembly