PERCOBAAN 2 REGISTER / MEMORI I.
Judul : Register/ Memori
II.
Alat dan Bahan -
III.
IV.
seperangkat Midicom LN 85 V3.0
Tujuan
Memahami berbagai register dan fungsi-fungsinya
Memahami penggunaan register dan memori sebagai sarana pemindahan data
Dasar Teori Mikroprosesor 8085 mempunyai bermacam-macam register, berkapasitas 8 bit dan
apabila dua register digabungkan dapat membentuk sebuah pasangan register dengan kapasitas 16 bit. Disamping itu tersedia pula register dengan kapasitas khusus 16 bit.
D
Accumulator
Register Bendera
Processor Status word
Register B
Register C
Register Pair BC
Register D
Register E Register Pair DE
Register H
Register L Register Pair HL
Program Counter Stack Pointer
Gambar 2.1. macam-macam register Tiap register mempunyai fungsi khusus yang tidak dipunyai oleh register lain, namun semuanya merupakan tempat penyimpanan data sementara dalam suatu rutin program.
1
Fungsi-fungsi khusus register dapat dijelaskan sebagai berikut : -
Register A Register ini juga dikenal dengan akumulator, fungsinya sebahgai penyimpana data pada perhitungan matematika, logika dan proses pembacaan/pengisian data pada memori. Disamping itu, pada perintah masukan/keluaran, perbandingan, penggeseran, data juga disimpan dalam akumulator
-
Register F Register ini berfungsi sebagai bendera pada operasi logika, aritmatika, pengeseran, perbandingan dan lain-lain. Tiap bitnya mempunyai fungsi tersendiri. Bit tersebut digunakan sebagai penanda pada rutin percabangan.
-
Register B,C,D,E,H,L. Register ini berfungsi sebagai tempat penyimpanan sementara 8 bit pada proses pemograman. Fungsinya selain sebagai tempat penyimpanan data 16 bit, juga dapat digunakan sebagai penunjuk suatualamat memori, misalnya pasangan register HL sebagai penunjuk alamat register M.
-
Register PC Program counter (PC) merupakan penunjuk alamat perintah akan dijalankan oleh CPU. Pasangan register ini akan bertambah nilainya secara otomatis sesuai dengan alamat perintah yang dijalankan berikutnya.
-
Register SP Register ini berfungsi sebagai penunjuk alamat memori, yaitu tempat menyimpan alamat kembaliuntuk perintah CALL dn tempat menyimpan data pada perintah PUSH-POP.
-
Register M Register ini sebetulnya adalah memori , karena penunjukkan data pada memori harus berdasarkan alamatnya, maka pada register M ini menunjukkan alamat ditentukan oleh pasangan register HL.
2
V.
Percobaan V.1 Latihan 1 membuat program dialamat 8000 untuk pemindahan data dari register HL ke memori ( Register M). Org 8000 MVI L,00 MVI H,80 MVI M,AA RST 1
V.2 Latihan 2 membuat program dialamat 8100 untuk pemindahan data dari register ke register, dari register ke memori (Register M) atau sebaliknya dari memori keregister. Org 8100 MVI L,00 MVI h,80 MOV A,M MVI h,80 MOV M,A RST 1
V.3 Latihan 3 membuat program dialamat 8200 untuk pengisian data 16 bit ke pasangan register secara langsung. Org 8200 LXI H,8000 LXI B,8001 LXI D,8002 RST 1
V.4 Latihan 4 membuat program 8300 untuk penukaran data pasangan register DE dengan HL. Data pada register E ditukar ke data pada register L sedangkan pada register D ditukar kedata pada register H. Org 8300 LXI H,0000
3
MVI D,DD MVI E,EE ECHG RST 1
V.5 Latihan 5 membuat program di alamat 8400 untuk mengirim data dari memori dengan alamat “adr” ke akumulator. Org 8400 LDA 8000 LXI H,8002 MOV M,A RST 1
V.6 Latihan 6 membuat program di alamat 8500 untuk mengirim data dari akumulator ke memori dengan alamat “adr”. Org 8500 LXI A,0000 LXI D,AACC LHLD 8000 XCHG LHLD 8002 RST 1
V.7 Latihan 7 membuat program di alamat 8600 untuk mengirim data 2 byte ke memori dengan alamat “adr”, yaitu data yang ada pada register L di kirim ke alamat “adr” dan data pada register HL dikirim ke alamat “adr + 1”` Org 8600 LHLD 8000 SHLD 8005 LHLD 8003 SHLD 8007 RST 1
4
V.8 Latihan 8 membuat program di alamat 8700 Org 8700 LXI H,8000 MOV B,M MVI D,80 MVI E,03 LDAX D RST 1
V.9 Latihan 9 membuat program di alamat 8800 untuk mengisi data pasangan register BC dan DE ke akumulator. Org 8800 MVI B,80 MVI C,03 STAX B RST 1
VI.
Hasil Percobaan Hasil percobaan V.I
5
Hasil percobaan V.2
6
Hasil percobaan V.3
Hasil percobaan V.4
7
Hasil percobaan V.5
8
Hasil percobaan V.6
Hasil percobaan V.7
9
Hasil percobaan V.8
10
Hasil percobaan V.9
11
VII.
Analisa Dari percobaan kali ini, kita telah melakukan perintah pemindahan data, yang
pertama yaitu memindahkan data 8 bit secara lansung ke suatu register. Instruksi yang digumakan adalah MVI, Pada praktikum ini sebelumnya kita harus memberi tahu dulu alamat program karena jika tidak diberi alamat program akan tidak bisa berjalan pada saat kita load programnya, untuk mengisikan program ke suatu register kita harus menuliskan MVI, karena MVI menunjukan kepada pengisisan suatu register secara langsung. Fungsi dari MVI adalah Instruksi yang digunakan untuk mengisi data 8 bit pada suatu lokasi memori yang alamatnya ada pada register HL. fungsi HLT yaitu untuk program tidak berhenti dengan NOP pada program, fungsi dari RST 1 yaitu jika kita menjalankan program maka progran akan berhenti dengan otomatis tanpa kita stop simulator. Yang kedua yaitu perintah memindahkan data dari registrer ke register lainnya. Instruksi yang digunakan adalah MOV, karena fungsi dari MOV adalah instruksi yang digunakan untuk mentransfer data dari r2(register sumber) ke r1(register tujuan). Pengertian kata ‘mentransfer´ di sini adalah ‘menggandakan´ atau ‘mengkopi´, karena pada akhir pelaksanaan instruksi, isi register tujuan jadi sama dengan isi register sumber. Pada penuliskan program MOV kita harus memperhatikan alamat program, starting addres, jika tidak kita set ulang starting adders maka program yang kita jalan kan tidak tahu dijalan kan dimana, untuk memindahkan suatu register ke register lain kita harus mengisiskan terlebih dahulu baru di move kan dengan perintah MOV, minyalnya kita mau memindahkan data dari A ke B maka yang harus kita lakukan yaitu dengan cara MOV A,B Yang ketiga adalah perintah mengisi data 16 bit ke pasangan register secara lansung. Instruksi yang digunakan adalah LXI, karena fungsi dari LXI adalah mengisi register pair (rp) dari nilai data d16 (alamat 16 bit). Pada program LXI ini bisa mengisi data 16 bit secara langsung ke pasangan register ,hal ini yang harus diperhatikan yaitu pasangan register yang diinginkan, hal ini karna pada LXI bisa langsung mengisikan data 16 bit langsung ke pasangan register yang diinginkan. Yang keempat adalah perintah menukar data pada pasangan register DE dengan HL. Instruksi yang digunakaan adalah XCHG, karena fungsi dari XCHG adalah menukar register H & L dengan register D & E. Pada perintah intruksi ini kita bisa 12
menukarkan suatu data pada register kepada isi regster yang lain dengan perintah xchg, serta yang harus kita masukan yang alamat lalu,megisikan dengan perintah pengisian register16 bit secara langsung.lalu kita mengisikan lagi dengan megisi register 8 secara langsung.lalu baru ditukarkan dengan perintah xchg. Yang kelima adalah perintah mengirim data dari memori dengan alamat “Adr” ke akumulator. Instuksi yang digunakan adalah LDA, karena fungsi dari LDA adalah untuk memindahkan data 8 bit dari unit memori lokasi alamat tertentu ke akumulator (register A). Yang keenam adalah perintah untuk mengirim data dari accumulator ke memori dengan alamat “Adr”. Instruksi yang digunakaan adalah STA,karena fungsi dari STA adalah menyimpan data yang berada pada akumulator (register A) ke dalam unit memori pada lokasi alamat (4 digit heksadesimal dari belakang mnemonik STA). Yang ketujuh adalah perintah membaca data dari memori dengan pengalamatan lansung dikirim ke suatu register. Instruksi yang digunakan adalah LHLD, karena fungsi dari LHLD adalah menyalin data memori pada alamat yang spesifik. Yang kedelapan adalah perintah mengirim data 2 byte ke memori dengan alamat “Adr”. Instruksi yang digunakan adalah SHLD, karena fungsi dari SHLD adalah Berfungsi menyimpan data register H & L langsung dalam memori. Yang kesembilan adalah perintah mengisi akumulator dengan data dari memori yang alamatnya ditunjukkan oleh isi pasangan register. Instruksi yang digunakan adalah LDAX, kareba fungsi dari LDAX adalah mengisi akumulator dengan data 8 bit dari lokasi memori yang alamatnya ditunjukkan oleh suatu pasangan register Dan yang terakhir adalah perintah mengisi memori yang di tunjukkan oleh pasangan register (rp) dengan data yang ada pada akumulator. Instruksi yang digunakan adalah STAX, karena fungsi dari STAX adalah menyimpan isi akumulator kelokasi memori yang alamatnya ditunjukkan oleh suatu pasangan register (rp).
13
VIII. KESIMPULAN
Dari percobaan kali ini, kita telah melakukan perintah pemindahan data, dan kita dapat mengetahui 10 kode perintah pemindahan data , yaitu
MVI r1,d8 Yaitu memindahkan data 8bit secara langsungke suatu register
MOV ri,r2 Yaitu perintah memindahkan data dari registrer ke register lainnya
LXI rp,D16 Yaitu register pair immediete, mengisi data 16 bit ke pasangan register secara lansung
XCHG Exchange digunakan untuk menukar data pada pasangan register DE dengan HL
LDA Adr Load Accumulator Direct, digunakan untuk mengirim data dari memori dengan alamat “Adr” ke akumulator
STA Adr Store accumulator direct , perintah ini mempunyai fungsi mengirim data dari accumulator ke memori dengan alamat “Adr”
LHLD Adr Load H & direct, perintah ini mirip dengan LDA Adr, yaitu membaca data dari memori dengan pengalamatan lansung dikirim ke suatu register.
SHLD Adr Store H & L Direct, kembalikan perintah LHLD Adr, yaitu akan mengirim data 2 byte ke memori dengan alamat “Adr”.
LDAX rpLoad Accumulator Indirect, yaitu mengisi akumulator dengan data dari memori yang alamatnya ditunjukkan oleh isi
14