Oleh:
Dosen Pembimbing:
Dewi Permata Sari, S.T., M.Kom
(197612132000032001)
KATA PENGANTAR
Puji dan syukur kepada Allah SWT, karena berkat anugerah, rahmat dan
karunia-Nya Laporan Praktikum Mikroprosesor ini dapat diselesaikan sesuai
dengan waktu yang telah ditentukan.
Laporan Praktikum Mikroprosesor ini dibuat dengan tujuan untuk
menumbuhkan dan melatih keterampilan tentang pekerjaan-pekerjaan yang
dilakukan dalam Mikroprosessor.
Dalam penyusunan Laporan Praktikum Mikroprosesor ini banyak pihak
yang telah membantu proses pembuatannya. Untuk itu, kepada para instuktur,
dosen dan rekan yang telah membantu menyelesaikan laporan ini penulis
mengucapkan terima kasih.
Selain itu penulis juga menyadari bahwa laporan kerja ini masih jauh dari
sempurna, oleh sebab itu penulis mengharapkan saran dan kritik yang bersifat
membangun untuk tugas-tugas yang akan datang.
Mudah-mudahan Laporan Praktikum Mikroprosesor ini dapat mengubah
pengetahuan dan bermanfaat bagi kita semua.
Penulis
DAFTAR ISI
DAFTAR GAMBAR
DAFTAR TABEL
PERCOBAAN 2
MENGENAL MIDICOM 8085
Program
Counter
Stack Pointer
Tiap Register mempunyai fungsi khusus yang tidak diunyai register lain, namun
semuanya erupakan tempat penyimpaan data sementara dalam suatu rutin
program.
- Register F
Register ini berfungsi sebagai bendera pada operasi logika, aritmatika,
penggeseran, 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 in berfungsi sebagai tempat penyimpanan sementara data 8 bit
pada proses pemrograman. Fungsinya selain sebagai tempat peyimpanan
data 16 bit, juga dapat digunakan sebagai penunjuk suatu alaat 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 aakan dijalankan berikutnya.
- Register SP
Regster ini berfungsi sebagai penunjuk alamat memori, yaitu tempat
menyimpan alamat kembali untuk perintah CALL dan tempat menyimpan
data pada pertintah 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.
V. Langkah Percobaan
V.1. Latihan 1 membuat program di alamat 9000 untuk pemindahan data dari
register HL ke memori (register M).
Org 9000
MVI L,00
MVI H,80
MVI M,DD
RST 1
V.2. Latihan 2 membuat program di alamat 9100 untuk pemindahan data dari
regitser ke register, dari register ke memori (register M) atau sebaliknya
dari memori ke register.
Org 9100
MVI L,00
MVI H,80
MOV A,M
MVI L,01
MVI H,80
MOV M,A
RST 1
V.3. Latihan 3 membuat program di alamat 9200 untuk pengisian data 16 bit ke
pasangan register secara langsung.
Org 9200
LXI H,8000
LXI B,8001
LXI D,8002
RST 1
Org 9300
LXI H,0000
MVI D,DD
MVI E,EE
XCHG
RST 1
V.5. Latihan 5membuat program di alamat 9400 untuk mengirim data dari
memori dengan alamat adr ke akumulator.
Org 9400
LDA 8000
LXI H,8002
MOV M,A
RST 1
V.6. Latihan 6 membuat program di alamat 9500 untuk mengirim data dari
akumulator dengan alamat adr.
Org 9500
LXI H,0000
LXI D,AACC
LHLD 8000
XCHG
LHLD 8002
RST 1
V.7. Latihan 7 membuat program di alamat 9600 untuk mengirim data 2 byte
ke memori dengan alamat adr, yaitu data yang ada pada register L
dikirim ke alamat adr dan data pada register HL dikirim ke alamat Adr
+ 1.
Org 9600
LHLD 8000
SHLD 8005
LHLD 8003
SHLD 8007
RST 1
RST 1
V.9. Latihan 9 membuat program di alamat 9700 untuk mengisi data pasangan
register BC dan DE ke akumulator.
Org 9700
MVI B,80
MVI C,03
STAX B
RST1
-A = Assembler
Adr. = 9000
Adr. Hex-Code Mnemonics
9000 2E 00 MVI L,00
9002 26 80 LXI H,80
9005 36 DD MVI M,DD
9006 CF RST 1
-G: Go
Start Adr.: = 9000
SZxAxPx
PC A BC DE HL M F SP (SP)
C
900 D 050
06 1540 3418 8000 54 zap 60D0
6 D D
-A = Assembler
Adr. = 9100
Adr. Hex-Code Mnemonics
9100 2E 00 MVI L,00
9102 26 80 MVI H,80
9104 36 DD MOV A,M
9105 CF MVI L,01
9107 26 80 MVI H,80
9109 77 MOV M,A
910A CF RST 1
-G: Go
Start Adr.: = 9100
SZxAxPx
PC A BC DE HL M F SP (SP)
C
910 D D
1540 3418 8001 54 zap 60D0 050D
A D D
-A = Assembler
Adr. = 9200
Adr. Hex-Code Mnemonics
9200 21 0080 LXI H,8000
9203 01 0180 LXI B,8001
9206 11 0280 LXI D,8002
9209 CF RST 1
-G: Go
Start Adr.: = 9200
SZxAxPx
PC A BC DE HL M F SP (SP)
C
920 D D 050
8001 8002 8000 54 zap 60D0
9 D D D
-A = Assembler
Adr. = 9300
Adr. Hex-Code Mnemonics
9300 21 0000 LXI H,0000
9303 16 DD MVI D,DD
9305 1E EE MVI E,EE
9307 EB XCHG
9308 CF RST 1
-G: Go
Start Adr.: = 9300
PC A BC DE HL M F SZxAxPx SP (SP)
C
930 D 050
8001 0000 DDEE 89 54 zap 60D0
8 D D
-A = Assembler
Adr. = 9400
Adr. Hex-Code Mnemonics
9400 3A 0080 LDA 8000
9403 21 0280 LXI H,8002
9406 77 MOV M,A
9407 CF RST 1
-G: Go
Start Adr.: = 9400
SZxAxPx
PC A BC DE HL M F SP (SP)
C
940 050
11 1540 3418 8002 11 54 zap 60D0
7 D
-A = Assembler
Adr. = 9500
Adr. Hex-Code Mnemonics
9500 21 0000 LXI H,0000
9503 11 CCAA LXI D,AACC
9506 2A 0080 LHLD 8000
9509 EB XCHG
950A 2A 0280 LHLD 8002
950D CF RST 1
-G: Go
Start Adr.: = 9500
SZxAxPx
PC A BC DE HL M F SP (SP)
C
950 803 3 B 050
60 2210 4494 sa 60D0
D A A o D
-A = Assembler
Adr. = 9600
Adr. Hex-Code Mnemonics
9400 21 0080 LHLD 8000
-G: Go
Start Adr.: = 9600
SZxAxPx
PC A BC DE HL M F SP (SP)
C
960 F A 366
64 8036 8010 5544 s p FFF7
C F 4 4
-A = Assembler
Adr. = 9700
Adr. Hex-Code Mnemonics
9700 21 0080 LXI H,8000
9703 46 MOV B,M
9704 16 80 MVI D,80
9706 1E 03 MVI E,03
9708 1A LDAX D
9709 CF RST 1
-G: Go
Start Adr.: = 9700
SZxAxPx
PC A BC DE HL M F SP (SP)
C
970 A 366
44 1036 8003 8000 10 s p FFF7
9 4 4
-A = Assembler
Adr. = 9700
Adr. Hex-Code Mnemonics
9700 06 80 MVI B,80
9702 0E 03 MVI C,03
9704 02 STAX B
9705 CF RST 1
-G: Go
Start Adr.: = 9700
SZxAxPx
PC A BC DE HL M F SP (SP)
C
970 A 366
44 8003 8003 8000 10 s p FFF7
5 4 4
VII. Tugas
VII.1. Tugas 1 :
Buatlah program menukar data pada pasangan register DE dan register
BC.
Pembahasan
Pada tugas kali ini, ada beberapa intruksi yang kita gunakan, yaitu
LXI,XCHG,XHTL dan POP.
Sebelum kita memulai intruksi tersebut maka kita harus
a. LXI H,0000 yang artinya memindahkan data 0000 kedalam pasangan
register HL pada address
b. LXI D,1111 yang artinya memindahkan data 1111 kedalam pasangan
register DE pada address
c. LXI B,2222 yang artinya memindahkan data 2222 kedalam pasangan
register BC pada address
d. XCHG yang artinya penukaran khusus untuk pasangan register HL
dengan pasangan register DE
e. XTHL yang artinya penukaran pasangan register HL dengan puncak
stack
f. POP reg yang artinya memasukkan data dari puncak stack ke register
yang dipilih
Setelah kita menginput data 0000 dipasangan register HL, data 1111 pada
pasangan register DE dan data 2222 pada pasangan register BC. Kita
menggunakan intruksi XCHG untuk menukarkan data pada pasangan
register HL dengan pasangan register DE, maka yang akan terjadi adalah
data 0000 skarang berada pada pasangan register DE dan data 1111 berada
pada pasangan register HL. Kemudian, fungsi dari XTHL adalah
meletakkan data 1111 dari pasangan register HL kepuncak stack. Setelah
data tersebut berada dipuncak stack, maka fungsi dari POP B adalah
menurunkan data 1111 ke register yang dipilih, pada percobaan kali ini
register yang dipilih adalah pasangan register BC. Maka, data pada
pasangan register BC menjadi 1111. Disini terlihat data 1111 yang
seharusnya terdapat pada pasangan register DE menjadi data pada
pasangan register BC.
Tetapi, perintah assembler seperti ini tidak dapat dilakukan untuk menukar
data pasangan register DE dan BC karena terlihat hanya satu data yang
berpindah yaitu 1111 tetapi data 2222 tidak berpindah dari pasangan
register BC ke pasangan register DE.
-A = Assembler
Adr. = 9000
Adr. Hex-Code Mnemonics
9000 2E 00 MVI L,00
9002 26 80 LXI H,80
9005 36 DD MVI M,DD
9006 CF RST 1
-G: Go
Start Adr.: = 9000
SZxAxPx
PC A BC DE HL M F SP (SP)
C
900 D 050
06 1540 3418 8000 54 zap 60D0
6 D D
Gambar 1.3. Tampilan Hasil Program pada Alamat 9000
6 D D
Gambar 1.4. Tampilan Register Awal
-A = Assembler
Adr. = 9100
Adr. Hex-Code Mnemonics
9100 2E 00 MVI L,00
9102 26 80 MVI H,80
9104 36 DD MOV A,M
9105 CF MVI L,01
9107 26 80 MVI H,80
9109 77 MOV M,A
910A CF RST 1
Gambar 1. 5. Tampilan Assembler pada Alamat 9100
-G: Go
Start Adr.: = 9100
SZxAxPx
PC A BC DE HL M F SP (SP)
C
910 D D
1540 3418 8001 54 zap 60D0 050D
A D D
Gambar 1. 6. Tampilan Hasil Program pada Alamat 9100
-A = Assembler
Adr. = 9200
Adr. Hex-Code Mnemonics
9200 21 0080 LXI H,8000
9203 01 0180 LXI B,8001
9206 11 0280 LXI D,8002
9209 CF RST 1
Gambar 1.8. Tampilan Assembler pada Aamat 9200
Selanjutnya untuk melihat program yang telah dibuat tekan [G] >
9200 > [CR]. Maka akan tampil pada layar seperti berikut:
-G: Go
Start Adr.: = 9200
SZxAxPx
PC A BC DE HL M F SP (SP)
C
920 D D 050
8001 8002 8000 54 zap 60D0
9 D D D
Gambar 1.9. Tampilan Hasil Program pada Alamat 9200
SZxAxPx
PC A BC DE HL M F SP (SP)
C
920 D D 050
8001 8002 8000 54 zap 60D0
9 D D D
Gambar 1. 10. Tampilan Register Awal
Selanjutnya untuk mengisi program tekan [A] > isi Adr.= 9300 >
[CR]. Lalu isikan program seperti yang tertera pada modul, sehingga
pada layar tampil seperti berikut:
-A = Assembler
Adr. = 9300
Adr. Hex-Code Mnemonics
9300 21 0000 LXI H,0000
9303 16 DD MVI D,DD
9305 1E EE MVI E,EE
9307 EB XCHG
9308 CF RST 1
Gambar 1. 11. Tampilan Assembler pada Alamat 9300
Lalu eksekusi program yang telah dibuat dengan menekan [G] > Adr.
= 9300 > [CR]. Maka akan tampak pada layar seperti berikut:
-G: Go
Start Adr.: = 9300
SZxAxPx
PC A BC DE HL M F SP (SP)
C
930 D 050
8001 0000 DDEE 89 54 zap 60D0
8 D D
Gambar 1. 12. Tampilan Hasil Program pada Alamat 9300
Langkah selanjutnya tekan [A] > isi Adr= 9400 > [CR] masukkan
program pada kolom mnemonics sehingga pada layar tampak seperti
gambar berikut:
-A = Assembler
Adr. = 9400
Adr. Hex-Code Mnemonics
9400 3A 0080 LDA 8000
9403 21 0280 LXI H,8002
9406 77 MOV M,A
9407 CF RST 1
Gambar 1. 14. Tampilan Assembler pada Alamat 9400
Kemudian tekan [G] > isi Adr= 9400 > [CR], maka akan tamil
seperti berikut:
-G: Go
Start Adr.: = 9400
SZxAxPx
PC A BC DE HL M F SP (SP)
C
940 050
11 1540 3418 8002 11 54 zap 60D0
7 D
Gambar 1. 15. Tampilan Hasil Program pada Alamat 9400
Beberapa poin yang terdapat pada latihan 5 adalah:
- Terlihat pada hasil percobaan register A atau akumulator bernilai
sama dengan memori atau regisster M. Hal ini disebabkan oleh dua
program yang terdapat pada alamat 9400, pertama perintah LDA
8000 menyebabkan pindahnya data dari memori yang bernilai 11 di
mana nilai 11 ditentukan oleh pasangan register HL sedangkan yang
kedua perintah MOV M,A yang memiliki arti memindahkan register
A menuju register M.
- Kemudian program LXI H,8002 yang berarti mengisi pasangan
register HL dengan konstanta 8002.
-A = Assembler
Adr. = 9500
-G: Go
Start Adr.: = 9500
SZxAxPx
PC A BC DE HL M F SP (SP)
C
950 803 3 B 050
60 2210 4494 sa 60D0
D A A o D
Gambar 1. 18. Tampilan Hasil Program pada Alamat 9500
g. Utuk memulai membuat program pada alamat 9600, tekan [R] > [CR].
Maka akan didapat gambar berikut:
4 4 4
Gambar 1. 19. Tampilan Awal Register
Lalu tekan [Esc]. Kemudian tekan [A] untuk membuat program dan isi
alamat dengan nilai 9600 lalu masukkan isi program. Dan tekan [Esc]
untuk mengakhiri perintah. Maka layar akan menampilkan gambar
berikut:
-A = Assembler
Adr. = 9600
Adr. Hex-Code Mnemonics
9400 21 0080 LHLD 8000
9203 01 0180 SHLD 8005
9206 11 0280 LHLD 8003
9209 CF SHLD 8007
RST 1
Gambar 1. 20. Tampilan Assembler pada Alamat 9600
-G: Go
Start Adr.: = 9600
SZxAxPx
PC A BC DE HL M F SP (SP)
C
960 F A 366
64 8036 8010 5544 s p FFF7
C F 4 4
Gambar 1. 21. Tampilan Hasil Program pada Alamat 9600
Pada percobaan kali ini, register yang berubah hanya register H,L, dan
M. Hal ini disebabkan dengan adanya perintah LHLD dan SHLD, di
mana instruksi ini merupakan instruksi yang bekerja pada pasangan
register HL, sedangkan register M atau memori akan berubah nilainya
sesuai dengan yang ditentukan pasangan register HL.
- LHLD 8000 berarti mengisi register HL engsn dsts 16 bit yang ada
pada alamat 8000 dan (8000 + 1).
- SHLD 8005 berarti menyimpan isi pasangan register HL pada alamat
8005 (8005 + 1).
- LHLD 8003 berarti mengisi register HL engsn dsts 16 bit yang ada
pada alamat 8003 dan (8003 + 1).
- SHLD 8007 berarti menyimpan isi pasangan register HL pada alamat
8007 (8007 + 1).
-A = Assembler
Adr. = 9700
Adr. Hex-Code Mnemonics
9700 21 0080 LXI H,8000
9703 46 MOV B,M
9704 16 80 MVI D,80
Lalu tekan [G] untuk mengeksekusi program yang telah dibuat, dan
isikan alamat 9700 pada Adr.
Sehingga layar akan menampilkan seperti gambar berikut:
-G: Go
Start Adr.: = 9700
SZxAxPx
PC A BC DE HL M F SP (SP)
C
970 A 366
44 1036 8003 8000 10 s p FFF7
9 4 4
Gambar 1. 24. Tampilan Hasil Program pada Alamat 9700
-A = Assembler
Adr. = 9700
Adr. Hex-Code Mnemonics
9700 06 80 MVI B,80
9702 0E 03 MVI C,03
9704 02 STAX B
9705 CF RST 1
Gambar 1. 26. Tampilan Assembler pada Alamat 9700
Lalu tekan [G] > isi alamat Adr.= 9700 > [CR] untuk mengeksekusi
program yang telah dibuat.
Berikut adalah hasil program yang telah dibuat:
-G: Go
Start Adr.: = 9700
SZxAxPx
PC A BC DE HL M F SP (SP)
C
970 A 366
44 8003 8003 8000 10 s p FFF7
5 4 4
Gambar 1. 27. Tampilan Hasil Program pada Alamat 9700
IX. Kesimpulan
Kesimpulan yang dapat ditarik dari percobaan kali ini adalah :
Terdapat beberapa instruksi dalam mengoperasikan Midicom 8085,
yaitu sebagai berikut :
- MVI berarti mengisi suatu register dengan konstanta 8 bit.
- MVI A,M berarti mengisi register A dengan data 8 bit yang ada pada
register M.
- LXI mengisi suatu pasangan register dengan konstanta 16 bit.
- XCHG berarti menukar data16 bit antara register DE dan HL.
- LDA berarti memindahkan data 8 bit dari suatu alamat dalam memori
ke akumulator.
- LHLD berarti mengisi register HL dengan data 16 bit yang ada pada
alamat addr dan (addr + 1).
- SHLD berarti menyimpan isi pasangan register HL pada alamat addr
(addr + 1).
- LDAX berarti memindahkan data dari unit memori yang alamatnya
ditunjukan oleh suatu pasangan register ke akumulator, serta
- STAX yang berarti menyimpan isi akumulator ke alamat yang
ditunjukan oleh suatu pasangan register..
Selain hal di atas, penulis baru menyadari bahwa memori akan selalu
berubah tergantung dengan nilai yang ada pada pasagan register HL.