Anda di halaman 1dari 5

BAB 6

SET INTRUKSI DAN PEMOGRAMAN ASSEMBLY MSC51

1. Operand dan Set Intruksi MCS51


Operan dalam pemrograman mikrokontroller adalah data yang tersimpan dalam
memori, register dan input/output (I/O). intruksi yang dikenal secara umum dikelompokan
menjadi beberapa kelompok yaitu intruksi untuk pemindahan data, aritmetika, operasi logika,
pengaturan aliran program dan beberapa hal khusus, kombinasi dari instruksi dan operan
itulah yang membentuk intruksi pengaturan kerja mikrokontroller.
2 Mode Pengalamatan dalam MCS51
Data ataupun operan bisa berada ditempat yang berbeda sehingga dikenal beberapa
cara untuk mengakses data operan tersebut yang dinamakan sebagai mode pengalamatan
(Addressing Mode) antara lain yaitu :
Pengalamatan Langsung (Direct Addressing)

Pada mode ini operand ditentukan dari sebuah alamat 8 bit. Hanya berlaku untuk

RAM internal dan SFR.

Contoh: MOV A,7FH (isi accumulator dengan isi alamat 7Fh)

Pengalamatan Tidak Langsung (Indirect Addressing)

Mode ini menggunakan Register tertentu berisi Data yang menunjukan Alamat. Bisa

berlaku untuk internal dan external RAM. Register untuk menunjukkan alamat

tersebut adalah R0 atau R1, maupun Stack Pointer untuk operasi 8 bit. Untuk

mengakses 16 bit alamat digunakan data pointer DPTR.

Contoh: MOV A,@R0 (isi accumulator dengan alamat yang ditunjukkan oleh isi R0)

Pengalamatan Register

Pengalamatan mode ini lebih effisien dan mengeleminasi satu byte alamat

Contoh: MOV A,R7

Immediate Constant

Sebuah nilai konstanta dapat mengikuti opcode dalam Program memori

Contoh: MOV A,#20h (Mengisi accumulator dengan data 20h)


Pengalamatan Bit

Pengalamatan bit adalah penunjukan alamat lokasi bit baik dalam RAM internal (byte

32 sampai 47) atau bit perangkat keras. Untuk melakukan pengalamatan bit digunakan

symbol titik (.), misalnya FLAGS.3, 40.5, 21H.1 dan ACC.7. Tabel dibawah

menunjukan pengalamatan bit pada mikrokontroller AT89C51

Tabel 6.1 Spesial function register (SFR)

Simbol Posisi Bit Alamat Bit Nama


CY PSW.7 D7H Carry Flag
AC PSW.6 D6H Auxilliary carry falg
F0 PSW.5 D5H Flag 0
RS1 PSW.4 D4H Reg. Bank Select Bit 1
RS0 PSW.3 D3H Reg Bank Select Bit 0
OV PSW.2 D2H Overflow Flag
P PSW0 D0H Parity Flag
TF1 TCON.7 8Fh Timer 1 overflow flag
TR1 TCON.6 8EH Timer run control bit
TF0 TCON.5 8DH Timer 0 overflow flag
TR0 TCON.4 8CH Timer 0 run control bit
IE1 TCON.3 8BH Interupt 1 edge flag
IT1 TCON.2 8AH Interupt 1 type control
IE0 TCON.1 89H Interupt 0 edge flag
IT0 TCON.0 88H Interupt 0 type control
SM0 SCON.7 9FH Serial Mode control bit 0
SM1 SCON.6 9EH Serial mode control bit 1
SM2 SCON.5 9DH Serial mode control bit 2
REN SCON.4 9CH Reciever enable
TB8 SCON.3 9BH Transmit bit 8
RB8 SCON.2 9AH Receiver bit 8
TI SCON.1 99H Transmit interrupt flag
RI SCON.0 98H Receive Interupt flag
EA IE.7 AFH Enable all interupr
ES IE.4 ACH Enable serial port interrupt
ET1 IE.3 ABH Enable Timer 1 Interupt
EX1 IE.2 AAH Enable external Interupt 1
ET0 IE.1 A9H Enable Timer 0 interupt
EX0 IE.0 A8H Enable external interrupt 0
PS IP.4 BCH Serial port interrupt priority
PT1 IP.3 BBH Timer 1 interupt priority
PX1 IP.2 BAH External interrupt priority
PT0 IP.1 B9H Timer 0 interupt priority
PX0 IP.0 B8H External interrupt 0 priority

