Kamis, 08 Januari 2009

OPERASI SEDERHANA DENGAN MENGGUNAKAN DEBUG

Program bahasa rakitan dengan ekstensi .com adalah program bahasa rakitan 1 segment yang berarti program akan diload kedalam memory dengan single segmen (tidak ada lompatan antar segmen) sehingga program akan bergerak dalam segmen itu saja. Oleh karena itu pembuatannya harus memperhatikan tata cara teknisnya, yaitu antara lain besar program tersebut tidak boleh lebih besar dari 64kb (1 segmen) selain itu rutin awal harus terletak pada lokasi offset 0100h. Oleh karena itu dalam pembuatannya harus diperhatikan lokasi offset dari program yang dibuat, sebagai contoh apabila pembuatan program dilakukan dengan debug maka rutin pertama harus dilakukan dengan perintah : -A100 begitu juga apabila penulisan listing dilakukan dengan menggunakan program non debug.Interupt 20h digunakan oleh program .com untuk menghentikan program dan kembali ke DOS, selain itu dapat dijuga digunakan Interupt 21h service 4Ch.
Contohnya :
C:\>debug
-a100
1074:0100 MOV AH,02
1074:0102 MOV DL,41
1074:0104 INT 21
1074:0106 INT 20
1074:0108

Register Data (General Purpose Register)

Register data pada µP 8088 dibagi menjadi 4 kelompok register yang semuanya berfungsi untuk penyimpanan data secara sementara. Keempat kelompok register ini adalah register AX, BX, CX. dan DX. Register AX, BX, CX, dan DX merupakan register data 16 bit. Register-register 16 bit dari kelompok ini mempunyai suatu ciri khas, yaitu dapat dipisah menjadi 2 bagian dimana masing-masing bagian terdiri dari 8 bit, yaitu register data AH; AL (untuk AX), BH; BL (untuk BX), CH; CL (untuk CX), dan DH; DL (untuk DX). Akhiran H menunjukkan High dan akhiran L menunjukkan Low. Selain berfungsi sebagai penyimpan data serba guna yang dapat digunakan secara bebas oleh pemogram, register-register tersebut memiliki juga fungsi-fungsi lainnya secara khusus, yaitu : Register AX biasanya digunakan pada operasi aritmatika (perkalian dan pembagian), dan operasi I/O 16 bit. Register BX biasanya digunakan untuk menunjukkan suatu alamat offset dari suatu segment. Register CX biasanya digunakan untuk menunjukkan banyaknya looping yang akan terjadi. Register DX biasanya digunakan untuk menampung sisa hasil pembagian 16 bit serta pada operasi I/O secara tidak langsung (16 bit)

Register Penunjuk Instruksi (Indeks Pointer Register)

Register Penunjuk instruksi merupakan register 16 bit yang berfungsi untuk menunjukkan lokasi instruksi berikutnya yang akan dijalankan. Register IP ini berpasangan dengan CS (code segment) dimana penulisannya adalah sebagai berikut [CS : IP]. Jadi lokasi alamat yang ditunjuk bergantung pada code segment yang terdapat pada segment register.

Arsitektur Internal µP 8088

Arsitektur internal µP 8088 dibagi menjadi dua bagian, yaitu BIU (Bus Interface Unit) dan EU (Execution Unit). BIU berfungsi untuk menjalankan operasi bus seperti menjemput instruksi, membaca data dan menulis ke memori, menerima input dan mengeluarkan output ke unit periferal. Dari BIU ini, dihasilkan bus data sebanyak 8 bit. Untuk menjalankan fungsinya, BIU memiliki register segment, register komunikasi internal, pointer instruksi, antrian kode objek instruksi, bus alamat, dan bus kontrol logika. EU berfungsi untuk menterjemahkan dan menjalankan instruksi.
Mikroprosesor 8088 mempunyai 4 kelompok register internal yaitu register penunjuk instruksi (indeks pointer register), register data (general purpose register), register segment (segment register), serta flag register.

Konfigurasi pena µP 8088

