Cetak Dua string
Termasuk bagian Dasar-Dasar dalam perjalanan Assembly di Coddy. Pelajaran 40 dari 45.
Kamu sudah tahu cara mencetak satu string. Namun, bagaimana jika kamu ingin mencetak dua string terpisah? Misalnya, "Hello " lalu "World!"?
Kamu cukup memanggil syscall write dua kali, masing-masing sekali untuk setiap string.
Cara kerjanya:
; Cetak pertama
mov rax, 1
mov rdi, 1
mov rsi, firstMsg
mov rdx, firstLen
syscall
; Cetak kedua
mov rax, 1
mov rdi, 1
mov rsi, secondMsg
mov rdx, secondLen
syscallContoh:
section .data
first db 'Hello ', 0x0a
firstLen equ $-first
second db 'World!', 0x0a
secondLen equ $-second
section .text
global _start
_start:
mov rax, 1
mov rdi, 1
mov rsi, first
mov rdx, firstLen
syscall
mov rax, 1
mov rdi, 1
mov rsi, second
mov rdx, secondLen
syscall
mov rax, 60
mov rdi, 0
syscallOutput:
Hello
World!
Setiap string diakhiri dengan 0x0a (baris baru), sehingga kedua string dicetak pada baris yang terpisah.
Mengapa mencetak dua string alih-alih satu?
| Dapat digunakan kembali | Contoh |
|---|---|
| Gunakan kembali | Cetak sapaan yang sama dengan nama yang berbeda |
| Fleksibilitas | Cetak pesan yang berbeda berdasarkan kondisi |
| Pengaturan | Pisahkan pesan yang berbeda di dalam memori |
Kamu bisa mencetak string sebanyak yang kamu inginkan:
Cukup ulangi syscall write untuk setiap string.
Tantangan
Kamu diberi dua string: partOne dengan nilai 'Good' dan partTwo dengan nilai 'bye'. Keduanya sudah memiliki baris baru di akhir.
Tulis kode untuk mencetak partOne lalu partTwo agar output menampilkan:
Good
bye
Bagian data dan syscall keluar sudah disediakan. Kamu hanya perlu menulis dua syscall write.
Coba sendiri
section .data
partOne db 'Good', 0x0a
partOneLen equ $-partOne
partTwo db 'bye', 0x0a
partTwoLen equ $-partTwo
section .text
global _start
_start:
; TODO: Cetak partOne menggunakan syscall write
; TODO: Cetak partTwo menggunakan syscall write
mov rax, 60
mov rdi, 0
syscall
Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
Latihan sendiri: Playground Assembly