Langsung ke konten utama

Pemindahan Data

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

Postingan populer dari blog ini

Pengenalan dan Penggunaan KIT MPF-1

LAPORAN PRAKTIKUM SISTEM MIKROPROSESSOR PENGENALAN DAN PENGGUNAAN KIT MPF-1 Disusun oleh   : Nama                           : Pipit Dwi Rahayu NIM                            : 021500449 Prodi                           : Elektronika Instrumentasi Tanggal Praktikum      : 23 Maret 2017 Asisten                        : Rokhmat Arifianto                                       Adib Afham Rekan Kerja                : Ahmad Ramadhani               (021500419)                                       Deshinta Famella                  (021500427)                                       Fahriza                                  (021500431)                                       Rafa Rumaisha R. A.            (021500450)                                       Rizqi Akmalia                       (021500452)                                       Safira Rachmadewi               (021500453) SEKOLAH TINGGI TEKNOLOGI NUKLIR BADAN TENAGA NUKLIR NASIONAL YOGYAKARTA 2017