BAHASA PEMOGRAMAN MIKROPROSESOR Z80
BAHASA PEMOGRAMAN MIKROPROSESOR Z80
Di dalam pemograman terdapat beberapa level, ada yang disebut level tinggi seperti : Bahasa Pascal, Visual Basic, paket program dll. Sedangkan level taraf rendaha biasanya seperti : Bahasa mesin, dan bahasa assembly. Program adalah susunan instruksi yang logis dan mengandung bahasa yang diketahui oleh mikroprosesor dan bila dieksekusi akan diperoleh suatu hasil yang sesuai dengan instruksi pada program. Sebelum suatu program dilaksanakan oleh CPU, program harus disimpan dahulu di dalam memori dalam bentuk bilangan biner. Program jenis ini disebut program dalam bahasa mesin (machine language program). Hanya bahasa mesin yang dapat dimengerti oleh sebuah sistem mikroprosesor. Penulisan dalam bahasa mesin ini biasanya dinyatakan dalam bilangan heksadesimal. Misalnya instruksi 8 bit 1011 1110B (B menyatakan biner) bila dinyatakan dalam bilangan hexadesimal menjadi BEH (H menyatakan heksadesimal). Bagi seorang pemakai sistem mikroprosesor, menginterpretasikan program dalam bahasa mesin sangatlah sulit dan membutuhkan banyak waktu. Para pembuat mikroprosesor telah membagi instruksi-instruksi tersebut menjadi beberapa kategori menurut fungsinya. Instruksi – instruksi CPU dan register biasanya dinyatakan dalam simbol yang disebut mnemonic.
Mnemonic adalah kumpulan instruksi-instruksi. Misalnya, LD A, L (masukan data dari register L ke register A). Program yang ditulis dalam kode mnemonic disebut program dalam bahasa assembly. Sebelum suatu program dalam bahasa assembly dilaksanakan oleh CPU, program tersebut harus diterjemahkan dalam bahasa mesin oleh program khusus yang disebut assembler.
Keunggulan dari program dalam bahasa assembly terhadap program dalam bahasa mesin adalah program dalam bahasa assembly jauh lebih cepat membuatnya, mnemonic – mnemonic-nya membuat para pemakai lebih mudah mengingat instruksi setnya dan biasanya assembler telah mempunyai paket self diagnostic untuk memeriksa program yang dibuat apabila ada kesalahan. Kekurangan utama program dalam bahasa assembly adalah membutuhkan sebuah assembler (penterjemah ke bahasa mesin).
Sumber dari Guru Mikro Saya. Inelco Bandung (1986).
2. Analisa Masalah
Untuk membuat suatu program terlebih dahulu kita harus membuat analisa yang terperinci dari masalah yang akan dibuatkan programnya. Hal – hal yang harus diperhatikan adalah :
1. Karakteristik dan tuntutan masalah
2. Kondisi – kondisi yang telah diketahui
3. Format informasi input dan bagaimana format itu dikonversikan
4. Format data output dan bagaimana format itu dikonversikan
5. Jenis data dan ketelitiannya
6. Waktu pelaksanaan program yang dibutuhkan
7. Instruksi – instruksi CPU dan sifat-sifatnya
8. Besarnya memori
9. Kemungkinan dapat/ tidaknya masalah tersebut diselesaikan
10. Metoda pemecahan masalah
11. Evaluasi program
12. Bagaimana/dimana hasil pembuatan program akan disimpan
Diagram alir (flowchart) urutan ini dapat dilihat pada gambar.
3. Flowchart
Flowchart atau diagram alir adalah suatu skema yang menggambarkan urutan kegiatan dari suatu program dari awal hingga akhir. Bila suatu flowchart lengkap telah selesai dibuat, gambaran lengkap tentang proses pemikiran seorang programmer dalam memecahkan suatu masalah dapat diikuti. Flowchart juga sangat penting untuk pemeriksaan program yang telah selesai, juga dapat membantu orang lain dalam memahami algoritma yang tepat yang dibuat oleh programmer. Flowchart dapat dibagi 2, yaitu :
1. Flowchart sistem : menunjukkan jalannya program secara umum (garis besarnya saja).
2. Flowchart terperinci : berisi perincian – perincian (detail) yang penting untuk programmer.
Biasanya suatu program yang rumit didahului dengan flowchart sistem lalu dilengkapi dengan flowchart terperinci. Keuntungan dari sebuah flowchart adalah urutan langkah – langkah dari sebuah program ditunjukkan dengan simbol anak panah juga digunakan simbol-simbol lain untuk menunjukkan operasi yang dilaksanakan pada tiap-tiap langkah dari program tersebut. Simbol-simbol standar yang digunakan dalam pembuatan sebuah flowchart dapat dilihat pada gambar 2
Gambar 1 Analisa masalah
Gambar 2. Simbol – simbol standar flowchart
4. Merancang Program
Program ada beberapa jenis. Program – program yang sederhana, misalnya program persamaan matematika, konversi sinyal input dan output, program untuk menkode dan mendekode data, program untuk menjalankan peripheral. Program – program yang lebih rumit, misalnya program untuk assembler, monitor, control system atau aplikasi peralatan – peralatan khusus. Hal – hal yang harus diperhatikan dalam merancang suatu program adalah :
1. Mendapatkan sinyal input atau data
2. Menghasilkan atau mengkonversi sinyal output dan data
3. Perhitungan dan analisa logika di dalam program utama
4. Hubungan antara program utama dan sub routine
5. Penggunaan dari register-register yang ada di dalam CPU
6. Alokasi penggunaan memori pada program utama
7. Alokasi penggunaan memori pada subroutine
8. Alokasi memori untuk tabel data dan metoda index addressing
9. Program inisialisasi dan konstanta-konstanta
10. Definisi variabel-variabel di dalam program
11. Pertimbangan dari urutan waktu dan kecepatan pelaksaan program
12. Keterbatasan kapasitas memori
13. Panjang dan kepresisian data
5. Penulisan Program
Pada umumnya program pada mikroprosesor ditulis dalam bahasa assembly dan bahasa mesin. Suatu statemen dalam program terdiri dari 4 bagian yaitu label, op-code, operand dan keterangan. Label berisi suatu nama/tanda bukan alamat absolut. Penggunaan label memudahkan untuk mereferensi instruksi atau untuk menetapkan operasi percabangan. Op-code (kode operasi) berisi singkatan-singkatan dan instruksi yang akan dilaksanakan, misalnya INC untuk increment (operasi penjumlahan). Operand terdiri dari sintaks yang berubah-ubah sesuai dengan instruksi yang harus dilaksanakan. Pada penulisan program dalam bahasa assembly yang sulit adalah penulisan operand-nya. Pemberian keterangan berfungsi untuk menjelaskan operasi pelaksanaan dari suatu instruksi. Suatu statement program tanpa keterangan kadang-kadang sulit dimengerti. Keterangan tersebut lebih dirasakan artinya pada program-program yang rumit.
6. Program Assembly
Cara yang paling efektif untuk menterjemahkan program bahasa assembly ke bahasa mesin adalah dengan mempergunakan assembler (penterjemah) yang telah tersedia dalam system mikrokomputer tersebut. Tetapi bagi seorang pemula atau programmer yang belum mengenal sistem pengembangan mikrokomputer tersebut dapat pula menterjemahkan program secara manual. Prosedurnya adalah sebagai berikut :
- Terjemahkan setiap instruksi (mnemonic) kedalam kode mesin berdasarkan tabel konversi.
- Setelah menentukan alamat dari awal program (yang berada pada alamat RAM pemakai), tentukan alamat yang sesuai untuk byte pertama masing-masing instruksi. Jumlah byte yang dibutuhkan harus disediakan secara tepat termasuk juga byte-byte yang akan diisi kemudian, misalnya dalam instruksi JP, DJNZ serta address tujuan pada instruksi JP, CALL dan lain-lain.
- Menghitung percabangan relatif dan mengisikannya ke dalam program yang telah ditulis dalam bahasa mesin. Rumus sederhana untuk menghitung percabangan relatif (pergeseran) :
Pergeseran = (alamat tujuan) – (alamat instruksi berikutnya).
Jika hasil perhitungan adalah positif, maka hasil perhitungan tersebut adalah nilai yang kita isikan. Jika hasil perhitungan adalah negatif, maka tambahkan 100H pada hasil tersebut (akan diperoleh nilai komplemen keduanya) dan hasil akhirnya merupakan hasil yang dapat kita isikan. Atau bila hasilnya negatif, maka dikomplemenkan dan ditambah satu. Misalnya pada instruksi DJNZ label, address tujuannya berada pada 0002H, address instruksi berikutnya (address setelah instruksi DJNZ) adalah 1016H, instruksi DJNZ kode bahasa mesinnya adalah 10xx (xx adalah pergeseran yang harus dihitung).
xx (pergesaran) = 0002H (address tujuan) – 1016H (address instruksi selanjutnya) = - 14H
xx (pergeseran) = 100H + (-14H) = 100 – 14H = ECH, sehingga instruksi DJNZ label tersebut bila diterjemahkan ke dalam kode mesinnya adalah 10ECH.
7. Pengisian Program
Untuk pengisian program terlebih dahulu kita harus mengetahui peta memori dari sistem yang akan kita gunakan. Program yang kita isi tersebut harus dimasukkan pada address memori untuk RAM pemakai. Setelah program diisi ke dalam RAM diperlukan proses pemeriksaan kesalahan untuk menghilangkan kesalahan-kesalahan yang mungkin
terjadi. Instruksi atau data yang tertinggal dapat diselipkan pada address yang diiinginkan dengan mengisikan kembali program tersebut atau dengan menggunakan block data transfer. Bila kita merevisi program, kita perlu memeriksa apakah instruksi-instruksi loncat (jump) yaitu JP, JR, DJNZ, CALL dan sebagainya terpengaruh oleh perubahan address-address pada memori, jika hal ini terjadi, kita harus segera memperbaikinya.
8. Menjalankan dan Memeriksa Program
Sebelum menjalankan suatu program, kita harus mengeset parameter-parameter inisialisasi dan meletakkan penghitung program (program counter) pada address awal program. Dengan menekan tombol yang berfungsi untuk menjalankan program, pelaksanaan program akan dimulai. Setelah program selesai dilaksanakan, periksalah hasilnya. Jika ada kesalahan, program harus diperiksa langkah demi langkah dengan bantuan program monitor. Setelah program selesai diperbaiki, jalankan sekali lagi dan periksa hasilnya.
9. Contoh program :
Percobaan Transfer Data
1. Program bahasa assembly ditulis untuk menyusun isi register berikut :
A = 0, B = 1, C = 2, D = 3, E = 4, H = 5, L = 6 (gunakan instruksi LD 8 bit untuk mentransfer 1 byte data).
untuk intruksi z80 bisa dipelajari di link: bit.ly/2RbUmKc




Komentar
Posting Komentar