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, valueDeğer register içine kopyalanır.
Örnekler:
| Talimat | Ne yapar |
|---|---|
mov rax, 5 | 5 sayısını rax içine kopyalar |
mov rbx, 100 | 100 sayısını rbx içine kopyalar |
mov rcx, 0 | 0 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:
| Kural | Açıklama |
|---|---|
| Değer register içine sığmalıdır | rax çok büyük sayıları tutabilir (2⁶⁴-1'e kadar) |
| Değer taşınmaz, kopyalanır | Orijinal sayı hâlâ vardır (bu sadece bir sayıdır) |
| register'lar solda | mov rax, 5 doğrudur. mov 5, rax yanlıştır |
Görev
Her görev için bir satır assembly kodu yaz:
- 5 sayısını
raxregister'ına koy. - 7 sayısını
rbxregister'ına koy. - 3 sayısını
rcxregister'ı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
syscallBu 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