Tipe Data Dan Directive Pada MCS-51

| | Tidak ada komentar
Pada artikel ini akan dibahas tentang beberapa tipe data dan directive apa saja yang didukung oleh assembler dari keluarga 8051. Pada dasarnya, keluarga 8051 hanya memiliki 1 jenis tipe data, yaitu 8-bit. Ukuran dari setiap registernya adalah 8-bit. Jika ternyata data yang hendak diproses ternyata lebih besar dari 8–bit, maka programer harus memecah data menjadi beberapa data 8-bit agar dapat diproses oleh CPU.

DB (Define Byte)

Directive DB ini digunakan secara luas dalam proses assembly oleh assembler. Directive ini digunakan untuk mendefinisikan data 8-bit pada memori program. Saat DB digunakan untuk medefinisikan suatu data, maka data tersebut dapat berupa bilangan desimal, biner, hex, ataupun karakter-karakter ASCII. Untuk desimal, simbol "D" atau "d" setelah bilangan angka desimal boleh ditambahkan atau tidak. Walaupun demikian data desimal tersebut akan dikonversikan menjadi bilangan hex oleh assembler. Untuk mendefinisikan karakter ASCII, maka cukup mudah, yakni dengan menempatkan simbol tanda petik satu atau quotation mark, misalnya (‘seperti ini’). Kemudian assembler akan mengubah setiap karakter ASCII tersebut menjadi kode-kode hex seperti yang sudah diatur dalam format ASCII. Perhatikan beberapa contoh penggunaan DB dibawah ini:
        ORG  500H
DATA1:  DB   28                 ;DESIMAL (1C dalam hex)
DATA2:  DB   00110101B          ;BINER   (35 dalam hex)
DATA3:  DB   39H                ;HEKSADESIMAL
        ORG  510H
DATA4:  DB   "2591"             ;BILANGAN ASCII
        ORG  51BH
DATA5:  DB   "Bespus Community" ;KARAKTER ASCII
Baik tanda kutip tunggal ataupun ganda, keduanya dapat digunakan pada string ASCII. Hal ini akan berguna dalam kasus dimana sebuah string berisi tanda kutip tunggal, seperti "Al-Qur'an". DB juga dapat digunakan untuk mengalokasikan memori dalam byte-sized chunks.

ORG (Origin)

Directive ORG digunakan untuk mengindikasikan awal dari alamat. Artinya adalah kode berikutnya akan ditempatkan oleh assembler yang berawal pada alamat yang dideklarasikan oleh direcive ORG ini. Bilangan setelah simbol ORG ini boleh berbentuk desimal maupun hex. Jika bilangan ternyata tidak diikuti oleh symbol "h", maka nanti assembler akan merubahnya menjadi bentuk hex.

EQU (Equate)

Directive ini digunakan untuk mendefinisikan sebuah konstanta tanpa menuntut disediakannya sebuah lokasi memori. Biasanya simbol EQU ini digunakan sebagai data masukan langsung (immediate). Untuk lebih jelasnya dapat anda lihat pada contoh dibawah ini:
     COUNT  EQU 25
     ...    ...
     MOV    R3,#COUNT
Ketika menjalankan instruksi "MOV R3,#COUNT", register R3 akan diisikan dengan nilai 25 (perhatikan tanda #). Apa keuntungan dari penggunaan EQU? Asumsikan bahwa ada sebuah konstanta (nilai tetap) yang digunakan dibeberapa tempat dalam suatu program, dan suatu ketika programmer ingin mengubah nilai tersebut. Dengan menggunakan EQU, programer hanya harus mengubahnya sekali dibagian EQU saja dan assemblerlah yang akan mengubah seluruh konstanta yang bersangkutan tersebut.

Directive END

Pseudocode penting lainnya adalah directive END. Dimana directive ini akan memberitahukan kepada assembler bahwa disitulah akhir dari suatu program assembly 8051, yang berarti bahwa pada kode sumber jika terdapat kode lainnya setelah directive END maka akan diabaikan oleh assembler. Beberapa assembler menggunakan ".END" (dengan tanda titik) bukan "END".

Aturan Untuk Label Dalam Bahasa Assembly

Dalam memilih nama dari sebuah label, idealnya adalah nama yang sangat singkat namun penuh arti. Sehingga programmer dapat membuat program menjadi sangat mudah dan cepat. Ada beberapa aturan yang harus programer ikuti. Pertama adalah Setiap Label (atau simbol) haruslah unik (tidak sama). Karakter yang boleh digunakan untuk label bisa terdiri dari huruf abjad, angka 0 s/d 9, dan karakter khusus seperti tanda tanya (?), titik (.), at (@), garis bawah (_), dan tanda dollar ($). Namun karakter pertama dari nama label harus berupa huruf abjad, dengan kata lain tidak boleh berupa angka. Setiap assembler memiliki beberapa kata "reserved" yang tidak boleh digunakan sebagai label dalam program. Terutama adalah kata-kata yang telah digunakan untuk instruksi mnemonic, seperti "MOV" dan "ADD". Selain mnemonic, ada beberapa kata lain yang tidak boleh digunakan. Untuk lebih jelasnya, periksalah kembali assembler yang anda gunakan.

Sumber:
1. Mazidi, Muhammad Ali., The 8051 Microcontroller and Embedded Systems - Using Assembly and C.

Tidak ada komentar

Posting Komentar