Ulasan: Tantangan MOV
Termasuk bagian Dasar-Dasar dalam perjalanan Assembly di Coddy. Pelajaran 22 dari 45.
Tantangan
Tantangan ini akan menguji pemahamanmu tentang:
- Memuat nilai dari memori
- Menyimpan nilai ke memori
- Menyalin nilai antar-register
- Menggunakan ukuran register yang tepat
Alamat data sudah disiapkan untukmu. Kamu hanya perlu menulis instruksi MOV.
Tantangan
Selesaikan tugas berikut secara berurutan. Tulis satu baris assembly untuk setiap tugas.
Data yang sudah disediakan:
num1: berisi nilai 8 (1 byte)num2: berisi nilai 3 (1 byte)result: ruang kosong (1 byte)
Tugas:
- Muat nilai dari
num1ke dalamal - Muat nilai dari
num2ke dalambl - Salin nilai dari
blke dalamcl - Simpan nilai dari
alke dalamresult
Setelah kodemu:
alseharusnya berisi 8blseharusnya berisi 3clseharusnya berisi 3- Memori di
resultseharusnya berisi 8
Coba sendiri
section .data
msg_al db 'al = '
msg_al_len equ $ - msg_al
msg_bl db 'bl = '
msg_bl_len equ $ - msg_bl
msg_cl db 'cl = '
msg_cl_len equ $ - msg_cl
msg_result db 'result = '
msg_result_len equ $ - msg_result
newline db 0xa
section .bss
digit resb 1
section .text
global _start
_start:
; Kodemu dijalankan lebih dulu
%include "solution.asm"
mov r12, rax
mov r13, rbx
mov r14, rcx
mov r15, 0
mov r15b, [result]
mov rax, 1
mov rdi, 1
mov rsi, msg_al
mov rdx, msg_al_len
syscall
mov rax, r12
add rax, 48
mov [digit], al
mov rax, 1
mov rdi, 1
mov rsi, digit
mov rdx, 1
syscall
mov rax, 1
mov rdi, 1
mov rsi, newline
mov rdx, 1
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg_bl
mov rdx, msg_bl_len
syscall
mov rax, r13
add rax, 48
mov [digit], al
mov rax, 1
mov rdi, 1
mov rsi, digit
mov rdx, 1
syscall
mov rax, 1
mov rdi, 1
mov rsi, newline
mov rdx, 1
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg_cl
mov rdx, msg_cl_len
syscall
mov rax, r14
add rax, 48
mov [digit], al
mov rax, 1
mov rdi, 1
mov rsi, digit
mov rdx, 1
syscall
mov rax, 1
mov rdi, 1
mov rsi, newline
mov rdx, 1
syscall
mov rax, 1
mov rdi, 1
mov rsi, msg_result
mov rdx, msg_result_len
syscall
mov rax, r15
add rax, 48
mov [digit], al
mov rax, 1
mov rdi, 1
mov rsi, digit
mov rdx, 1
syscall
mov rax, 1
mov rdi, 1
mov rsi, newline
mov rdx, 1
syscall
mov rax, 60
mov rdi, 0
syscallSemua pelajaran di Dasar-Dasar
Latihan sendiri: Playground Assembly