3 Perangkat Intruksi
Mikrokontroller AT89C51 memiliki 256 perangkat intruksi. Seluruh intruksi dapat
dikelompokan dalam 4 bagian yang meliputi intruksi 1 byte sampai 4 byte. Apabila frekuensi
clock mikrokontroller yang digunakan adalah 12 Mhz, kecepatan pelaksanaan intruksi akan
bervarias dari 1 hingga mikrodetik. Perangkat intruksi mikrokontroller AT89C51 dapat dibagi
menjadi lima kelompok sebagai berikut :
Intruksi Transfer data
Intruksi ini memindahkan data antara register-register, memori-memori, register-
memori, antar muka register dan antar muka memori.
Tabel 6.2 Intruksi Transfer Data

Instruksi Aritmatika
Intruksi ini melaksanakan operasi aritmatika yang meluputi penjumlahan,
pengurangan, penambahan satu (inkremen), pengurangan satu (dekremen), perkalian dan
pembagian.
Tabel 6.3 Intruksi Aritmatika

Instruksi Logika dan Manupulasi Bit


Instruksi ini melaksanakan operasi Boolean (AND, OR, XOR), perbandingan,
pergeseran dan komplemen data.
Tabel 6.4 Intruksi Logika dan manupulasi Bit

Instruksi Percabangan
Instruksi ini mengubah urutan normal pelaksanaan suatu program. Dengan instruksi
ini program yang sedang dilaksanakan akan mencabang ke suatu alamat tertentu. Intruksi
percabangan dibedakan atas 2 yaitu : percabangan bersyarat dan percabangan tanpa syarat.
Tabel 6.5 Intruksi Percabangan

6.4 Aturan Pembuatan Program Assebler AT89C51


Program bahasa assembly berisikan :

Intruksi-intruksi mesin

Pengarah-pengarah assembler
Kontrol-kontrol assembler

Komentar-komentar

Intruksi-intruksi mesin merupakan mnemonic yang menyatakan suatu instruksi yang

bisa dijalankan (misalnya MOV). Pengarah assembler (assembler directive) merupakan

intruksi ke program assembler yang mendefinisikan struktur program, symbol-simbol, data,

konstanta dan lain-lain (misalnya ORG). Kontrol-kontrol assembler mengatur (menentukan)

mode-mode assembler dan aliran assembly langsung (misalnya $TITLE). Komentar perlu

ditulis agar program mudah dibaca.

Baris-baris program yang mengandung instruksi mesin atau pengarah assembler harus

mengikuti aturan program assembler ASM51. masing-masing baris atas beberapa field yang

dipisahkan dengan spasi atau tabulasi. Format umumnya :

[label :] mnemonic [operand] [,operand] [] [; komentar]

contoh pembuatan program assembler

ORG ; INISIALISASI ALAMAT AWAL


0000H
LJMP START ; LOMPAT KE LABEL START

ORG
0100H ; AWAL PROGRAM YANG AKAN DIJALANKAN
START :
ISI PROGRAM ASSEMBLER
.
.
.
END
Catatan :

Setiap pembuatan program tidak boleh di mulai dari alamat 0000H. jika pembuatan

program di mulai dari alamat 0000H maka program dipastikan tidak akan berjalan sebab

0000 di isi oleh intrupt reset. Sebaiknya pembuatan program di mulai dari alamat memori

0100h agar tidak terjadi cras dengan interrupt yang lain.

Anda mungkin juga menyukai