Menu
CoddyTech

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
syscall

Contoh:

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
    syscall

Output:

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 kembaliContoh
Gunakan kembaliCetak sapaan yang sama dengan nama yang berbeda
FleksibilitasCetak pesan yang berbeda berdasarkan kondisi
PengaturanPisahkan pesan yang berbeda di dalam memori

Kamu bisa mencetak string sebanyak yang kamu inginkan:

Cukup ulangi syscall write untuk setiap string.

challenge icon

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
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar

Latihan sendiri: Playground Assembly