Laporan Sistem Mikroprosesor "Transfer Data" - Blognya iki

Blognya iki

Selamat datang di blog yang sederhana ini

Post Top Ad

Tuesday, 1 May 2018

Laporan Sistem Mikroprosesor "Transfer Data"



PERCOBAAN TRANSFER DATA

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.    Dasar Teori
Sejauh ini kita sudah mengetahui, bahwa didalam sistem digital segala informasi itu dinyatakan dalam kode-kode biner, yang ditentukan berdasar konfigurasi bit yang ada pada word. Komponen yang digunakan untuk menyimpan word tersebut adalah memori. Pada memori, data/ informasi tersebut disimpan di berbagai lokasi. Memori bersifat statis. Artinya selama sumber listrik ke memori ada, informasi yang tersimpan tidak akan berpindah maupun berubah. Untuk keperluan proses komputasi, informasi tersebut akan diolah. Maka melalui mikroprosesor lah bagian yang mampu mengolah (mengambil, menyalin, menambah merubah) data tersebut. Namun yang jelas word yang tersimpan di lokasi memori tersebut harus bisa masuk ke mikroprosesor. Bagian dari mikroprosesor yang berfungsi untuk menyimpan word tersebut disebut register.
Ukuran word yang disimpan di memori tentunya harus cocok dengan ukuran register di mikroprosesor. Jika memorinya berukuran 4x4 maka mikroprosesornyapun berukuran 4 bit. Namun untuk masa sekarang sudah ada mikroprosesor berukuran 16 atau 32 BIT (Hikmat, 2012).
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 denganmenggunakan perintah LD, data yang dipindahakan bisa berupa data 8-bit maupun data 16 bit. Instruksi seperti EX, EXX, PUSH, maupun POP juga dapaty dipergunakan untuk pemindahan data 16 bit. Sedangkan instruksi-instruksi seperti Ldi dan LDR memindahkan suatu blok data dengan cara menggeser sederetan byte-byte.
Format instruksi yang dipergunakan di dalam operasi pemindahan data adalah instruksi 3 byte yang terdiri dari sebuah opcode dan dua operan, bila pemindahan data menggunakan instruksi LD. Opcodenya adalah lokasi memori ataupun register. Sedangkan operand yang kedua adalah sumber data bisa berada, bisa memori maupun register. Karena ada berbagai sumber data maupun tujuan tempat pemindahan data, maka ada arah perpindahan data yaitu:
1. Dari register ke register,
2. Dari register ke memori,
3. Dari memori ke memori,
4. Dari memori ke register,
5. Data langsung ke register,
6. Data langsung ke memori.
Didalam ragam pengalaman ini tempat asal dan tujuan adalah sama yaitu register. Register yang dimaksud disini adalah register-register umum 8 bit.Bentuk umumnya adalah LD ri,r2 (Yudi Irwanto, 2017).
1. LD adalah perintah untuk pemindahan data.
2. R1 adalah register tujuan.
3. R2 adalah register asal data.
Pada AVR status register mengandung beberapa informasi mengenai hasil dari kebanyakan hasil eksekusi instruksi aritmatik. Informasi ini digunakan untuk altering arus program sebagai kegunaan untuk meningkatkan performa pengoperasian. Register ini di-update setelah operasi ALU (Arithmetic Logic Unit) hal tersebut seperti yang tertulis dalam datasheet khususnya pada bagian Instruction Set Reference.
Dalam hal ini untuk beberapa kasus dapat membuang penggunaan kebutuhan instruksi perbandingan yang telah didedikasikan serta dapat menghasilkan peningkatan dalam hal kecepatan dan kode yang lebih sederhana dan singkat. Register ini tidak secara otomatis tersimpan ketika memasuki sebuah rutin interupsi dan juga ketika menjalankan sebuah perintah setelah kembali dari interupsi. Namun hal tersebut harus dilakukan melalui software (Khairullah Hakim, 2011).



C.         Alat Dan Bahan
1.         Trainer Mikroprosesor                                           1 buah
2.         Adaptor                                                                 1 buah
3.         Modul Mikroprosesor                                           1 buah

D.         Kode Program
1.         Percobaan I
Address Memory
Bahasa Mesin
Bahasa Assembly

1800H
3E00
LD A, 0

1802H
0601
LD B, 1

1804H
0E02
LD C, 2

1806H
1603
LD D, 3

1808H
1E04
LD E, 4

