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.
Sumber:
1. Mazidi, Muhammad Ali., The 8051 Microcontroller and Embedded Systems - Using Assembly and C.
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 ASCIIBaik 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,#COUNTKetika 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.

Daftar tersebut menunjukkan alamat 0000 berisi 7D, dimana opcodenya adalah untuk mengisikan sebuah nilai ke register R5, dan alamat 0001 berisi operand (dalam daftar, terlihat 25h) yang diisikan ke dalam R5. Sehingga instruksi "MOV R5,#25h" memiliki kode mesin "7D25" dimana 7D adalah opcode dan 25 adalah operand. Hal yang sama juga terlihat pada kode mesin 7F34 yang berlokasi di alamat 0002 dan 0003, dimana ini merupakan representasi dari instruksi "MOV R7,#34h". Termasuk juga untuk kode mesin 7400 yang berada pada alamat 0004 dan 0005 adalah representasi dari instruksi "MOV A,#0". Lokasi memori 0006 memiliki opcode 2D, dimana itu adalah opcode untuk instruksi "ADD A,R5" dan lokasi memori 0007 berisi 2F yang merupakan opcode untuk instruksi "ADD A,R7". Opcode dari intstruksi "ADD A,#12h" berlokasi pada alamat 0009. memory lokasi 000A berisi opcode dari instruksi SJMP. Sedangkan alamat target dari opcode SJMP tersebut berada pada alamat 000B.
