87180853 perc 2 mikroprosesor memory register roy 2
Post on 03-Jan-2016
44 Views
Preview:
TRANSCRIPT
PERCOBAAN II
REGISTER / MEMORI
I. Tujuan Percobaan
Memahami berabagai register dan fungsi-fungsinya.
Memahami penggunaan register dan memori sebagai sarana pemindahan
data.
Memahami penggunaan beberapa perintah pemindahan data.
II . Alat dan Bahan
Seperangkat Midicom, yang terdiri dari :
1. Monitor
2. Papan tombol
3. CPU (Central Processing Unit) 8085
III. Dasar Teori
Macam-macam Register
Accumulator Register Bendera
Register B Register C
Register D Register E
Register H Register L
Register 8 Bit Register 16 Bit
→
→
→
→
PSW*
Register Pair BC
Register Pair DE
Register Pair HL
Program Counter
Stack Pointer
* Processor Status Word
Gambar 2.1 Macam Register
Mikroprosesor 8085 mempunyai bermacam-macam register, berkapasitas 8 bit
dan apabila dua buah register digabungkan dapat membentuk sebuah pasangan register
dengan kapasitas 16 bit. Disamping itu tersedia pula register dengan kapasitas khusus
16 bit.
Tiap register mempunyai fungsi khusus yang tidak dipunyai oleh register lain, namun
semuanya merupakan tempat penyimpanan data sementara dalam suatu rutin program.
Fungsi khusus masing-masing register dapat dijelaskan sebagai berikut:
Register A
Register ini dikenal juga dengan nama Akumulator, fungsinya sebagai tempat
menyimpan data pada perhitungan matematika, logika, dan proses
pembacaan/pengisian data pada memori.
Disamping itu, pada perintah masukan/keluaran, perbandingan, pergeseran data
juga disimpan pada akumulator.
Lebih rinci penggunaan register ini akan dibahas pada bab berikutnya saat
membahas perintah CPU 8085.
Register F
Register ini berfungsi sebagai bendera pada operasi logika, aritmatika, pergeseran,
perbandingan dan lain-lain. Tiap bitnya mempunyai fungsi tersendiri. Bit tersebut
digunakan sebagai penanda pada rutin percabangan. Secara rinci register bendera
akan dijelaskan pada percobaan 3.
Register bendera bersama-sama dengan Akumulator disebut PSW (Processor
Status Word), yaitu sebuah register dengan kapasitas 16 bit.
Register B, C, D, E, H, L
Register ini berfungsi sebagai tempat penyimpanan sementara data 8 bit pada
proses pemrograman. Register ini jika dipasangkan seperti terlihat pada Gambar
2.1 akan membentuk suatu register dengan kapasitas 16 bit dan disebut sebagai
pasangan register, fungsinya selain sebagai tempat penyimpanan data 16 bit, juga
dapat digunakan sebagai penunjuk suatu alamat memori, misalnya pasangan
register HL sebagai penunjuk alamat memori register M.
Register PC (program counter)
Program Counter merupakan penunjuk alamat perintah yang akan dijalankan oleh
CPU. Pasangan register ini akan bertambah nilainya secara otomatis sesuai dengan
alamat perintah yang akan dijalankan berikutya.
Register SP (stack pointer)
Register ini berfungsi sebagai penunjuk alamat memori, yaitu tempat menyimpan
alamat kembali untuk perinta CALL dan tempat menyimpan data pada perintah
PUSH-POP. Keterangan lebih jelas tentang register ini akan dibahas pada
percobaan 7.
Register M (memori)
Register ini sebetulnya adalah memori, karena penunjukkan data pada memori
harus berdasarkan alamatnya, maka pada register M ini penunjukkan alamatnya
ditentukan oleh isi pasangan register HL.
Memori
Seperti yang telah dibahas pada percobaan I, memori penunjang CPU 8085 pada
Midicom terdiri dari EPROM (@0000-@3FFF) dan RaM (@6000-@FFFF). Karena
RAM pada lokasi @6000-@6FFF digunakan untuk cadangan memori bagi Midicom
Perintah Pemindahan Data
1. MVI r1,d8
Move immediate yaitu memindahkan secara langsung data 8 bit (d8) ke suatu
register r1
2. MOV r1,r2
Mov data yaitu perintah untuk memindahkan suatu data dari register ke register,
register memori atau sebaliknya dari memori ke register
Data dipindahkan/diduplikatkan dari operand 2(r2) ke operand 1 (r1). Sama
seperti perintah MVI, maka r1 dan r2 merupakan register 8 bit
3. LXI rp, d16
Load register pair immediate, yaitu mengisikan data 16 bit ke pasangan register
secara langsung. Perintah yang berhubungan dengan pasangan register selalu
ditandai dengan menggunakan huruf “X” kecuali pada perintah XRA,XRI.
4. XCHG
Exchange digunakan untuk menukar data pada pasangan register DE dengan
HL. Data pada E ditukar dengan data pada L sedangkan data pada D di tukar
dengan H
5. LDA Adt
Load accumulator direct, mengirimkan data dari memori dengan alamat “Adr”
ke akumulator. Perintah ini di gunakan untuk membaca data pada suatu lokasi
memori dengan alamat di tunjukkan secara langsung bersama kode operasinya.
6. STA Adr
Store accumulator direct, perintah ini mempunyai suatu fungsimengrim data dari
akumulator ke memori dengan alamat “Adr”. Perintah LDA Adr dan STA Adr
merupakan perintah dengan model pengalamatan ;ansung artinya alamat memori
yang merupakan tujuan ataupun asal pengiriman data ikut dituliskan dalam
progam
7. LHLD Adr
Load H & L direct, perintah ini mirip dengan LDA Adr, yaitu membaca data
dari memori dengan pengalamatan langsung dan kirimkan ke suatu register.
Perbedaan antara keduanya adalah kapasitas data yang dibaca, disini data yang
dikirimkan adalah 16 bit atau 2 byte
8. SHLD Adr
Store H & L direct, kebalikan perintah LHLD Adr, perintah ini akan
mengirimkan data 2 byte ke memori dengan alamat “Adr” yaitu data pada
register L dikirim ke alamat “Adr” dan data register H dikirim ke alamat
“Adr+1”
9. LDAX rp
Load accumulator indirect , yaitu mengisi akumulator dengan data dari memori
yang alamatnya di tunjukkan oleh isi pasangan register (rp). Perintah ini mirip
dengan LDA Adr hanyan saja alamt memori tidak di berikan secara langsung
mengikuti kode operasinya, tettapi melalui perantara register
10. STAX rp
Store acumulator indirect kalau LDAX rp berfungsi untuk mengisi akumulator.
STAX rp berfungsi untuk memori dengan alamat ditunjukkan oleh pasangan
register (rp) dengan data yang ada pada akumulator
IV. Langkah Percobaan dan hasil percobaan
1. MVI r1,d8
-A = assembler
Adr = 8000
Mnemonics
MVI L,00
MVI H,80
MVI M,CC
RST 1
Isi alamat awal : [M]@8000 2E ketika program di [GO]
Isi alamat setelah di [GO] : [M]@8000 CC
2. MOV r1,r2
-A = assembler
Adr = 7006 7100
Adr Hex-code Mnemonics
7000 2E 00 MVI L,00
7102 26 80 MVI H,80
7104 7E MOV A,M
7105 2E 01 MVI L,01
7107 26 80 MVI H,80
7109 77 MOV M,A
710A CF RST 1
- T = trace/single step
start Adr.: = 710A 7100
PC A BC DE HL M F SZxAxPxC SP (SP)
7100 2E 00 MVI L,00 7102 64 0000 0101 8000 AA 54 ZAP 60CE 7007
7102 26 80 MVI H,80 7104 64 0000 0101 8000 AA 54 ZAP 60CE 7007
7104 7E MVI A,M 7105 AA 0000 0101 8000 AA 54 ZAP 60CE 7007
7105 2E 01 MVI L,01 7107 AA 0000 0101 8001 11 54 ZAP 60CE 7007
7107 26 80 MVI H,80 7109 AA 0000 0101 8001 11 54 ZAP 60CE 7007
7109 77 MVI M,A 710A AA 0000 0101 8001 AA 54 ZAP 60CE 7007
710A CF RST 1 0008 AA 0000 0101 8001 AA 54 ZAP 60CC 710B
Isi data awal pada : [M]@8000 CC dan [R]A = 64 ketika program
di [GO]
Isi alamat setelah di [GO] : R]A = CC
3. LXI rp, d16
-A = assembler
Adr = 710B 7200
Adr Hex-code Mnemonics
7200 21 0080 LXI H,8000
7203 01 0180 LXI B,8001
7206 11 80 LXI D,8002
7209 CF RST 1
-T = Trace /single step
Start Adr.: 8005 7200
PC A BC DE HL M F SZxAxPxC SP (SP)
7200 21 0080 LXI H,8000 7203 64 0000 0101 8000 00 54 ZAP 60D0 4545
7203 01 0180 LXI B,8001 7206 64 8001 0101 8000 00 54 ZAP 60D0 4545
7206 11 80 LXI D,8002 7209 64 8001 8002 8000 00 54 ZAP 60D0 4545
7209 CF RST 1 0088 64 8001 8002 8000 00 54 ZAP 60D0 4545
Isi data awal pada : [R] [H] = L = BB, H= 61
[R] [B] = B = 00, C= 00
[R] [D] = D = 01 , E= 01, ketika program di [GO]
Isi alamat setelah di [GO] : [R]H = 80 dan [R]L= 00
4. XCHG
-A = assembler
Adr = 8000
Mnemonics
LXI D,9000
MVI B,AA
MVI C,CC
XCHG
RST 1
Isi data Register awal :[R]DE 9000 dan [R]B AA, [R]C CC ketika program di [GO]
Isi data setelah di [GO] :- Isi Data [R] D menjadi AA dan Isi Data [R] B menjadi 90
- Isi Data [R] E menjadi CC dan Isi Data [R] C menjadi 00
5. LDA Adr
-A = assembler
Adr = 7400
Mnemonics
LDA 8000
LXI H,8002
MOV M,A
RST 1
Isi data awal : @8000 CC dan [R] A = 64
ketika program di [GO]: [R] A = CC
6. STA Adr
-A = assembler
Adr = 7408 7500
Adr Hex-code Mnemonics
7500 3A 0070 LDA 7000
7503 32 0380 STA 8003
7506 3A 0170 LDA 7001
7509 32 0480 STA 8004
750C CF RST 1
-T = Trace /single step
Start Adr.: 7408 7500
PC A BC DE HL M F SZxAxPxC SP (SP)
7500 3A 0070 LDA 7000 7503 2E 0000 0101 8200 AA 54 ZAP 60CA 7408
7503 32 0380 STA 8003 7506 2E 0000 0101 8200 AA 54 ZAP 60CA 7408
7506 3A 0170 LDA 7001 7509 00 0000 0101 8200 AA 54 ZAP 60CA 7408
7509 32 0480 STA 8004 750C 00 0000 0101 8200 AA 54 ZAP 60CA 7408
750C CF RST 1 0008 00 0000 0101 8200 AA 54 ZAP 60CB 750D
Isi data awal :[R] A = 64 dan [M] @8003 2E, ,ketika program di [GO]
Isi data setelah di [GO] : [M] @8003 64
7. LHLD Adr
-A = assembler
Adr = 750D 7600
Adr Hex-code Mnemonics
7600 21 0000 LXI H,0000
7603 11 CCAA LXI D,AACC
7606 2A 0080 LHLD 8000
7609 EB XCHG
760A 2A 028 LHLD 8002
760D CF RST 1
-T = Trace /single step
Start Adr.: 0008 7600
PC A BC DE HL M F SZxAxPxC SP (SP)
7600 21 0000 LXI H,0000 7603 00 0000 0101 0000 AF 54 ZAP 60CB 7500
7603 11 CCAA LXI D,AACC 7606 00 0000 AACC 0000 AF 54 ZAP 60CB 7500
7606 2A 0080 LHLD 8000 7609 00 0000 AACC AAAA 9C 54 ZAP 60CB 7500
7609 EB XCHG 760A 00 0000 AAAA AACC 61 54 ZAP 60CB 7500
760A 2A 028 LHLD 8001 760D 00 0000 AAAA 2EAA 2A 54 ZAP 60CB 7500
760D CF RST 1 0008 00 0000 AAAA 2EAA 2A 54 ZAP 60C6 760E
Isi data awal : [M]@8000 = 06
[M]@8001 = 07
[R]H = 80
[R]L = 00 ketika program di [GO]
Isi data setelah di [GO] : [R]H = 07
[R]L = 06
8. SHLD Adr
-A = assembler
Adr = 760E 7700
Adr Hex-code Mnemonics
7700 2A 0080 LHLD 8000
7703 22 0580 SHLD 8005
7706 2A 0380 LHLD 8003
7709 22 0780 SHLD 8007
770C CF RST 1
-T = Trace /single step
Start Adr.: 617E 7700
PC A BC DE HL M F SZxAxPxC SP (SP)
7700 2A 0080 LHLD 8000 7703 FF FF70 3322 1100 1D 54 ZAP 60C4 8005
7703 22 0580 SHLD 8005 7706 FF FF70 3322 1100 1D 54 ZAP 60C4 8005
7706 2A 0380 LHLD 8003 7709 FF FF70 3322 FF32 61 54 ZAP 60C4 8005
7709 22 0780 SHLD 8007 770C FF FF70 3322 FF32 61 54 ZAP 60C4 8005
770C CF RST 1 0008 FF FF70 3322 FF32 61 54 ZAP 60C4 770D
Isi data awal : [M]@8000 = 01
[M]@8001 = 02
[R]D = AA
[R]E = FF ketika program di [GO]
Isi data setelah di [GO] : [M]@8000 = AA
[M]@8001 = FF
9. LDAX
-A = assembler
Adr = 770D 7800
Adr Hex-code Mnemonics
7800 21 0080 LXI H,8000
7803 46 MOV B,M
7804 16 80 MVI D,80
7806 1E 03 MVI E,03
7808 1A LDAX
7809 CF RST 1
-T = Trace /single step
Start Adr.: 0008 7800
PC A BC DE HL M F SZxAxPxC SP (SP)
7800 21 0080 LXI H,8000 7803 FF 0000 3322 8000 00 54 ZAP 60C2 770D
7803 46 MOV B,M 7804 FF 0000 3322 8000 00 54 ZAP 60C2 770D
7804 16 80 MVI D,80 7806 FF 0000 8022 8000 00 54 ZAP 60C2 770D
7806 1E 03 MVI E,03 7808 FF 0000 8003 8000 00 54 ZAP 60C2 770D
7808 1A LDAX 7809 33 0000 8003 8000 00 54 ZAP 60C2 770D
7809 CF RST 1 0008 33 0000 8003 8000 00 54 ZAP 60CD 780A
Isi data awal : [M]@8003 = 01
[R]B = 00 ketika program di [GO]
Isi data setelah di [GO] : [R]B = 01
10. STAX Adr
-A = assembler
Adr = 780E 7900
Adr Hex-code Mnemonics
7900 11 0080 LXI D,8000
7903 16 08 MVI D,80
7905 0E 03 MVI C,03
7907 1D LDAX D
7908 02 STAX B
7909 CF RST 1
-T = Trace /single step
Start Adr.: 8004 7900
PC A BC DE HL M F SZxAxPxC SP (SP)
7900 11 0080 LXI D,8000 7903 00 8003 8000 8000 00 54 ZAP 60C0 780A
7903 16 08 MVI D,80 7905 00 8003 8000 8000 00 54 ZAP 60C0 780A
7905 0E 03 MVI C,03 7907 00 8003 8000 8000 00 54 ZAP 60C0 780A
7907 1D LDAX D 7908 00 8003 8000 8000 00 54 ZAP 60C0 780A
7908 02 STAX B 7909 00 8003 8000 8000 00 54 ZAP 60C0 780A
7909 CF RST 1 0008 00 8003 8000 8000 00 54 ZAP 60BE 790A
Isi data awal : [M]@8003 = 03
[R]D = 00 ketika program di [GO]
Isi data setelah di [GO] : [M]@8003 = 03
[R]D = 03
PRAKTEK MIKROPROSESSOR
PERCOBAAN II
MEMORI/REGISTER
Disusun Oleh :
REBBY FUDI ALEXANDER 0610 3032 0259
RUDY YANROY SILALAHI 0610 3032 0260
KELAS 4 EB
KELOMPOK 3 (TIGA)
Tanggal Praktek 27 Maret 2012
POLITEKNIK NEGERI SRIWIJAYA
PALEMBANG
2012
ANALISA
Rudy Yanroy Silalahi
Perintah Pemindahan Data
1. MVI r1,d8
Pada perintah ini dapat dianalisa pada instruksi MVI
M,CC bahwa MVI adalah instruksi untuk menjalankan suatu
perintah dimana perintah untuk mengubah isi memori data dari
suatu alamat secara langsung. Perintah M,CC akan mengubah isi
memori data suatu alamat menjadi CC.dan jika dimasukkan
perintah M,BB, maka akan mengganti isi memori data suatu
alamat menjadi BB.
2. MOV r1,r2
Pada perintah ini dapat dianalisa, Mov data akan
memindahkan data dari register 2 ke register 1. Pada percobaan,
pada keadaan awal alamat Pada @8000 yang berisi data CC dan
register A adalah 64. Ketika program dijalankan isi data pada
register A berubah menjadi CC.karena isi data pada @8000 telah
dipindahkan kedalam register A.
3. LXI rp, d16
Pada perintah ini dapat dianalisa, perintah Load register
pair immediate, yang akan mengisikan data 16 bit ke pasangan
register secara langsung.instruksi pada program yang dimulai
dari alamat @7200. Pada @7200 register H berisikan data 8000,
pada @7203 register B berisi data 8001 dan pada @7206 register
D berisi data 8002. Dan ketika program dijalankan pada trace
dapat dilihat PC yang beralamat @7203 register H berisi data
8000, pada PC yang beralama @7206 register B berisi data
8001.dan Pada PC yang beralamat pada @7209 register D
berisi data 8002.
4. XCHG
Pada perintah ini dapat dianalisa, perintah Exchange akan
menukar isi data pada pasangan register DE dengan BC. Sehingga Data
pada register D akan saling menukar isi data dengan register B
sedangkan data isi pada register E akan saling menukar isi data dengan
register C.
5. LDA Adr
Pada perintah ini dapat dianalisa, Load accumulator direct, akan
mengirimkan data dari memori dengan alamat “Adr” ke akumulator. Jika
isi memori pada @8000 adalah CC dan pada register di alamat yang
sama yaitu A = 64.Perintah LDA akan membaca secara langsung isi
register A pada @8000 secara langsung. Dapat juga ketika ingin melihat
isi register B pada @8000 cukup dengan mengganti pada instruksi
menjadi MOV M,B. maka program akan membaca isi register B pada
alamat @8000.
6. STA Adr
Pada perintah ini dapat dianalisa, Store accumulator direct, kan
memerintahkan isi memori suatu alamat berubah menjadi isi data dari
sebuah register. Perintah STA dapat mengubah Isi memori pada @8003
yang awalnya berisi 2E akan diubah isi datanya menjadi sama dengan isi
dari register A ataupun isi dari register yang lain.
7. LHLD Adr
Pada perintah ini dapat dianalisa, Load H & L direct, perintah ini
mirip dengan LDA Adr, yaitu membaca data dari memori dengan
pengalamatan langsung dan kirimkan ke suatu register. Hanya saja
LHLD mampu menjalankan data yang dikirimkan sebesar 16 bit atau 2
byte. Pada percobaan perintah LHLD digunakan untuk membaca isi
register H dan L dengan isi memori dari @8000 dan @8001.Pada
register H yang awalnya adalah 80 diubah dan menggunakan isi data
pada memori pada @8000 menjadi 06, dan pada register L yang awalnya
adalah 00 diubah dan menggunakan isi data pada @8001 menjadi 07.
8. SHLD Adr
Pada perintah ini dapat dianalisa, Store H & L direct, kebalikan
perintah LHLD Adr, pada perintah digunakan untuk membaca isi pada
@8000 akan menggunakan isi data pada register D dan pada @8001
yang merupakan Adr+1 akan menggunakan isi data pada register E.
9. STAX rp
Pada perintah ini dapat dianalisa, Store acumulator indirect kalau
LDAX rp berfungsi untuk mengisi akumulator.tapi STAX rp berfungsi
untuk mengisi memori dengan alamat ditunjukkan oleh pasangan register
(rp) dengan data yang ada pada akumulator. Pada percobaannya isi pada
register D akan membaca isi memor pada @8003. Dimana pada kadaan
awal isi register D adalah 00 dan isi meori pada @8003 adalah 03.
STAX akan memasukkan isi data pada @8003 ke dalam isi register
D.Sehingga [R]D = 03.
10. LDAX rp
Pada perintah ini dapat dianalisa, Load accumulator indirect ,
yaitu mengisi akumulator dengan data dari memori yang alamatnya di
tunjukkan oleh isi pasangan register (rp). Pada percobaan pada keadaan
awal [R]B = 00 dan [M]@8003 adalah 01 ketika program dijalankan isi
data pada register B berubah dari 00 menjadi 01 karena isi data pada
@8003 telah dimasukkan ke dalam register B. Perintah ini mirip dengan
LDA Adr hanya saja alamat memori tidak di berikan secara langsung
mengikuti kode operasinya, tetapi melalui perantara registernya.
Kesimpulan
Rudy Yanroy Silalahi
- Sebelum melakukan perintah –perintah diatas terlebih dahulu di cek isi
memori suatu alamat/register sehingga dapat membedakan perubahan-
perubahan yang terjadi ketika suatu perintah dimasukkan dan program
dijalankan.
- Perintah Exchange digunakan untuk menukar data pada pasangan register DE
dengan HL. Data pada E ditukar dengan data pada L sedangkan data pada D di
tukar dengan H.
- Perintah LDA Adr dan STA Adr merupakan perintah yang sama-sama
melakukan pengaatan secara langsung, hanya saja Perintah LDA Adr di
gunakan untuk membaca data pada suatu lokasi memori dengan alamat di
tunjukkan secara langsung bersama kode operasinya sedangkan perintah STA
Adr adalah perintah dengan model pengalamatan lansung alamat memori yang
merupakan tujuan ataupun asal dengan pengiriman data ikut dituliskan dalam
program.
- Perbedaan antara Perintah LHLD dengan LDA Adr, adalah kapasitas data yang
dibaca, disini data yang dikirimkan pada perintah LHLD adalah 16 bit atau 2
byte.
- Pada STAX rp Hindari alamat yang sama karena akan membuat system error
- Batasan suatu alamat adalah 7000H – FFFFH (00 tidak bisa diubah)
top related