180AH
2605
LD H, 5

180CH
2E06
LD L, 6

180EH
FF
RST 38H


2.         Percobaan II
Address Memory
Bahasa Mesin
Bahasa Assembly

1820H
013412
LD BC, 1234H

1823H
117856
LD DE, 5678H

1826H
210A09
LD HL, 090AH

1829H
FF
RST 38H



3.      Percobaan III
Address
Bahasa Mesin
Label
Opcode  
&    Operand

1800
0620

LD
B, 20H

1802
215018

LD
HL, 1850H

1805
AF

XOR
A

1806
77
LOOP
LD
(HL), A

1807
23

INC
HL

1808
05

DEC
B

1809
20FA

JR
NZ, LOOP

180B
FF

RST
38H


4.      Percobaan IV
Address
Bahasa Mesin
Label
Opcode  
&    Operand

1800
0620

LD
B, 20H

1802
214018

LD
HL, 1840H

1805
AF

XOR
A

1806
77
LOOP
LD
(HL), A

1807
23

INC
HL

1808
05

DEC
B

1809
3C

INC
A

180A
20FA

JR
NZ, LOOP

180C
FF

RST
38H



E.         Pembahasan
Praktikum ini bertujuan agar praktikan dapat mempelajari kegunaan instruksi-instruksi transfer data, kemudian mempraktekan penetapan nilai awal data dan menyusun program dalam bahasa mesin.

1.      Percobaan I
Percobaan pertama adalah melakukan pemindahan data dari memori ke register. Untuk menjalankan program tersebut perlu adanya masukan yang berupa rumus variable terprogram agar tercipta keluaran yang dikehendaki. Langkah awal adalah memastikan kondisi register. Selanjutnya tekan ADDR pada alamt 1800H kemudian menuliskan bahasa mesin alamat tersebut sesuai pustaka data mikroprossessor. Pada alamat 1800H dapat disetting dengan menekan DATA 3E00. Sesuai pustaka data, 3E berfungsi untuk memanggil register A sedangkan 00 merupakan data yang dimasukkan ke register A, sehingga dengan kata lain LD A, 00 H berarti bahwa data 00 masuk ke register A. Prinsip tersebut juga berlaku untuk register yang lain dalam hal pemindahan data, seperti register B dengan bahasa rakitan LD B, 01 dimana register B diisi dengan data 01 H. Register C dengan bahasa rakitan LD C, 02 dimana register C diisi dengan data 02 H. Register D dengan bahasa rakitan LD D, 03H dimana register D diisi dengan data 03H. LD E, 04H dimana register E diisi dengan data 04H. LD H,05H dimana register H diisi dengan data 05H. LD L, 06H dimana register L diisi dengan data 06H. Ketika semua progam telah dimasukan kembali ke alamat 1800H kemudian 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 ini sesuai dengan program yang diinputkan ke perangkat  dan percobaan pemindahan data, maka praktikum pertama berhasil.



2.      Percobaan II
                Percobaan kedua adalah mengatur isi register B, C, D, E, H, dan L dengan menggunakan instruksi LD 16 bit untuk memindahkan dua byte data setiap kali. Percobaan dilakukan dengan menulis program lalu menerjemahkan program ke dalam Bahasa mesin dengan alamat awal 1820H lalu memasukkan program ke mikroprofessor dan mengakhirinya dengan data FF.Untuk Bahasa rakitan LD B,C, 1234H dituliskan dalam Bahasa mesin 013412 dengan memasukkan data pada alamat 1820H adalah 01 (kode untuk LD B,C), data pada alamat 1821H adalah 34 (isi register C), dan data pada alamat 1822H adalah 12 (isi register C). Untuk Bahasa rakitan LD D,E, 5678H dituliskan dalam Bahasa mesin 11 78 56 dengan memasukkan data pada alamat 1823H adalah 11 (kode untuk LD D,E), data pada alamat 1824H adalah 78 (isi register E), dan data pada alamat 1825H adalah 56 (isi register D). Untuk Bahasa rakitan LD H,L, 090AH dituliskan dalam Bahasa mesin 21 0A 09 dengan memasukkan data pada alamat 1826H adalah 21 (kode untuk LD H,L), data pada alamat 1827H adalah 0A (isi register L), dan data pada alamat 1828H adalah 09 (isi register H). Jadi, dapat dianalisa dari program di atas bahwa pengisian dua register sekaligus dengan Bahasa rakitan misalnya LD B,C maksudnya adalah data pada alamat pertama berisi kode untuk Bahasa rakitan tersebut, data pada alamat kedua akan mengisi register C, dan data pada alamat ketiga akan mengisi register B, dan seterusnya.

