LAPORAN PRAKTIKUM
SISTEM MIKROPROSESOR
PEMINDAHAN DATA
Disusun Oleh :
Nama :
Pipit Dwi Rahayu
NIM :
021500449
Jurusan :
Teknofisika Nuklir
Prodi :
Elektronika Instrumentasi
SEKOLAH TINGGI TEKNOLOGI NUKLIR
BADAN TENAGA NUKLIR NASIONAL
YOGYAKARTA
2017
I.
JUDUL
Laporan Praktikum Sistem
Mikroprosesor “Pemindahan Data”
II.
TUJUAN
1.
Membiasakan pemakai dengan fungsi instruksi pemindahan data.
2.
Latihan mengeset nilai inisialisasi data.
3.
Latihan Menulis Program.
III.
PERALATAN YANG DIGUNAKAN
1.
Mikroprofesor.
2.
Adaptor Sebagai catu daya.
IV.
DASAR TEORI
Di dalam pemrograman suatu sistem mikroprosesor banyak sekali data yang
dipergunakan dan di dalam operasinya banyak menyangkut mengenai perpindahan
data. Perpindahan. Perpindahan data ini meliputi data yang ada pada memori dan
juga data yang ada pada register-register.
Kebanyakan
operasi pemindahan data didapat dengan menggunakan instruksi LD (Load). Data
dapat dipindahkan dalam unit-unit 8 bit atau 16 bit. Instruksi-instruksi
seperti EX, EXX, PUSH dan POP juga dapat digunakan untuk memindahkan data 16
bit. Sedangkan instruksi LDI dan LDIR dapat dipakai untuk memindahkan 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 dipindahkan dan disebut
„sumber‟. Misalnya LD A,B menunjukkan bahwa data pada register B akan
dipindahkan (dicopykan) ke register A. Register A disebut tujuan dan register B
disebut sumber.
Kemungkinan arah perpindahan data :
a.
Register ke register, misal LD A,B ; LD HL, BC
b.
Memori ke register, misal LD A, (HL) ; POP AF
c.
Data ke register, misal LD A, 25H ; LD HL, 125AH
d.
Register ke memori, misal LD (HL), A ; PUSH BC
e.
Memori ke memori, missal LDD ; LDIR
f.
Data ke memori, misal LD (HL), 5BH.
Dalam ragam pengalamatan ini dipergunakan register
umum 16 bit sebagai penunjuk alamat
tempat tujuan data, register yang biasa digunakan adalah register HL, jadi
disini pengalamatan tidak langsung dengan register, tetapi register hanya
dipergunakan sebagai penunjukan alamat dari memori. Sebagai asal data bisa
berupa register ataupun data langsung. Misalnya: LD(HL), A; artinya memasukan data yang ada pada register
A ke alamat yang ditunjukan oleh pasangan register A ke alamat yang ditunjukan
oleh pasangan register HL. Pada ragam pengalamatan
ini data ditentukan secaara langsung, tanpa menunjukan alamat memori ataupun
register. Perannya tidak terletak di register ataupun memori tetapi terdapat
langsung pada instruksi. Instruksinya bisa berupa instruksi 2 byte maupun
instruksi 3 byte. Opcodenya bisa berupa satu byte maupun dua byte, sedangkan
operandnya berupa data 8 bit.
V.
TATA LAKSANA PERCOBAAN
1.
PERCOBAAN I
Menulis program dalam bahasa rakitan untuk mengeset isi
register-register sebagai berikut :
A = 0 E
= 4
B = 1 H
= 5
C = 2 L
= 6
D = 3
Menunggunakan instruksi LD 8 bit (lihat tabel instruksi)
untuk memindahkan satu byte data setiap kali.
Step 1 :
Tulislah program dalam bahasa rakitan menggunakan kolom-kolom
(alamat memori, bahasa mesin, bahasa rakitan dan keterangan.) Instruksi
terakhir RST 38H akan mengembalikan kontrol uPF-1 pada program monitor setelah
menjalankan seluruh program.
Step 2 :
Dengan menggunakan tabel instruksi LD 8 bit, terjemahkan program
dalam bahasa mesin dengan 1800H sebagai alamat awal. Tulislah alamat yang
sesuai untuk tiap-tiap instruksi.
Step 3 :
Siapkan kit uPF-1, masukkan program dengan menekan
tombol-tombol pada papan kunci. Periksa program yang tersimpan dalam memori.
Set Program Counter (PC) pada awal alamat 1800H dan jalankan programnya.
Step 4 :
Tekan tombol REG dan periksa apakah isi tiap-tiap
register sudah benar. Bila masih ada kesalahan, kembalikan pada step 1 dan
periksa lagi.
2.
PERCOBAAN II
Menulis program dalam bahasa rakitan untuk mengeset isi
register-register sebagai berikut :
B = 12 E
= 78
C = 34 H
= 09
D = 56 L
= 0A
Menggunakan instruksi LD 16 bit (lihat tabel instruksi.
Grup instruksi LOAD 16 bit) untuk memindahkan dua byte data setiap kali.
Step 1 :
Tulislah program dalam bahasa rakitan menggunakan kolom-kolom
seperti percobaan I .
Step 2 :
Dengan menggunakan tabel instruksi LD 16 bit, terjemahkan
program dalam bahasa mesin dengan alamat awal 1820H. Tulislah alamat yang
sesuai untuk tiap-tiap instruksi.
Step 3 :
Masukkan program dengan menekan tombol-tombol pada papan
kunci. Periksa program yang tersimpan dalam memori. Set Program Counter (PC)
pada awal alamat 1820H dan jalankan programnya.
Step 4 :
Tekan tombol REG dan periksa apakah isi tiap-tiap register
sudah benar. Bila masih ada kesalahan, kembalikan pada step 1 dan periksa lagi.
Catatan :
Suatu data 16 bit terdiri dari 2 byte data. Byte berorde
tinggi berada pada alamat memori yang lebih tinggi, sedangkan byte berorde
rendah berada pada alamat memori yang lebih rendah. Misalkan, data 16 bit 1234H
disimpan pada alamat 1820 – 1821H dengan cara sebagai berikut :
Data 16 bit Isi
memori Alamat memori
------------- ------------- ------------------
3.
PERCOBAAN III
a.
Menerjemahkan program diatas kedalam bahasa mesin gunakan tabel
instruksi sebagai acuan dan isikan ke RAM uPF-1.
b.
Menjalankan program dan periksa apakah isi alamat memori 1850H sampai 186F
telah terhapus (=0). Jika belum benar periksa sekali lagi, kemudian jalankan
lagi.
4.
PERCOBAAN IV
Menulisah suatu program dalam bahasa rakitan untuk mengeset alamat memori
1840H sampai 184F sebagai berikut : 0. 1. 2. 3. , . . . . . , F.
Petunjuk : Ubahlah penghitung loop dan nilai alamat
awalnya. Register A ditambah dengan 1 pada loop berikutnya.
VI.
DATA HASIL PRAKTIKUM
1.
Perobaan I
Alamat
Memory
|
Bahasa
mesin
|
Bahasa
rakitan
|
Keterangan
|
1800 H
|
3E, 00
|
LD A, 00
|
Isi reg A dengan data 00H
|
1802 H
|
06 01
|
LD B, 01
|
Isi reg B dengan data 01H
|
1804 H
|
0E 02
|
LD C, 02
|
Isi reg C dengan data 02H
|
1806 H
|
16 03
|
LD D, 03
|
Isi reg D dengan data 03H
|
1808 H
|
1E 04
|
LD E, 04
|
Isi reg E dengan data 04H
|
180A H
|
26 05
|
LD H, 05
|
Isi reg H dengan data 05H
|
180C H
|
2E 06
|
LD L, 06
|
Isi reg L dengan data 06H
|
180E H
|
|
FF
|
RST 38H
|
2.
Percobaan II
Alamat
Memory
|
Bahasa
mesin
|
Bahasa
Rakitan
|
Keterangan
|
1820 H
|
01 34 12
|
LD BC, 1234 H
|
Isi Reg BC dengan data 1234 H
|
1823 H
|
11 76 56
|
LD DE, 5676 H
|
Isi Reg DE dengan data 5676 H
|
1826 H
|
21 0A 03
|
LD HL, 030A H
|
Isi Reg HL dengan data 030A H
|
1829 H
|
|
FF
|
RST 38H
|
3.
Percobaan III
Alamat
Memory
|
Bahasa
mesin
|
Label
|
Bahasa
Rakitan
|
Keterangan
|
1800 H
|
06 20
|
Loop
|
LD B, 20H
|
Data 20H sebagai penghitung loop
|
1802 H
|
21 50 18
|
LD HL,1850 H
|
Set HL sbg alamat awal memori yang diisi nol
|
|
1805 H
|
AF
|
XOR, A
|
Set re A = 0
|
|
1806 H
|
77
|
LD (HL), A
|
Isikan 0 pada alamat memori yang ditunjuk HL
|
|
1807 H
|
3C
|
INC HL
|
Tambah HL dengan 1
|
|
1808 H
|
23
|
DEC B
|
Kurangi B dengan 1
|
|
1809 H
|
05
|
JR NZ, Loop
|
Jika isi reg B belum = 0 kembali ke Loop
|
|
180B H
|
20 FB
|
RST 38H
|
Kembali ke program monitor
|
4.
Percobaan IV
Alamat
Memory
|
Bahasa
mesin
|
Label
|
Bahasa
Rakitan
|
Keterangan
|
1800 H
|
06 10
|
Loop
|
LD B, 10 H
|
Data 10H sebagai penghitung loop
|
1802 H
|
21 40 18
|
LD HL,1840 H
|
Set HL sbg alamat awal memori yang diisi nol
|
|
1805 H
|
AF
|
XOR, A
|
Set re A = 0
|
|
1806 H
|
77
|
LD (HL), A
|
Isikan 0 pada alamat memori yang ditunjuk HL
|
|
1807 H
|
3C
|
INC A
|
Tambah A dengan 1
|
|
1808 H
|
23
|
INC HL
|
Tambah HL dengan 1
|
|
1809 H
|
05
|
DEC B
|
Kurangi B dengan 1
|
|
180A H
|
20 FA
|
JR NZ, Loop
|
Jika isi reg B belum = 0 kembali ke Loop
|
|
180C H
|
FF
|
FF
|
RST 38H
|
Latihan Soal
Alamat
Memory
|
Bahasa
mesin
|
Label
|
Bahasa
Rakitan
|
Keterangan
|
1800 H
|
06 20
|
Loop
|
LD B, 10 H
|
Data 10H sebagai penghitung loop
|
1802 H
|
21 50 18
|
LD HL,1850 H
|
Set HL sbg alamat awal memori yang diisi nol
|
|
1805 H
|
AF
|
XOR A
|
Set re A = 0
|
|
1806 H
|
77
|
LD (HL). A
|
Isikan 0 pada alamat memori yang ditunjuk HL
|
|
1807 H
|
C6, 02
|
ADD, N
|
Tambah A dengan 1
|
|
1809 H
|
23
|
INC HL
|
Tambah HL dengan 1
|
|
180A H
|
05
|
DEC B
|
Kurangi B dengan 1
|
|
180B H
|
20
|
JR NZ
|
Jika isi reg B belum = 0 kembali ke Loop
|
|
180C H
|
F3
|
Loop
|
RST 38H
|
|
180D H
|
FF
|
FF
|
Kembali ke monitor
|
VII.
PEMBAHASAN
Praktikum mikroprosesor dan PLC dengan materi pemindahan data dengan menggunakan mikroprofesor z80.
Praktikum ini bertujuan agar
praktikan dapat membiasakan memakai dengan fungsi instruksi pemindahan
data.atihan mengeset nilai inisialisasi data serta latihan Menulis Program.
1.
Percobaan I
Praktikum pertama adalah
mengisi data ke register. Bahasa rakitan yang telah disediakan asisten atau
yang biasa disebut dengan tabel assembly dikonversi ke bahasa mesin sesuai
dengan tabel masing-masing. Kemudian input program bahasa mesin ke perangkat mikroprofesor,
yaitu menggunakan alamat memori awal 1800 H. Dalam bahasa rakitan yang bisa
kita lihat dalam tabel assembly tersebut akan dicari dari LD A, 00 hingga FF. Ketika
semua progam telah dimasukan secara lengkap baik alamat memori serta data yang
dihasilkan dari tabel assembly tekan tombol PC lalu GO untuk menjalankan program. Kemudian cek data di reg A, Reg B, Reg C ,Reg D,Reg E,
Reg H, Reg L. Dan didapatkan hasil reg A= 00, reg B= 01, reg C= 02, reg D= 03, reg E= 04, reg H= 05, reg L= 06. Jika hasil yang dikeluarkan sesuai
dengan inputan pada bahasa rakitan, maka praktikum dikatakan berhasil.
2.
Percobaan II
Praktikum kedua mengisi data dari
register ke register. Bahasa rakitan yang telah disediakan asisten atau yang
biasa disebut dengan tabel assembly dikonversi ke bahasa mesin. Kemudian input
program bahasa mesin sesuai dengan tabel assembly yang digunakan. Mengisi
alamat memori awal 1800 H. Namun dalam bahasa rakitan ini meggunakan 2 data
sekaligus yaitu LD BC hingga LD HL. Ketika semua progam telah dimasukan tekan
tombol PC lalu GO untuk menjalankan program. Dan didapatkan hasil reg B= 01, reg C= 01, reg D= 02, reg E= 02, reg B = 12, reg C = 34, reg D = 56, reg E = 76, reg H = 03, reg L= 04. Hasil ini
sesuai dengan program yang diinputkan pada tabel assembly dan terjadi
pengulangan pada register selanjutnya register B sama dengan Register C,
Register D sama dengan register E dan register H sama Dengan Register L. Hasil yang sama tersebut dikarenakan
perintah/program yang diinputkan memerintahkan untuk mengisi reg B dengan data
reg C, reg E dengan data reg D, dan reg H dengan data reg L.
3. Percobaan III
Pada percobaan ini, praktikan mampu
untuk menghapus data pada alamat 1850H sampai 186FH artinya pada jangkauan
alamat tersebut nilai datanya nol (=0) . hal yang pertama dilakukan
adalah praktikan harus mengetahui jangkauan/ruang alamat dari 1850H-186FH tersebut,yaitu
diperlukan 32 kali pelaksanaan data atau dikonversikan kedalam heksa
sebesar 20H. Setelah mengetahui jangkauan data tersebut praktikum mulai
memprogram dengan menggunakan intruksi 8 bit untuk memindahkan setiap data ke
tujuan masing-masing.
Seperti pada percobaan sebelumnya kita
akan mengisi register B dengan jangkauan yang telah dihitung tadi, dengan
menggunakan LD B,NN = LD B,20H = 06 20 artinya data 20H ini kita atur sebagai
penghitung Loop. Selanjutnya kita mengisi register HL dengan alamat awal
memori yang dituju dengan menggunakan LD HL,NN NN = LD HL, 1850H =
21 50 18 artinya kita mengatur alamat 1850H menjadi alamat awal yang akan diisi
nol. Setelah mengisis register B dan HL, praktikan mengeset Reg A = 0
Selanjutnya Mengisikan Reg A tersebut pada Reg HL tujuannya agar alamat
yang diinginkan berubah menjadi A yaitu 0 karena register A diset 0. Program
selanjutnya adalah bagaimana alamat yang kita inginkan terus bertambah tidak
selalu pada alamat 1850H maka praktikan menambahkan Reg HL (+1) sedangkan
kita harus menghapus data sebanyak 20H, maka program Reg B harus berjalan
mundur dengan mengurangi Reg B (-1). jika mengisi JR NZ,loop = 20 FB
artinya saat Reg B belum mencapai nol maka program akan ngloop atau kembali
keatas sampai saat memindahkan Reg A ke Reg HL, karena alamat
terakhir program pada Reg HL adalah 1851H setelah dijumlah tadi maka alamat
tersebut kembali dihapus, lalu alamat terus di tambah 1 dan
jangkauannya terus menurun turun Sampai nol maka program selesai dengan membatasinya
dengan FF.
Setelah dijalankan, praktikan mengecek
alamat memori 1840H-186FH telah terhapus (=0), maka percobaan
ketiga berhasil.
4. Percobaan IV
Pada percobaan ini ada 2 soal yang
harus diselesaikan. Percobaan 4 memiliki kemiripan dengan percobaan 2 dan 3.
Perbedaannya adalah, dalam percobaan 4 ini praktikan diminta memprogram
mikroprofesor agar output pada alamat memori 1840H sampai 184F akan
mengeluarkan data 0,1,2,3 dan seterusnya sampai F untuk soal nomor 1, dan
mengeluarkan data bernilai genap (0,2,4,8,...) untuk soal nomor dua.
Pada soal nomor 1, untuk mendapatkan
data tersebut perlu dilakukan modifikasi program yang telah dibuat pada
percobaan 2 dan 3. Praktikan melakukan pemrograman mulai dari alamat 1800H dan
hasilnya akan muncul di alamat 1840H. Ini karena praktikan memasukkan bahasa
mesin 21 di alamat 1842H, 40 di alamat 1843H, dan 18 di alamat 1844H sehingga
data akan muncul mulai dari alamat 1840H.
Modifikasi program yang dilakukan pada
percobaan ini adalah dengan menambahkan INC A pada program dan menghapus
perintah XOR A. Karena XOR A pada dasarnya merupakan perintah untuk membuat
keluaran data menjadi 0 dan INC A merupakan perintah untuk menambahkan nilai +1
pada keluaran. Jadi keluaran data akan menghasilkan nilai 0,1,2,3 dan
seterusnya.
Perintah JR NZ, loop juga diubah
karena jumlah lompatan yang dilakukan ke loop bertambah. Pada percobaan kedua
bahasa mesin untuk JR NZ, loop adalah FB sedangkan pada percobaan ini adalah
--- karena berubahan jumlah lompatan yang dikarenakan ada penambahan input
perintah yang baru.
Dari modifikasi program ini lalu didapati data sesuai
yang ada pada lembar data.
Pada soal nomor 2, modifikasi
dilakukan dalam perintah INC A yang diubah menjadi ADD N, dimana arti perintah
ADD N adalah menambahkan nilai sebanyak N yang nilai N ini dapat diatur oleh
praktikan. Karena pada soal ini penambahan nilai adalah sebanyak 2, maka nilai
N dituliskan dengan 2.
Selain menggunakan ADD N, bisa juga
dengan menambahkan INC A sebanyak 2 kali sehingga lompatan nilai menjadi 2.
Namun dengan perintah ini makan akan merubah jumlah lompatan looping dan JR
NZ,loop juga harus dimodifikasi lagi.
Dari modifikasi program ini didapati dapat yang ada pada
lembaran data.
VIII.
KESIMPULAN
1.
Dari hasil pengamatan pada percobaan pemindahan data, kebanyakan menggunakan perintah LD. Perintah LD ini
mencakup pemindahan untuk data 8 bit serta 16 bit, serta tempat asal data dan
tujuan data bisa bermacam-macam. Jadi perintah LD ini sangat cocok untuk digunakan dalam operasi pemindahan data.
2.
Register-register umum yang terdapat dalam uPF-1 ini dapat dipergunakan secara sendiri-sendiri maupun
secara berpasangan.
IX.
DAFTAR PUSTAKA
Harsono, Djiwo dkk.
2017. Petunjuk Praktikum Mikroprosesor.
Yogyakarta : STTN-BATAN
Komentar
Posting Komentar