Praktek Mikroprosesor
JURUSAN PENDIDKAN TEKNIK ELEKTRONIKA FAKULTAS TEKNIK UNIVERSITAS NEGERI MAKASSAR 2011
Laporan Praktikum Percobaan 1 Praktek Mikroprosessor
A. Tujuan Percobaan 1. Membiasakan pemakai dengan fungsi instruksi transfer data 2. Latihan mengeset nilai inisialisasi data 3. Latihan menulis program mengisi dan menjalankan B. Teori Dasar Kebanyakan operasi transfer data dilaksanakan dengan
menggunakan instruksi LD (load). Data dapat di transfer dalam unit 8 dan 16 bit. Instruksi-instruksi seperti EX,EXS,PUSH dan POP jug adapt digunakan untuk mentransfer data 16 bit. Sedangkan LD I dan LD IR dapat digunakan untuk mentransfer blok-blok data. Suatu instruksi LD mencakup 2 operand. Operand pertama menunjukkan lokasi dimana data akan disimpan (dibagian memori atau register). Operand ini disebut tujuan. Operand kedua
menunjukkan lokasi asal data yang ditransfer,dan ini disebut sumber misalnya LD A,B menunjukkan bahwa data pada register B akan ditransfer ke register A. Register A disebut Tujuan dan register B disebut sumber. Adapun kemungkinan arah transfer data yaitu: 1. Register register, misal LD A, B 2. Register memori, misal LD A, (HL) ; LD HL,BC ; POP AF
3. Register data, misal LD A, 25 H 4. Memori register, misal LD (HL), A 5. Memori memori, misal LDD 6. Memori data, misal LD (HL), 5 BH C. Alat Dan Bahan 1. Trainer Mikroprosessor Z-80 2. Adaptor 3. Modul mikroprosesor D. Langkah Kerja
1. Tulislah program dalam bahasa assembly untuk mengeset isi register-register sebagai berikut : A=O, B=1, C=2, D=3, E=4, H=4, L=6 (gunakan instruksi LD 8 bit untuk mentransfer satu byte data setiap kali) 2. Tulislah program dalam bahasa assembly menggunakan blanko dibawah ini. Instruksi terakhir RST 38H akan mengembalikan control MPT-1 pada program monitor setelah menjalankan seluruh program. 3. Dengan menggunakan tabel instruksi LD 8 bit terjemahkan program ke dalam bahasa mesin dengan 1800H pada sebagian address awal. Tuliskan address yang sesuai untuk tiap-tiap instruksi. 4. Siapkan mikrokomputer GMS-1,masukkan program dengan
tersimpan dalam memori (program counter/penghitung program) pada awal address 1800H dan jalankan programnya. 5. Tekan tombol REG dan periksalah apakah isi-isi tiap register sudah benar, bila masih ada kesalahan kembalikan pada step I dan periksalah sampai semua benar. 6. Pada bercobaan LD 16-bit Tulislah program dalam bahasa assembly untuk mengeset isi register sebagai berikut : B=12, C=34, D=56, E=78, H=9, L=A (gunakan instruksi LD 16 bit untuk mentransfer 1 byte data setiap kali) 7. Sama dengan percobaan pertama (Tulislah program dengan Bahasa assembly) 8. Dengan menggunakan tabel instruksi LD 16 bit terjemahkan program ke dalam bahasa mesin dengan 1820H sebagai address awal. Tulis juga address yang tepat untuk masing-masing instruksi. 9. Masukkan Program (sama dengan percobaan I). Set PC pada 1820H dan terjemahkan programnya 10. Periksa isi masing-masing register seperti percobaan I. E. Hasil Percobaan 1. Percobaan transfer data 8-bit Address 1800H 1801H 1802H Bahasa Mesin 3E 00 06 LD B, 01 Bahasa Assembly LD A, 00
Address 1803H 1804H 1805H 1806H 1807H 1808H 1809H 180AH 180BH 180CH 180DH 180EH
Bahasa Mesin 01 0E 02 16 03 1E 04 26 05 2E 06 FF
Bahasa Assembly
LD C, 02
LD D, 03
LD E, 04
LD H, 05
LD L, 06
RST
2. Percobaan transfer dat 16-bit BAHASA ADDRESS MESIN 1820 H 1821 H 1822 H 1823 H 1824 H 1825 H 01 34 12 11 78 56 ASSEMBLY LD B, 12 LD C, 34 LD BC,1234 H LD D, 56 LD E, 78 LD DE,5678 H BAHASA
F. Analisa Data 1. LD A, 00 = LD A merupakan suatu perintah bahasa assembly yang berarti mengisi data pada register A, sedangkan 00 merupakan bilangan heksa yang akan disikan ke register A pada address 1801H 2. LD B, 01 = LD B merupakan suatu perintah bahasa assembly yang berarti mengisi data pada register B, sedangkan 01 merupakan bilangan heksa 8 bit yang akan disikan ke register B pada address 1803H 3. LD C, 02 = LD C merupakan suatu perintah bahasa assembly yang berarti mengisi data pada register C, sedangkan 02 merupakan bilangan heksa 8 bit yang akan disikan ke register C pada address 1805H 4. LD D, 03 = LD D merupakan suatu perintah bahasa assembly yang berarti mengisi data pada register D, sedangkan 03 merupakan
bilangan heksa 8 bit yang akan disikan ke register D pada address 1807H 5. LD E, 04 = LD E merupakan suatu perintah bahasa assembly yang berarti mengisi data pada register E, sedangkan 04 merupakan bilangan heksa 8 bit yang akan disikan ke register E pada address 1809H 6. LD H, 05 = LD H merupakan suatu perintah bahasa assembly mengisi data pada register H, sedangkan 05 merupakan bilangan heksa 8 bit yang akan disikan ke register H pada address 180BH 7. LD L, 06 = LD L merupakan suatu perintah bahasa assembly yang berarti mengisi data pada register L, sedangkan 06 merupakan bilangan heksa 8 bit yang akan disikan ke register L pada address 180DH 8. LD BC, 1234 = LD BC merupakan suatu perintah bahasa assembly yang berarti mengisi data pada register BC, sedangkan 1234H merupakan data bilangan heksa 16 bit yang akan diisikan ke pasangan register BC pada address 1821H dan 1822H 9. LD DE, 5678 = LD DE merupakan suatu perintah bahasa assembly yang berarti mengisi data pada register DE, sedangkan 5678H merupakan data bilangan heksa 16 bit yang akan diisikan ke pasangan register DE pada address 1824H dan 1825H 10. LD HL, 1234 = LD HL merupakan suatu perintah bahasa assembly yang berarti mengisi data pada register HL, sedangkan 090AH
merupakan data bilangan heksa 16 bit yang akan diisikan ke pasangan register HL pada address 1827H dan 1828H G. Kesimpulan 1. LD merupakan instruksi yang dilakukan untuk mentransfer data 8bit dan 16-bit dari: a. Register ke register b. Memori ke register c. Data ke register d. Register ke memori e. Memori ke memori f. Data ke memori 2. Suatu instruksi LD terdiri dari 2 operand yaitu tujuan data dan asal data yang akan ditransfer.