Site icon ndoWare

Pemrograman Bahasa Assembly 8051

Pemrograman bahasa assembly dari 8051 membutuhkan pengertian akan template pemrograman, pengarahan assembler dan tipe data, dsb. Diskusi singkat tentang assembler peralatan pemrograman, penghubung, dsb. juga penting saat kita hendak memulai. Pembaca dapat memeriksa peralatan pemrograman dan sistem pengembangan yang tersedia dan mencoba untuk mengerjakan program-program sederhana pada platform. Sebagian besar fitur yang didukung oleh sistem pengembangan 8051 apa pun adalah serupa. Diskusi singkat pada baris ini dibahas di bagian ini.

Assembler-nya, secara umum, mendukung smua alfabet bahasa Inggris, baik upper case dan lower case, dan angka dari 0 hingga 9. Sebagai tambahan @ , $ ; _, juga didukung.

Pengarah ORG (Origin) dan END (END)

Perlu dicatat bahwa perintah pseudo ORG dan END; keduanya adalah pengarah untuk assembler 8051. Pengarah ORG digunakan untuk menunjukkan alamat permulaan dari program sumber. ORG 0100H memberitahu assembler bahwa program sumber dimulai pada alamat 0100H dalam memori program. Alamatnya dapat juga berupa decimal. Sebagai contoh, ORG 0250 akan memberitahu assembler bahwa brogram yang akan di-assemble dimulai pada 250D. Secara serupa, pengarah END menunjukkan akhir dari fail program sumber. Ini adalah baris terakhir dalam program sumber dan assembler akan membiarkan kode sumber apapun setelah pengarah END. Beberapa assembler menggunakan sebuah titik “.ORG” dan “.END” daripada ORG dan END. (Perhatikan apa yang didukung oleh assembler anda)

Pengarah DB (Define Byte) dan EQU (Equate)

Define byte adalah pengarah yang digunakan untuk menjelaskan byte data selebar 8-bit. Lihatlah bagaimana pengarah ini muncul dalam program sumber. Angka yang diberikan pada satu variable dapat berupa desimal, biner, hex atau angka ASCII. Huruf yang mengikuti angka menunjukkan hal tersebuturuf yang mengikutiH. Sebagai contoh, ‘D’ berarti desimal; jadi 35D adalah desimal 35. Secara default, jika tidak ada yang muncul setelah angka, maka itu adalah angka desimal. Yaitu 35 dan 35D adalah desimal 35 yang sama. Untuk angka hex, alfabet “H” harus disertakan setelah angka. Maka 25H adalah angka hex. Secara serupa, angka biner diakhiri oleh alphabet “B”. Bahasa assembly tidak case-sensitive. Untuk mewakilkan angka seperti karakter ASCII, kita menggunakan tanda kutip. Tanda kutip tunggal atau ganda, keduanya dapat digunakan; keduanya didukung. Maka jika sebuah string hendak dijelaskan dalam satu program, ini dapat dilakukan seperti dalam gambar di bawah. Assembler-nya secara otomatis menempatkan kode ASCII berhubungan dengan angka-angka atau karakter ini.

Pengarah equate digunakan untuk menjabarkan sebuah konstanta. Label datanya terhubung dengan nilai konstan; jadi dimanapun label tersebut muncul, konstantanya digantikan untuk label tersebut. Sebagai contoh, nilai 39D dapat dihubungkan ke sebuah label TEMP, seperti di gambar di bawah, dan kemudian dapat dikopikan ke register B dimanapun di dalam program.

Keuntungan dari pengarah EQU adalah jika sebuah konstanta muncul di banyak tempat dalam program maka pemrogram dapat mengubah nilainya, hanya dengan mengubah definisi dari konstanta ini; ini dapat menghemat waktu. Harus diingat bahwa sementara menulis program bahasa assembly, kita tidak semestinya menggunakan kata-kata yang sudah tersimpan atau mnemonic sebagai label. Sebagai contoh, ADD adalah mnemonic untuk perintah 8051; jadi ADD tidak dapat digunakan sebagai label. Secara serupa, ORG atau END tidak dapat digunakan sebagai label. Lebih jauh lagi, nama label haruslah unik.

Template Pemrograman 8051

Template pemrograman 8051 akan memiliki beberapa porsi awalan, lalu program utama dan subrutin akan dituliskan secara berkelanjutan dalam memori program. Perhatikan Contoh Pemrograman #5.2 berikut:

Sebagaimana yang akan terlihat secara detil saat mendiskusikan interrupt, lokasi-lokasi vector yang berhubungan dengan interrupt ini muncul di alamat-alamat yang lebih rendah dalam memori program. Perintah lompat kemudian digunakan untuk menunjuk titik awal alamat subrutin layanan interrupt. Perlu dicatat bahwa subrutin dan layanan interrupt dapa muncul dalam berbagai bentuk urutan. Perhatikan bahwa subrutin layanan interrupt menggunakan perintah RETI, dimana subrutin umum juga menggunakan perintah RETI.

Exit mobile version