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 formu MOV immediate'dır. "Immediate", değerin doğrudan talimatın kendisine yazıldığı anlamına gelir.

Sözdizimi:

mov register, value

Değer, kaydediciye kopyalanır.

Örnekler:

KomutNe 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 bir şey yapmaz (henüz çıktı yok), ancak sayıları başarıyla yazmaçlara (registers) yerleştirir.

Not: Bu MOV komutlarının etkisini, yazdırmayı veya hata ayıklamayı öğrendiğiniz sonraki derslerde göreceksiniz. Şimdilik, sadece sayıların yazmaçlarda saklandığını bilin.

Önemli kurallar:

KuralAçıklama
Değer yazmaca sığmalıdırrax çok büyük sayıları tutabilir (2⁶⁴-1'e kadar)
Değer kopyalanır, taşınmazOrijinal sayı hala mevcuttur (o sadece bir sayıdır)
Yazmaçlar soldadırmov rax, 5 doğrudur. mov 5, rax yanlıştır
challenge icon

Görev

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

  1. 5 sayısını rax yazmacına yerleştirin.
  2. 7 sayısını rbx yazmacına yerleştirin.
  3. 3 sayısını rcx yazmacına yerleştirin.

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