Menu
CoddyTech

Cara kerja instruksi

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

Kamu tahu bahwa CPU menjalankan instruksi satu per satu. Namun, bagaimana CPU tahu instruksi mana yang harus dijalankan berikutnya? Di mana instruksi disimpan? Dan seperti apa bentuk instruksi sebenarnya?

Instruksi adalah angka.

Ini adalah kebenaran mendasar tentang komputer. Semuanya adalah angka. Data yang kamu gunakan (seperti angka 42) adalah angka. Alamat tempat data tersimpan (seperti 1000) adalah angka. Instruksi itu sendiri (seperti mov, add, cmp) juga merupakan angka.

Saat kamu menulis kode assembly seperti mov rax, 5, assembler mengubah teks yang dapat dibaca manusia ini menjadi angka yang dipahami CPU. Angka ini disebut kode instruksi.

Di mana instruksi disimpan?

Instruksi disimpan di memori, sama seperti data. Tidak ada memori terpisah untuk instruksi. Memori yang sama menyimpan keduanya:

  • Data (angka, karakter, array)
  • Instruksi (program itu sendiri)

Byte itu sendiri tidak menunjukkan apakah byte tersebut merupakan instruksi atau data. CPU memperlakukan apa pun yang berada di alamat memori pada Penghitung Program sebagai instruksi berikutnya. Pada sistem modern, sistem operasi menandai memori yang menyimpan instruksi program sebagai dapat dieksekusi, dan CPU menolak menjalankan byte dari memori yang tidak ditandai seperti ini, seperti data program. Kamu telah mempelajari PC secara singkat di Pelajaran 0.1. Sekarang saatnya memahami dengan tepat cara kerjanya.

Program Counter (juga disebut Instruction Pointer) adalah register khusus di dalam CPU. Satu-satunya tugasnya adalah menyimpan alamat memori instruksi berikutnya yang akan dijalankan.

Siklus Fetch-Execute:

CPU mengulangi tiga langkah ini selamanya:

LangkahYang terjadi
1. FETCHMembaca instruksi pada alamat di PC
2. EXECUTEMenjalankan instruksi tersebut
3. ADVANCEMemindahkan PC ke instruksi berikutnya

Contoh sederhana:

Jika PC = 1000, CPU:

  • Mengambil instruksi di alamat 1000
  • Menjalankannya
  • Memindahkan PC ke alamat berikutnya (1000 + ukuran instruksi)

Lalu proses ini berulang dengan nilai PC yang baru.

Seperti apa bentuk sebuah instruksi:

Setiap instruksi memiliki dua bagian:

BagianFungsinyaContoh
OpcodeApa yang harus dilakukanmov, add, cmp
OperandTerhadap apa tindakan dilakukanrax, 5, [result]

Beberapa instruksi memiliki satu operand (seperti inc rax untuk menambahkan 1). Beberapa memiliki dua (seperti mov rax, 5). Beberapa memiliki tiga (seperti add rax, rbx, rcx pada beberapa arsitektur).

Coba sendiri

Pelajaran ini tidak memiliki tantangan kode.

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