Struktur Bahasa Assembler uC MCS51

download Struktur Bahasa Assembler uC MCS51

of 5

Transcript of Struktur Bahasa Assembler uC MCS51

Struktur Bahasa Assembler Mikrokontroller MCS51

1of | 5

Pendahuluan Bahasa assembler atau bahasa mesin adalah bahasa tingkat low level atau tingkat rendah. Disebut bahasa mesin karena bahasa assembler mendekati bahasa mesin yaitu suatu mnemonic-mnemonic yang jika diolah oleh compiler langsung dikonversikan menjadi kode-kode heksadesimal yang dikenali oleh mesin (dalam hal ini adalah mikrokontroller). Berbeda dengan bahasa C yang mendekati bahasa manusia, apabila diolah oleh compiler maka bahasa pemrograman tersebut akan diubah terlebih dahulu menjadi bahasa assembler kemudian diubah lagi menjadi kode heksadesimal. Bahkan pemrograman yang lebih mutakhir yaitu memprogram menggunakan Flowchart (nama programnya FlowCode) yaitu programmer cukup memprogram menggunakan diagram alir yang menunjukkan suatu siklus / tahapan proses. Oleh compiler flowcode ini dikonversi terlebih dahulu menjadi bahasa C (atau sejenisnya) lalu diubah lagi menjadi bahasa Assembler dan terakhir dikonversi menjadi kode-kode heksadesimal. Semakin panjang suatu program maka semakin panjang juga proses yang terjadi pada mikrokontroller tersebut dan juga memperlambat eksekusi program secara keseluruhan. Oleh sebab itu mengapa program yang ditulis dalam bahasa assembler lebih cepat dieksekusi oleh mikrokontroller dibanding jika ditulis dengan menggunakan bahasa C atau bahasa pemrograman lainnya. Akan tetapi menulis program dalam bahasa assembler membutuhkan pengetahuan yang lebih dalam dan luas seperti mengetahui alamat-alamat register mikrokontroller, register fungsi khusus, nilai-nilai register, inisialisasi register, mnemonic assembler, siklus program, waktu eksekusi suatu mnemonic, penggunaan ram, dll.

www.PayZTronics-store.com | MCU Eduboard : lisensi Universitas Dipengoro, Semarang Tulisan ini dibuat berdasarkan pengetahuan dan pengalaman PayZTronics. Perhatian : Jangan menyalin atau memperbanyak tanpa seizin PayZTronics.

Setiap mikrokontroller yang dibuat oleh perusahaan yang berbeda memiliki bahasa pemrograman yang berbeda. Misalnya mikrokontroller yang dibuat oleh Atmel, PIC, Motorolla, dan Dallas memiliki jenis mikrokontroller sendiri dan memiliki bahasa pemrograman sendiri. Selain itu mikrokontroller yang dibuat perusahaan yang sama tetapi jenis / keluarga mikrokontrollernya berbeda juga memiliki bahasa pemrograman yang berbeda. Misalnya mikrokontroller keluaran Atmel untuk keluarga MCS51 dan AVR memiliki bahasa pemrograman assembler yang berbeda. Struktur Bahasa Assembler MCS51 Salah satu jenis mikrokontroller buatan Atmel yang sempat popular adalah mikrokontroller keluarga MCS51 yaitu mikrokontroller CMOS 8 bit. Mnemonicmnemonic dalam bahasa assembler yang dapat digunakan untuk memprogram mikrokontroller MCS51 dapat dibaca pada file MCS51 Instruction Set.pdf. Mnemonic atau program yang ditulis dalam bahasa assembler selanjutnya diubah menjadi kodekode heksadesimal oleh compiler. Compiler yang digunakan adalah compiler ASM51 yang dibuat oleh Metalink Corp. ASM51.exe adalah compiler yang akan mengubah program dalam bahasa assembler menjadi kode-kode heksadesimal oleh sebab itu programmer harus mengikuti aturan-aturan penulisan program yang telah ditentukan oleh compiler ASM51, apabila tidak sesuai dengan aturan-aturan yang ditentukan oleh compiler maka akan menyebabkan kesalahan / error pada program tersebut. Aturan-aturan penulisan program menggunakan compiler ASM51 dicantumkan pada file ASM_MAN.doc, ASM_REV.doc, sedangkan contoh program yang dituliskan dalam bahasa assembler pada file BMULB.asm. Baca dulu file-file tersebut untuk memahami cara-cara penulisan program bahasa assembler menggunakan compiler ASM51.

