Instruksi dalam Bahasa Assembly Mikroprosessor
Untuk siswa SMK / MAK Kelas X
Semester 2
INSTRUKSI
Dalam menjalankan program, mikroprosessor harus memiliki program yang tersimpan dalam format biner pada suatu lokasi memori. Terdapat 3 tingkat level bahasa yang dapat digunakan untuk menulis program pada sebuah mikroprosessor, yaitu :
-
Bahasa MESIN
-
Bahasa ASSEMBLY
-
Bahasa Aras Tinggi (High Level)​
BAHASA ASSEMBLY MIKROPROSESSOR
Bahasa Assembly lebih dipilih oleh kalangan programer karena bahasa ini dianggap membuat proses pemprogram menjadi lebih mudah. Bahasa assembly diterjemahkan kedalam bahasa mesin sehingga dapat di download ke memori dan di run atau dijalankan. Penterjemahan bahasa assembly menjadi kode biner bahasa mesin dapat dilakukan dengan menggunakan program yang disebut Assembler.
Mikroprosessor Z80 merupakan salah satu chip mikroprosessor yang paling banyak digunakan. Z80 dapat mengoperasikan 158 macam tipe intruksi termasuk 78 buah instruksi yang dimiliki mikroprosessor 8080A. Di dalam mikroprosessor Z80 beberapa macam instruksi tersebut yang dikelompokkan berdasarkan fungsinya, yaitu :
-
Mengisi dan Menukar
-
Transfer Blok
-
Arithmatika dan Logika
-
Putar dan Geser
-
Bit Manipulasi (Set, Reset, Test)
-
Jump, Call, dan Return
-
Input/Output
-
Dasar Kontrol CPU
Instruksi Mengisi & Menukar
Mengisi dan menukar isi register atau memori dibutuhkan pengalamatan yang diikitsertakan ke dalam setiap instruksi, alamat tersebut digunakan untuk menunjuk sumber data dan tujuan data yang diinginkan.
Untuk format penulisan mnemonik dari instruksi mengisi dan menukar data dari alamat sumber ke alamat tujuan adalah sebagai berikut berikut :
​
"Instruksi" tujuan, sumber.
Instruksi Transfer blok
Instruksi transfer blok yang sangat baik untuk memindahkan sejumlah data, instruksi beroperasi dengan tiga register, yaitu :
-
HL penunjuk lokasi sumber
-
DE penunjuk lokasi tujuan
-
BC adalah byte counter
Instruksi pemindahan blok data pada umumnya merupakan perulangan operasi inkremen yang diulang sampai byte counter mencapai hitungan nol, sehingga dengan demikian instruksi tunggal ini dapat memindahkan satu blok data dari satu lokasi ke lokasi yang lain.
Instruksi Arithmatika dan Logika
Operasi dasar aritmetika adalah penjumlahan, pengurangan, perkalian dan pembagian, demikian juga untuk operasi-operasi lain yang menuntut persyaratan lebih kompleks seperti akar, pangkat, presentase, dan algoritma.
Proses perhitungan dalam aritmertika dilakukan secara sekuensial berdasarkan urutan operasinya, artinya proses ditentukan sesuai dengan aturan operasi aritmetika mana yang dilakukan lebih dulu dan mana yang berikutnya. Termasuk di dalamnya adalah aritmetika bilangan asli, bilangan bulat, bilangan rasional, dan bilangan real.
Operasi logika adalah operasi yang meliputi logika yang dapat dilakukan oleh ALU (Arithmetic And Logic Unit) seperti logika AND dan OR.
Instruksi Putar dan Geser
Instruksi putar dapat diterapkan untuk memutar data dalam register atau memori ke arah kiri atau ke arah kanan, dan untuk instruksi putar dapat melibatkan carry pada flag atau hanya terbatas dalam register itu sendiri.
Sedangkan untuk instruksi geser pada prinsipnya juga hampir sama, yaitu menggeser data dalam register atau memori ke arah kiri atau ke arah kanan, dan untuk instruksi geser dapat melibatkan carry pada flag atau hanya terbatas dalam register itu sendiri.
Instruksi Manipulasi Bit
Kemampuan untuk set, reset, dan menguji bit individu dalam rewgister atau memori lokasi yang dibutuhkan dihampir setiap program. Manipilasu bit memungkinkan untuk mengubah isi bit dalam register flag, yaitu dengan tujuan fasilitas perangkat lunak untuk pemanggilan rutin tertentu, indikasi kontrol kondisi eksternal, atau data dikemas ke lokasi memori, membuat pemanfaatan memori yang lebih efisien.
Instruksi Jump, Call, dan Return
Instruksi ini berfungsi untuk melayani permintaan program untuk melakukan lompat dari suatu alamat ke alamat tertentu, panggilan untuk sebuah rutin, dan kembali ke program utama saat rutin yang dipanggil telah selesai tugasnya.
Jump yang dilanksanakan di Z80 adalah sebuah cabang di dalam program, dimana program counter 16-bit memenuhi syarat seperti yang ditentukan oleh salah satu dari tiga yang tersedia mode pengalamatan.
Instruksi Input / Output
Mikroprosessor Z80 memiliki serangkaian instruksi input dan output, pengalamatan dari perangkat input atau output dapat berupa absolut atau langsung, menggunakan resgiter mode pengalamatan tidak langsung, menggunakan register C. Dalam register mode pengalamatan tidak langsung, data dapat ditansfer antara perangkat I/O dan salah satu register internal. Selain itu delapan blok instruksi transfer telah dilaksanakan, instruksi-instruksi ini mirip dengan transfer blok memori.
Instruksi Kelompok Kontrol CPU
Beberapa tujuan secara umum instruksi kontrol CPU, meliputi instruksi NOP meruoakan instruksi yang tidak melakukan apa-apa, instruksi HALT mengehntikan CPU sementara, DI dan EI adalah operasi interupsi yang diterima digunakan untuk mengunci atau mengaktifkan interupsi.
Terkait dengan interupsi terdapat tiga modus interupsi, yaitu perintah set CPU untuk memilih ke salah satu dari tiga respon interupsi tersedia dan ketiga mode dapat dijelaskan sebagai berikut :
Mode 0, perangkat yang menginterupsi dapat menyisipkan instruksi pada bus data dan memungkinkan CPU untuk mengeksekusinya.
Mode 1, modus yang disederhanakan di mana CPU secara otomatis mengeksekusi restart (RST) ke 0038H, sehingga tidak ada hardware eksternal yang diperlukan
Mode 2, modus yang paling kuat karena memungkinkan untuk panggilan tidak langsung untuk setiap lokasi di memori.