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, valueDeğer, kaydediciye kopyalanır.
Örnekler:
| Komut | 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 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:
| Kural | Açıklama |
|---|---|
| Değer yazmaca sığmalıdır | rax çok büyük sayıları tutabilir (2⁶⁴-1'e kadar) |
| Değer kopyalanır, taşınmaz | Orijinal sayı hala mevcuttur (o sadece bir sayıdır) |
| Yazmaçlar soldadır | mov rax, 5 doğrudur. mov 5, rax yanlıştır |
Görev
Her bir görev için bir satır assembly kodu yazın:
- 5 sayısını
raxyazmacına yerleştirin. - 7 sayısını
rbxyazmacına yerleştirin. - 3 sayısını
rcxyazmacı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
syscallBu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.