Menu
CoddyTech

Bagian .data

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

Di Bab 2, kamu memuat nilai dari memori dan menyimpan nilai ke memori. Namun, dari mana asal memori itu? Siapa yang membuat num1, num2, dan result?

Jawabannya adalah bagian .data. Di sinilah kamu membuat datamu sendiri di memori.

Apa itu bagian .data?

Bagian .data adalah bagian dari program assembly-mu tempat kamu mendefinisikan data yang akan disimpan di memori sebelum programmu dijalankan.

Sintaks:

section .data
    ; Letakkan definisi datamu di sini

Mengapa kamu membutuhkannya:

Tanpa bagian .dataDengan bagian .data
Kamu tidak punya data untuk digunakanKamu bisa membuat angka, string, dan variabel
Alamat memori tidak diketahuiKamu bisa menggunakan label seperti myNumber atau message
Kamu tidak bisa menguji kodemuKamu bisa memuat dan menyimpan data yang kamu buat

Contoh sederhana:

section .data
    age db 25           ; Buat byte bernama "age" dengan nilai 25
    price dw 1000       ; Buat word bernama "price" dengan nilai 1000
    name db 'Bob'       ; Buat string bernama "name" dengan huruf B, o, b

Letaknya di file-filemu:

Ingat pola dua file dari Bab 0:

FileKonten
data.asmsection .data dengan definisi datamu
main.asm%include "data.asm" diikuti section .text dengan kodemu

Apa yang terjadi saat programmu berjalan:

  1. Sistem operasi memuat programmu ke dalam memori
  2. Sistem operasi membaca bagian .data dan menempatkan datamu di alamat memori tertentu
  1. Labelmu (age, price, name) menjadi alamat
  2. Sekarang, kodemu dapat mengakses alamat-alamat ini menggunakan [age], [price], [name]

Aturan penting:

AturanPenjelasan
Simpan datamu bersama-samaKamu dapat membuka section .data lebih dari sekali (assembler akan menggabungkan bagian-bagiannya), tetapi satu section di data.asm lebih mudah dibaca
Label harus unikKamu tidak dapat memiliki dua label age
Data dibuat sebelum kodemu dijalankanData siap digunakan saat _start dimulai

Dalam pelajaran berikutnya, kamu akan belajar cara mendefinisikan berbagai tipe data menggunakan db, dw, dd, dan dq

challenge icon

Tantangan

Tulis kode di file data.asm untuk:

  1. Membuat bagian .data
  2. Membuat byte bernama count dengan nilai 5

Coba sendiri

%include "data.asm"

section .text
    global _start

_start:
    ; Muat nilai dari count ke al
    mov al, [count]
    
    ; Simpan nilainya untuk dicetak
    mov r12, rax
    
    ; Ubah ke ASCII dan cetak (hanya 0-9)
    add al, 48
    mov [digit], al
    
    mov rax, 1
    mov rdi, 1
    mov rsi, digit
    mov rdx, 1
    syscall
    
    ; Keluar
    mov rax, 60
    mov rdi, 0
    syscall

section .bss
    digit resb 1
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