2of | 5

www.PayZTronics-store.com | MCU Eduboard : lisensi Universitas Dipengoro, Semarang Tulisan ini dibuat berdasarkan pengetahuan dan pengalaman PayZTronics. Perhatian : Jangan menyalin atau memperbanyak tanpa seizin PayZTronics.

Percobaan 1 : Struktur Dasar Jalankan aplikasi text editor seperti NOTEPAD.exe yang tersedia. Pada NotePad kemudian File > Save dan simpan dengan nama Struktur.asm dengan Save as type adalah All Files.

3of | 5

Akan muncul file dengan tipe assembler source file pada folder Assembler MCS51.

Program sebagai berikut :$DATE(Maret 2011) $NOPAGING $MOD51 PORT_led EQU Org INIT_uC: MOV MOV MOV MOV MAIN: ;isi program utama ;isi program utama ;isi program utama END PORT_led,#00H P1,#0 P2,#00000000B P3,#00 ;setelah titik koma ;adalah komentar P0 00H ;definisi PORT0 ; alamat awal pada 0000H

www.PayZTronics-store.com | MCU Eduboard : lisensi Universitas Dipengoro, Semarang Tulisan ini dibuat berdasarkan pengetahuan dan pengalaman PayZTronics. Perhatian : Jangan menyalin atau memperbanyak tanpa seizin PayZTronics.

Percobaan 2 : Struktur Dasar dan Fungsi. Program sebagai berikut :; Program struktur Assembler MCS51 ; Xtall 11,059200 MHz $MOD51 PORT_led EQU Org INIT_uC: CALL WHILE_1: ; program utama ACALL LCALL SJMP FUNGSI1: ; isi program fungsi 1 RET FUNGSI2: ; isi program fungsi 2 RET FUNGSI3: ; isi program fungsi 3 RET END ;kembali ke pemanggil ;End of Program ;kembali ke pemanggil ;program rutin fungsi 3 ;kembali ke pemanggil ;program rutin fungsi 2 FUNGSI2 FUNGSI3 WHILE_1 ;Loop forever ;program rutin fungsi 1 FUNGSI1 P0 00H ;Assembler Control ;Assembler Directive ;alamat awal pada 0000H ;Label ;Inisialisasi Awal

4of | 5

www.PayZTronics-store.com | MCU Eduboard : lisensi Universitas Dipengoro, Semarang Tulisan ini dibuat berdasarkan pengetahuan dan pengalaman PayZTronics. Perhatian : Jangan menyalin atau memperbanyak tanpa seizin PayZTronics.

Percobaan 3 : Program Counter dan Data Transfer Program sebagai berikut :; Program struktur Assembler MCS51 ; Xtall 11,059200 MHz $MOD51 Org WHILE_1: MOV MOV MOV MOV MOV MOV MOV MOV MOV PUSH MOV MOV POP MOV XCH SJMP END R0,#0AH R1,#0EFH 3FH,#01010101B A,3FH A,R0 A,#30H B,A 3FH,A DPTR,#65535 3FH 3FH,#00001111H A,3FH 3FH A,3FH A,R1 WHILE_1 ;Loop forever ;End of Program 00H ;Assembler Control ;alamat awal pada 0000H

5of | 5

Simulasikan coding tersebut menggunakan simulator yang ada untuk melihat perubahan nilai register-register dan program counter yang terjadi pada mikrokontroller MCS51.

www.PayZTronics-store.com | MCU Eduboard : lisensi Universitas Dipengoro, Semarang Tulisan ini dibuat berdasarkan pengetahuan dan pengalaman PayZTronics. Perhatian : Jangan menyalin atau memperbanyak tanpa seizin PayZTronics.