PERCOBAAN
TRANSFER DATA
A.
Tujuan
Percobaan
1. Membiasakan
pemakai dengan fungsi instruksi transfer data
2. Latihan
mengeset nilai inisialisasi data
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