Menu
Coddy logo textTech

MOV Anlık Değer

Coddy'nin Assembly Journey'sinin Temeller bölümünün bir parçası. Ders 15 / 45.

MOV’un en basit biçimi MOV immediate’dir. “Immediate”, değerin doğrudan talimatın kendisine yazıldığı anlamına gelir.

Sözdizimi:

mov register, value

Değer register içine kopyalanır.

Örnekler:

TalimatNe yapar
mov rax, 55 sayısını rax içine kopyalar
mov rbx, 100100 sayısını rbx içine kopyalar
mov rcx, 00 sayısını rcx içine kopyalar

Bu kod görünür hiçbir şey yapmaz (henüz çıktı yok), ancak sayıları register içine başarıyla yerleştirir.

Not: Yazdırmayı veya hata ayıklamayı öğrendiğinde, bu MOV talimatlarının etkisini sonraki derslerde göreceksin. Şimdilik sayıların register içinde saklandığını bilmen yeterli.

Önemli kurallar:

KuralAçıklama
Değer register içine sığmalıdırrax çok büyük sayıları tutabilir (2⁶⁴-1'e kadar)
Değer taşınmaz, kopyalanırOrijinal sayı hâlâ vardır (bu sadece bir sayıdır)
register'lar soldamov rax, 5 doğrudur. mov 5, rax yanlıştır
challenge icon

Görev

Her görev için bir satır assembly kodu yaz:

  1. 5 sayısını rax register'ına koy.
  2. 7 sayısını rbx register'ına koy.
  3. 3 sayısını rcx register'ına koy.

Kendin dene

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"
    
    ; Değerleri kaydet
    mov r12, rax
    mov r13, rbx
    mov r14, rcx
    
    ; "rax = " yazdır
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rax
    mov rdx, msg_rax_len
    syscall
    
    ; rax değerini yazdır
    mov rax, r12
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; "rbx = " yazdır
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rbx
    mov rdx, msg_rbx_len
    syscall
    
    ; rbx değerini yazdır
    mov rax, r13
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; "rcx = " yazdır
    mov rax, 1
    mov rdi, 1
    mov rsi, msg_rcx
    mov rdx, msg_rcx_len
    syscall
    
    ; rcx değerini yazdır
    mov rax, r14
    add rax, 48
    mov [digit], al
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Çıkış
    mov rax, 60
    mov rdi, 0
    syscall
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Assembly playground