10 Januari 2011

Perintah yang Digunakan Dalam Bahasa MC51

Perintah-perintah yang digunakan dalam bahasa MCS51
  •         REGISTER
            Merupakan sebagian dari microprocessor yang dapat diakses dengan kecepatan yang sangat tinggi. Dalam melakukan pekerjaan mikroprosessor selalu menggunakan register-register sebgai perantaranya.
Jenis-jenis register dibagi menjadi 5 bagian:
  1. Segmen register
  2. Pointer dan indeks register
  3. General purpose register
  4. Index pointer register
  5. Flags register
1. Segmen register
Register yang termasuk dalam kelompok ini terdiri atas :
a)      Register CS (Code Segmen) digunakan untuk menunjukkan tempat dari segmen yang sedang aktif.
b)      Register SS (Stack Segmen) digunakan untuk menunjukkan letak dari segmen yang digunakan oleh stack.
c)      Register DS (Data Segmen) digunakan untuk menunjukkan segmen dimana letak data-data pada program yang disimpan.
d)      Register ES (Extra Segmen) digunakan untuk menunjukkan suatu alamat di memori, misalkan alamat memori video.
2. Pointer dan index register
Register ini besarnya 16 bit. Register yang termasuk dalam kelompok ini adalah:
a)      Register SP (Stack Pointer) yang berpasangan dengan register SS (Segmen Register) (SS:SP) digunakan untuk penunjuk (penyimpan data) alamat (offset) dari LIFO satack memory, biasanya stack offset register. Terlibat langsung dalam instruksi PUSH dan POP, sedangkan register BP (Base Pointer) yang berpasangan dengan resister SS (SS:BP) mencatat suatu alamat di memori tempat data.
b)      Register BP (Base Pointer) digunakan untuk menunjuk alamat (offset) dari array (array merupakan sekumpulan data yang berindeks) yang terletak dalam stack memory.
c)      Register SI (Source Index) digunakan untuk menunjuka lamat (Offset) dari source (sumber) bagi intruksi-intruksi yang termasuk dalam string intruction (operasi blok transfer), seperti MOVS, SCAS, CMPS, LODS.
d)      Register DI (Destinition Index) biasanya dipakai sebagai penunjuk alamat (offset) dari destinition (tujuan) bagi operasi yang menggunakan string instruction.

3.  General purpose register
Yang termasuk dalam kelompok ini adalah; AX, BX, CX, dan DX yang masing-masing terdiri dari 16 bit. Register-register 16 bit dari kelompok ini mempunyai suatu ciri khas yaitu dapat dipisah menjadi dua bagian dengan masing-masing bagian terdiri atas 8 bit. Akhiran H menunjukkan High sedangkan akhiran L menunjukkan Low.
a)      Register AX, sering digunakan untuk menyimpan ALU dan hasil perhitungan sementara dari operasi logika atau aritmatika tersebut. Selain itu register ini juga digunakan untuk menyimpan sementara data yang akan dikirim ke PORT atau yang datang dari PORT untuk diproses.
b)      Register BX, digunakan untuk insteruksi yang memerluksn hitungan (count) seperti ROLL, LOOP dll, misalnya pada kasus iterasi suatu loop atau menghitung banyaknya karakter dalam suatu string.
c)      Register DX, digunakan menyimpan nilai overflowdari suatu opersi aritmatik dan alamat I/O sehingga sering digunakan untuk mengakses data I/O BUS melalui instruksi IN/OUT  


4.  Index pointer register
Register IP berpasangan dengan CS (CS:IP) menunjukkan alamat di memory tempat dari instruksi selanjutnya yang akan dieksekusi.
a)      Register IP biasanya digunkan secara bersama-sama SI, dalam melakukan operasi blok ransfer berarti SI harus menyimpan dahulu alamat awal dari data sumber dan DI menyimpan alamat awal dari data tujuan.
b)      IP (Intruction Pointer) menunjukkan alamat instruksi di memory yang akan dilaksanakan oleh mikroprosessor, microprosessor selalu menjalankan instruksi yang berada di memory yang ditunjuk oleh alamat CS:IP.






5.  Flags register
Sesuai dengan namanya flags (bendera) register ini menunjukkan kondisi dari suatu keadaan (Yes/No). Karena setiap keadaan dapat digunakan satu bit saja, maka sesui dengan jumlah bitnya flags register ini mampu mencatatsampai 16 keadaan. Contohnya:
a)      OF (Overflow Flag) jika terjadi overflow pada opersi aritmatika, bit ini akan bernilai menjadi 1.
b)      SF (Sign Flag) jika digunakan bilangan bertranda bit ini akan bernilai 1.
c)      ZF (Zero Flag) jika hasil operasi menghasilkan nila 0, bit ini akan bernialai 1.
d)      CF (Carry Flag) jika terjadi borrow operasi pengurangan atau carry pada penjumlahan, bit ini akan benilai 1.
e)      PF (Parity Flag) digunakan pada operasi string untuk menunjukkan arah proses,
f)       IF (Interrupt Flag) CPU akan mengabaikan interrupt yang terjadi jika bit ini bernilai 0
g)      TF (Trap Flag) digunakan terutama untuk debugging, dengan opersi Step by step.

·        $mod51
Diletakkan di awal baris program untuk menandakan bahwa kita menggunakan DT-51
·        ORG (SET ORIGIN)
Bentuk umumnya adalah: ORG ekspresi
Pengarah ORG digunakan untuk menentukan lokasi awal program untuk pernyataan yang mengikuti. Contoh : ORG 100H; awal program di alamat 100H
·        END
Pengarah END digunakan untuk pernyataan paling akhir dari program. Tidak boleh menggunakan label atau pernyataan setelah END.
·        CSEG (Code Segmen)
Digunakan untuk memberitahuka assembler bahwa kita akan mulai menggunakan Code Segmet. Code segment digunakan untuk menyimpan program yang natinya akan dijalankan
·        LABEL
Sebuah label mewakili suatu alamat dari instruksi (data) yang mengikat. Label ini digunakan sebagai operan pada instruksi-instruksipercabangan. Label tidak boleh mengandung spasi. Bentuk umum dari label adalah; mov sp,#30H
·        $
Tanda $ digunakan untuk menyatakan nomor memory dari baris bersangkutan
·        SETB (Set Bit)
Perintah ini digunakan untuk memberi nilai “1” pada data 1 bit. Bentuk umum Set Bit adalah SETB  [operan] contoh: SETB P1.0
·        CLR (Clear Bit)
Perintah ini digunakan untuk memberi nilai “0” pada data 1 bit. Bentuk umum clear adalah CLR [operan] contoh: CLR P1.1
·        KOMENTAR
Komentar harus diawali dengan titik koma (;) sebuah baris akan dianggap sebagai komentar jika diawali dengan titik koma (;) contoh : CLR P1.1 ; perintah untuk mengeset bit P1.1 dengan nilai bit = 0.


Artikel Terkait:

Tidak ada komentar:

Posting Komentar