Pena pada µP 8088 ada yang tidak dipengaruhi oleh perubahan mode baik mode maksimum ataupun mode minimum dan ada pula pena yang berfungsi hanya pada saat mode maksimum.
Pena yang tidak dipengaruhi oleh perubahan mode baik mode maksimum ataupun mode minimum, diantaranya adalah :
a. Bus alamat ( AD0-AD7, A8-A15, dan A16/S3-A19/S6). Mikroprosesor 8088 mempunyai 20 pin jalur alamat sehingga dapat menjangkau 220 ( 1 MB) lokasi memori. Pena-pena ini hanya berfungsi pada saat T1 (lihat diagram pewaktuan). Pada saat T2 sampai T4 ada sebagian pin yang berfungsi sebagai data dan juga sebagai status.
b. Bus data ( AD0-AD7). Mikroprosesor 8088 mempunyai jalur data sebanyak 8 pin dan bisa digunakan secara biderectional (dua arah). Pin-pin ini berfungsi sebagai jalur data hanya pada saat T2-T4. Pada saat T1 berfungsi sebagai jalur alamat.
c. Kontrol baca (RD). Sinyal ini aktif rendah. Jika pena ini berlogic nol berarti µP sedang melaksakan pembacaan data. Sinyal ini aktif dipertengahan T2 dan kembali tidak aktif dipertengahan T4.
d. Clock (CLK). Yaitu masukan sinyal detak yang diberikan dari luar untuk mensinkronkan segala kegiatan pada µP. Miroprosesor 8088 dapat bekerja pada frekuensi clock 4,77 MHz atau 8 MHz untuk versi turbo.
e. Kontrol waktu tunggu (READY). Sinyal READY ini disampel pada sisi naik T2. Jika sinyal READY ini berlogic 0 berarti akan disisipkan TW/Twait antara T3 dan T4. Hal ini terus diulangi sampai sinyal READY diberi logika 1. Sinyal ini biasanya digunakan jika ada hardware lain yang memiliki kecepatan lebih lambat dari kecepatan µP ketika sedang bekerja dalam keadaan normal.
f. Reset sistem (RESET). Sinyal ini aktif tinggi. Bila logika 1 diberikan pada pena ini, mikroprosesor akan menghentikan segala kegiatan yang sedang terjadi saat itu. Semua register akan dibuat 0 kecuali register code segment dibuat FFFF0H (akan dijelaskan pada penjelasan mengenai segment register ).
g. Interupsi (INTR dan NMI). INTR dan NMI (Non Maskable Interrupt) adalah permintaan interupsi yang dipanggil secara hardware. Sinyal INTR merupakan sinyal aktif tinggi, sedangkan NMI dapat aktif menggunakan trigger sisi naik dari sinyal clock. INTR tidak akan berfungsi jika interupsi flag dikosongkan (menggunakan instruksi CLI ), sedangkan NMI tidak dapat dihalangi dengan instruksi CLI.
h. Kontrol tunggu test (TEST). Untuk mengaktifkan sinyal TEST, digunakan instruksi WAIT. Jika pin ini berlogic 1 ketika µP sedang menjalankan instrruksi WAIT, CPU akan berada pada keadaan idle mode, artinya mikroprosesor tidak melakukan kegiatan apa-apa sebelum pin ini berlogic 0. Jika pin ini berlogic 0 kembali, maka pelaksanaan instruksi akan dilanjutkan.i. Status (A16/S3-A19/S6). Sinyal status digunakan untuk mendeteksi suatu keadaan-keadaan atau operasi-operasi yang sedang berlangsung, diantaranya pengambilan instruksi, membaca memori, menulis memori, dan operasi-operasi yang lain. Sinyal ini dikeluarkan pada saat keadaan T2-T4.
j. Catu daya ( VCC dan GND). Mikroprosesor 8088 membutuhkan Vcc = +5 V yang masih bisa bertoleransi sebesar ± 10% dari +5 V.

MIKROPROSESOR 8088

Mikroprosesor 8088 mulai diperkenalkan oleh Intel Corporation pada tahun 1978. Mikroprosesor ini mengawali sejarah perkembangan mikroprosesor Intel selanjutnya, seperti 80186, 80286, 80386, 80486, Intel Pentium I, sampai yang sekarang Intel Pentium IV. Semua instruksi yang terdapat pada mikroprosesor 8088 sepenuhnya dapat dijalankan pada mikroprosesor-mikroprosesor Intel tersebut. Karena itu, untuk memahami perancangan hardware dan software pada PC sekarang, ada baiknya jika Anda lebih dahulu memahami perancangan hardware dan software pada mikroprosesor 8088 ini.
Mikroprosesor 8088 mempunyai 8 bit jalur data dan 20 bit jalur alamat. Jalur data memiliki pin yang sama dengan jalur alamat, artinya pada saat tertentu digunakan sebagai jalur data dan pada saat yang lain digunakan sebagai jalur alamat. Karena satu pin memiliki dua fungsi, yaitu sebagai jalur data dan jalur alamat maka digunakanlah sistem time multiplexing, yaitu penggunaan jalur yang sama untuk fungsi dan waktu yang berbeda, sehingga tidak bisa data dan alamat dikirim pada saat yang bersamaan. Mikroprosesor 8088 dibuat dalam bentuk IC dengan kaki sebanyak 40 pin (jenis DIP 40). Ada dua mode yang dapat digunakan pada mikroprosesor 8088, yaitu mode minimum dan mode maksimum. Pena yang menjadi penentu penggunaan mode adalah pena MN/MX. Mode minimum biasanya digunakan untuk sistem yang sederhana yang umumnya menggunakan prosesor pada satu PCB. Sedangkan mode maksimum umumnya digunakan untuk sistem yang lebih kompleks yang menggunakan multi I/O dan memori yang terpisah serta dapat pula digunakan dengan co-prosesornya (co-prosesor untuk 8088 adalah 8087). Dalam homepage ini, penulis hanya akan menjelaskan perancangan pada mode minimum saja, karena umumnya cukup dengan mode minimum saja suatu alat pengontrol/kendali otomatis sudah dapat diwujudkan.
Mikroprosesor 8088 mampu mengalamati memori sampai 1 MB. Memori ini digunakan untuk menyimpan kode biner dari instruksi yang akan dijalankan oleh µP, selain itu memori juga digunakan untuk menyimpan data secara sementara. Dengan tambahan unit I/O memungkinkan µP 8088 untuk menerima data dari luar (operasi input) ataupun mengirim data keluar (operasi output).