Menu
CoddyTech

string dengan db

Termasuk bagian Dasar-Dasar dalam perjalanan Assembly di Coddy. Pelajaran 28 dari 45.

Kamu sudah tahu bahwa db mendefinisikan satu byte. Namun, db juga bisa mendefinisikan string: beberapa byte yang berurutan.

Sintaks:

label db 'text here'

Contoh:

section .data
    message db 'Hello'

Ini membuat 5 byte di memori: 'H', 'e', 'l', 'l', 'o'

Apa yang terjadi di memori:

AlamatByteNilai ASCII
message'H'72
message+1'e'101
message+2'l'108
message+3'l'108
message+4'o'111

Menambahkan baris baru:

Untuk mencetak string dan berpindah ke baris berikutnya, tambahkan 0x0a (karakter baris baru):

section .data
    message db 'Hello', 0x0a

Sekarang string memiliki 6 byte: 'H','e','l','l','o', newline

Beberapa string:

section .data
    hello db 'Hello', 0x0a
    goodbye db 'Goodbye', 0x0a

Mengapa ini penting:

string adalah data yang paling umum kamu gunakan dalam assembly. syscall write (yang akan kamu pelajari di Bab 5) mencetak string dengan membaca byte dari memori sampai mencapai panjang yang kamu berikan.

Catatan penting:

String hanyalah byte. CPU tidak tahu atau peduli bahwa 'H' adalah sebuah huruf. Itu hanyalah angka 72. syscall write menafsirkan angka-angka itu sebagai karakter saat mencetak.

challenge icon

Tantangan

Mudah

Buat string bernama greeting dengan nilai 'Hi' diikuti karakter baris baru (0x0a) di bagian .data.

Coba sendiri

%include "data.asm"

section .text
    global _start

_start:
    ; Cetak string menggunakan syscall write
    mov rax, 1
    mov rdi, 1
    mov rsi, greeting
    mov rdx, 3           ; 'H', 'i', baris baru = 3 byte
    syscall
    
    ; Keluar
    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

Cari kode karakter apa pun: Konverter ASCII