1. JMP (Jump):
Instruksi JMP MULAI digunakan untuk melompat langsung ke bagian program yang diberi label MULAI, melewati semua instruksi di antaranya. Ini biasanya digunakan untuk mengatur alur eksekusi program, seperti melewati bagian inisialisasi atau kode yang tidak perlu dijalankan pada awal program. Dengan menggunakan instruksi ini, program dapat memulai eksekusinya dari titik yang diinginkan, menghindari bagian kode yang mungkin hanya berfungsi sebagai deklarasi data.
2. DB (Define Byte):
Instruksi DB berfungsi untuk mendefinisikan data yang disimpan di memori dalam bentuk byte. Ini memungkinkan program untuk menyimpan pesan yang nantinya akan dicetak atau diproses.
3. MOV (Move):
Instruksi MOV digunakan untuk memindahkan data antar register atau dari memori ke register (dan sebaliknya). Sebagai contoh, `MOV AH, 09H` memindahkan nilai `09H` ke register `AH`, yang mengatur fungsi interrupt untuk mencetak string di layar. Instruksi `MOV` adalah salah satu instruksi paling dasar dalam assembly untuk memanipulasi data dan mengarahkan eksekusi berdasarkan nilai tertentu.
4. INT (Interrupt):
Instruksi `INT 21H` digunakan untuk memanggil layanan dari sistem operasi DOS, di mana nilai `21H` menunjukkan bahwa layanan DOS akan dipanggil. Nilai di dalam register `AH` menentukan fungsi spesifik yang akan dieksekusi, seperti mencetak string ke layar (`AH=09H`) atau menerima input dari keyboard. Dengan menggunakan interrupt ini, program dapat berinteraksi dengan perangkat keras melalui sistem operasi tanpa perlu menulis kode pengendali perangkat keras yang kompleks, sehingga mempermudah operasi I/O (Input/Output).
5. PUSH dan POP:
Instruksi `PUSH` dan `POP` digunakan untuk menyimpan dan mengambil data dari stack, sebuah area memori yang digunakan untuk menyimpan data sementara. Ini berguna untuk menjaga nilai register agar tidak hilang saat register tersebut perlu digunakan untuk operasi lain, dan kemudian mengembalikan nilai aslinya untuk melanjutkan eksekusi dengan data yang benar.
6. INC (Increment):
Instruksi `INC` digunakan untuk menambahkan 1 ke nilai yang tersimpan dalam register tertentu. Misalnya, `INC DX` menambahkan 1 ke nilai dalam register `DX`, yang bisa digunakan untuk mengarahkan pointer ke elemen berikutnya dalam array atau string. Dalam konteks program ini, instruksi `INC` digunakan untuk menggerakkan pointer dalam memori agar menunjuk ke karakter atau byte berikutnya yang akan diproses, seperti memproses karakter dalam input yang dimasukkan oleh pengguna.
7. XOR (Exclusive OR):
Instruksi `XOR DH, DH` digunakan untuk mengosongkan register `DH` dengan meng-xor nilai dalam register tersebut dengan dirinya sendiri. Operasi XOR akan menghasilkan 0 jika kedua operandnya sama, sehingga ini adalah cara yang cepat dan efisien untuk mengatur ulang register ke nilai 0. Ini sering digunakan dalam assembly untuk membersihkan register sebelum digunakan kembali dalam perhitungan atau operasi lainnya untuk memastikan tidak ada sisa nilai dari operasi sebelumnya.
8. ADD (Add):
Instruksi `ADD BX, DX` menambahkan nilai dalam register `DX` ke register `BX`. Ini digunakan untuk mengubah alamat yang ditunjukkan oleh `BX` berdasarkan nilai offset yang ada di `DX`. Dalam program ini, instruksi ini membantu mengatur pointer untuk menunjuk ke lokasi yang benar dalam memori, terutama saat memanipulasi data yang dimasukkan oleh pengguna. Dengan menambahkan offset, program dapat mengakses dan memodifikasi bagian memori yang sesuai, seperti menambahkan karakter `$` ke akhir string input.
9. MOV [BX], DL:
Instruksi ini menyalin nilai dalam register `DL` ke alamat memori yang ditunjuk oleh register `BX`. Ini digunakan untuk menulis data langsung ke memori pada posisi yang ditentukan oleh `BX`, yang biasanya adalah bagian dari array atau string. Dalam konteks program ini, instruksi ini menambahkan karakter `$` ke akhir input pengguna untuk menandai akhir dari string, sehingga string tersebut dapat diproses atau ditampilkan dengan benar oleh fungsi-fungsi yang menggunakan tanda `$` sebagai penanda akhir string.
10. MOV AH, 4CH:
Instruksi ini, dikombinasikan dengan `INT 21H`, digunakan untuk mengakhiri program dan kembali ke DOS. Nilai `4CH` di register `AH` memberi tahu DOS bahwa program ingin keluar, dan sistem operasi akan membersihkan memori yang digunakan oleh program serta mengembalikan kontrol ke pengguna atau sistem. Ini adalah cara standar dalam assembly DOS untuk mengakhiri program secara bersih dan memastikan tidak ada sumber daya yang tertinggal terbuka atau tidak digunakan.
11. OFFSET:
Penggunaan `OFFSET` digunakan untuk mendapatkan alamat awal dari suatu label atau variabel di memori. Ini memungkinkan program untuk mengarahkan register ke lokasi memori tertentu di mana data atau string disimpan. Dalam program ini, OFFSET digunakan untuk mengarahkan register `DX` ke string yang akan ditampilkan atau diolah, sehingga fungsi-fungsi interrupt DOS dapat mengakses data yang benar.
12. Label:
Label seperti `MULAI:` digunakan untuk menandai bagian-bagian tertentu dalam program, sehingga instruksi seperti `JMP` dapat melompat ke bagian tersebut. Label membantu dalam mengatur alur eksekusi program dengan memberikan titik acuan di mana program dapat mulai atau melanjutkan eksekusinya. Dalam assembly, penggunaan label sangat penting untuk menciptakan struktur program yang logis dan mudah diikuti, terutama dalam program yang lebih kompleks dengan banyak cabang eksekusi.
13. Komentar:
Komentar dalam program assembly ditandai dengan tanda `;`, dan digunakan untuk memberikan penjelasan tentang kode yang mengikuti tanda tersebut. Komentar tidak dieksekusi oleh assembler dan hanya berfungsi sebagai dokumentasi untuk programmer. Ini sangat penting dalam assembly karena instruksi assembly sering kali sangat singkat dan tidak selalu mudah dipahami hanya dari kodenya saja. Komentar membantu menjelaskan apa yang dilakukan oleh bagian tertentu dari kode, sehingga memudahkan pemeliharaan dan pembacaan kode di masa depan.
Komentar
Posting Komentar