3.      Percobaan III
            Percobaan ketiga adalah menghapus isi memori alamat 1850H sampai 186FH dengan proses loop. Dengan menuliskan 06 20 pada alamat 1800H, artinya kita memasukin nilai 20H pada register B. nilai 20H dipilih karena nilai tersebut setara dengan 32 bilangan decimal. Karena banyaknya isi memori yang akan kita hapus dari alamat 1850H-186FH sebanyak 32. Lalu, bahasa mesin21 50 18 berarti mengisikan register HL dengan alamat memori 1850 sebagai alamat awal memori yang diisi angka 0. Bahasa mesin AF dimasukan pada alamat 1805H untuk mengeset register A agar menjadi 0. Kemudian mengisikan bahasa mesin 77 pada alamat 1806 agar isi dari register A dipindahkan ke alamat yang ditunjuk HL (1850H). Bahasa mesin 23 dimasukan, bermaksud agar nilai HL naik/bertambah dari 1850H ke 1806H.Bahasa mesin 05 dimasukan untuk mengurangkan nilai dari register B. Lalu bahasa mesin 20 untuk melakukan proses loop apabila nilai register yang telah dikurangkan tadi belum bernilai 0. Proses perulangan ini dilakukan sampai 32 kali. Sesuai dengan nilai yang dimasukan pada register B diawal. Dengan demikian saat kita chek alamat 1850H-186FH maka hasilnya adalah 0.

4.     Percobaan IV
Percobaan keempat adalah mengeset alamat memori 1840H sampai 184FH sebagai : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F dengan proses loop. Dengan menuliskan 0620 pada alamat 1800H, artinya kita memasukan nilai 20H pada register B. Kemudian bahasa mesin 214018 berarti mengisikan register HL dengan alamat memori 1840 sebagai alamat awal memori yang diisi angka 0. Bahasa mesin AF dimasukan pada alamat 1805H untuk mengeset register A agar menjadi 0. Kemudian mengisikan bahasa mesin 77 pada alamat 1806 agar isi dari register A dipindahkan ke alamat yang ditunjuk HL (1840H). Bahasa mesin 23 dimasukan, bermaksud agar nilai HL naik/bertambah dari 1840H ke 1806H. Bahasa mesin 05 dimasukan untuk mengurangkan nilai dari register B. Bahasa mesin 3C dimasukkan untuk menambahkan satu nilai heksadesimal pada register A.  Lalu bahasa mesin 20 untuk melakukan proses loop apabila nilai register B belum bernilai 0. Proses perulangan ini dilakukan sampai 16 kali. Sesuai dengan nilai yang dimasukan pada register B diawal. Dengan demikian saat kita chek alamat 1840H-184FH maka hasilnya adalah 0, 1, 2, 3, 4, 5, 6, 7, 8,9, A, B, C, D, E, F .

F.          Kesimpulan
1.     LD merupakan instruksi yang dilakukan untuk mentransfer data 8-bit 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.

3.      Pada percobaan I terdapat fungsi bahasa pemanggil untuk memasukkan data kesuatu register sesuai prinsip pemindahan data menggunakan bahasa mesin LD 8 bit.
4.      Pada percobaan II dilakukan pengesetan isi register-register dengan menggunakan bahasa mesin LD 16 bit sesuai yang diinginkan.
5.      Pada percobaan III, proses loop dilakukan sebanyak 32 kali untuk mengisikan isi memori dari alamat 1850H sampai 186FH agar bernilai 0.
6.      Pada percobaan IV dilakukan pengesetan alamat memori dengan ketentun yang diinginkan menggunakan Looping dengan bahasa rakitan yang digunakan adalah yang sesuai.

G.        Daftar Pustaka
Hikmat. 2012. Aplikasi Mikroprosesor (Register). Bandung : Universitas
Pendidikan Indonesia
Irwanto, Yudi. 2017. Mikroprosesor “Pemindahan Data”.  Yogyakarta :
               STTN-BATAN
Hakim, Khairullah. 2011.  Aplikasi Mikrokontroler. Medan : Universitas Sumatra
Utara

No comments:

Post a Comment

Post Bottom Ad