MOV dengan Nilai Langsung
Termasuk bagian Dasar-Dasar dalam perjalanan Assembly di Coddy. Pelajaran 15 dari 45.
Bentuk MOV yang paling sederhana adalah MOV immediate. "Immediate" berarti nilai ditulis langsung di dalam instruksi itu sendiri.
Sintaks:
mov register, valueNilai disalin ke dalam register.
Contoh:
| Instruksi | Fungsinya |
|---|---|
mov rax, 5 | Menyalin angka 5 ke dalam rax |
mov rbx, 100 | Menyalin angka 100 ke dalam rbx |
mov rcx, 0 | Menyalin angka 0 ke dalam rcx |
Kode ini tidak melakukan apa pun yang terlihat (belum ada output), tetapi berhasil memasukkan angka ke dalam register.
Catatan: Kamu akan melihat efek instruksi MOV ini di pelajaran berikutnya saat kamu belajar mencetak atau melakukan debug. Untuk sekarang, cukup ketahui bahwa angka-angka tersebut disimpan di dalam register.
Aturan penting:
| Aturan | Penjelasan |
|---|---|
| Nilai harus muat di register | rax dapat menampung angka yang sangat besar (hingga 2⁶⁴-1) |
| Nilai disalin, bukan dipindahkan | Angka aslinya tetap ada (itu hanya sebuah angka) |
| Register di sebelah kiri | mov rax, 5 benar. mov 5, rax salah |
Tantangan
Tulis satu baris kode assembly untuk setiap tugas:
- Masukkan angka 5 ke dalam register
rax. - Masukkan angka 7 ke dalam register
rbx. - Masukkan angka 3 ke dalam register
rcx.
Coba sendiri
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"
; Simpan nilainya
mov r12, rax
mov r13, rbx
mov r14, rcx
; Cetak "rax = "
mov rax, 1
mov rdi, 1
mov rsi, msg_rax
mov rdx, msg_rax_len
syscall
; Cetak nilai rax
mov rax, r12
add rax, 48
mov [digit], al
mov rax, 1
mov rdi, 1
mov rsi, digit
mov rdx, 1
syscall
; Cetak "rbx = "
mov rax, 1
mov rdi, 1
mov rsi, msg_rbx
mov rdx, msg_rbx_len
syscall
; Cetak nilai rbx
mov rax, r13
add rax, 48
mov [digit], al
mov rax, 1
mov rdi, 1
mov rsi, digit
mov rdx, 1
syscall
; Cetak "rcx = "
mov rax, 1
mov rdi, 1
mov rsi, msg_rcx
mov rdx, msg_rcx_len
syscall
; Cetak nilai rcx
mov rax, r14
add rax, 48
mov [digit], al
mov rax, 1
mov rdi, 1
mov rsi, digit
mov rdx, 1
syscall
; Keluar
mov rax, 60
mov rdi, 0
syscallPelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
3Instruksi Pertama: MOV
Apa Itu MOV?MOV dengan Nilai LangsungMOV dari Register ke RegisterMOV dari Memori ke RegisterMOV dari Register ke MemoriLEA: Muat AlamatMOV dengan Ukuran BerbedaLatihan: Tukar RegisterUlasan: Tantangan MOVLatihan sendiri: Playground Assembly