Tugas Laporan Loop mikroprosessor 8085

22
LAPORAN PRAKTIKUM MIKROPROSESSOR Program dengan loop NAMA : Ahmad Zulfan NIM : 1120402010 KELAS : D 2 PRODI : TEKNIK TELEKOMUNIKASI

description

simulator 8085

Transcript of Tugas Laporan Loop mikroprosessor 8085

Page 1: Tugas Laporan Loop mikroprosessor 8085

LAPORAN PRAKTIKUMMIKROPROSESSOR

Program dengan loop

NAMA : Ahmad Zulfan

NIM : 1120402010

KELAS : D 2

PRODI : TEKNIK TELEKOMUNIKASI

KEMENTRIAN PENDIDIKAN NASIONAL

POLITEKNIK NEGERI LHOKSEUMAWE

Page 2: Tugas Laporan Loop mikroprosessor 8085

Lembar Pengesahan

Judul Praktikum : Pemrograman java dengan JCREATOR

No Praktikum : 02/ LAB. JARINGAN KOMPUTER

Nama : Ahmad Zulfan

Nim : 1120402010

Jurusan/ Prodi : T.Elektro/ T.Telekomunikasi

Tanggal Praktikum : 2 – 03 - 2013

Tanggal Penyerahan : 16 – 03 - 2013

Nilai :

Dibuat Diperiksa Mahasiswa, Dosen Pembimbing,

( Ahmad Zulfan) (Hanafi, ST, M,Eng) Nim. 1120402010 Nip. 196901172002121001

i

Page 3: Tugas Laporan Loop mikroprosessor 8085

Daftar Isi

Lembar Pengesahan ………………………… i

Daftar isi ………………………………… ii

I. Tujuan praktikum ………………………… 1

II. Dasar Teori ………………………………… 1

III. Peralatan yang digunakan …………………… 1

IV. Teori penunjang ……………………………… 2

V. Langkah percobaan ………………………….. 6

VI. Program dan Flowchart ……………………… 7

VII. Penyelesaian tugas …………………………… 10

VIII. Analisa ………………………………… 15

IX. Kesimpulan ………………………………… 16

X. Daftar pustaka ………………………… 17

ii

Page 4: Tugas Laporan Loop mikroprosessor 8085

Program dengan loop

I. Tujuan 1. Untuk membuat mahasiswa dapat mempelajari microprocessor dengan

baik.

II. Dasar Teori

Salah satu kelebihan microprocessor/komputer adalah dapat melaksanakan suatu tugas yang sama secara berulang-ulang untuk melakukan tugas semacam ini. Suatu program harus mempunyai kemampuan untuk kembaki ke instruksi sebelumnya (membuat loop).

Microprocessor melaksanakan program loop dengan menggunkan kelompok instruksi percabangan (lompat). Dengan adanya instruksi percabangan maka urutan eksekusi program yang normal (dari atas ke bawah) akan berubah. Pada umumnya instruksi yang digunakan untuk membuat loop adalah JUMP, CALL, RETURN, dan RESTART.

Sasaran Belajar

Membedakan penggunaakn instruksi percabangan bersyarat dan tidak bersyarat.

Membuat bagan alir untuk program-program yang menggunakan loop. Membuat progran dengan loop dengan serta mengeksekusinya.

III. Peralatan yang Digunkan Komputer Trainer microprocessor MIDIKOM

1

Page 5: Tugas Laporan Loop mikroprosessor 8085

IV. Teori Penunjang

Microprocessor 8085 menyediakan 29 instruksi percabangan (lompat) yang dapat digunakan oleh pemakai. Ke 29 instruksi tersebut terbagi ke dalam kelompok instruksi percabangan bersyarat dan tanpa syarat.

Instruksi JMP tidak bersyarat dan bersyarat

Instruksi percabangan tidak bersyarat, misalnya JMP instruksi ini merupakan tiga byte instruksi yakni byte pertama untuk kode operasi instruksi tersebut dan byte ke dua dan ketiga untuk alamat. (lihat gambar 3.1a).

Memori Urutan program utama

Loop 2

(a)

Loop 1

(b)

Gambar 3.1 instruksi JMP

Apabila instruksi JMP ini dieksekusi, alamat yang terdapat pada byte dua dan tiga akan dipindahkan ke program counter (register PC). Dengan demikian microprocessoe akan menjemput instruksi selanjutnya dengan alamat yang ada di program counter. Instruksi JMP dapat digunakan untuk membuat loop maju (loop1) atau mundur (loop2).

2

Instruksi 1

Instruksi 2

Instruksi 3

Instruksi 4

Instruksi 5

Instruksi 6

Instruksi 7

Kode operasi instruksijump

Byte alamat(rendah)

Byte alami(tinggi)

Page 6: Tugas Laporan Loop mikroprosessor 8085

Seperti terlihat pada gambar 3.1b instruksi ini juga dapat digunakan untuk menjalankan program terus-menerus dalam suatu loop kontinyu instruksi-instruiksi lompat bersyarat terdiri atas :

JZ (jump if zero) JZN (jumpif zero flag not set) JNC (jump if carry flag is 0) JC (jump if carry flag is 1) JPO (jump if the parity of the byte in the accumulator is odd) JP (jump if sign bit 0, menunjukkan isi akumulator adalah positif) JM (jump if sign bit is 1, untuk menunjukkan bahwa akumulator berisi

bilangan negatif)

Instruksi-instruksi tersebut di atas hanya akan dilaksanakan oleh MPU. Apabila kondisi yang diminta dipenuhi.

Sebagai contoh pada instruksi JZ (jump is zero), percabangan hanya akan menjadi apabila bit zero dari register flag adalah satu (Z = 1). Zero flag akan berlogika satu apabila hasil suatu operasi aritmatika atau logika sama dengan nol. (isi akumulator = 00h). Selain instruksi-instruksi JUMP di atas, terdapat pula instruksi PCHL. Instruksi ini akan menggantikan alamat yang ada di program counter dengan isi register HL. Apabila instruksi PCHL dilaksanakan, maka akan terjadi percabagan secara tidak bersyarat.

Instruksi CALL, Return

Instruksi-instruksi CALL alamat digunakan untuk memanggil suatu subprogram atau rutin. Rutin adalah suatu bagian program pendek yang melaksanakan tugas tertentu. Misalnya perkalian dua buah bilangan. Jika rutin tersebut akan digunakan berulang kali dalam suatu program, maka dapat ditulis sekali pada memori sebagai subrutin, dan dapat dipanggil setiap kali dipergukan.

Apabila instruksi CALL ini dieksekusi, maka isi program counter akan diganti dengan alamat awal dari subrutin yang dipanggil dalam memori. Urutan eksekusi program oleh microprocessor akan seperti yang ditunjukkan oleh gambar 3.2.

3

Page 7: Tugas Laporan Loop mikroprosessor 8085

Untuk mengembalikan microprocessor ke dalam program utama (setelah menyelesaikan subrutin), instruksi RETURN sebagai pasangan instruksi CALL.

Sub 1

Urutan program utama

- -

- -

CALL sub 1

- -

- -

CALL sub 2

- -

Gambar 3.2 instruksi call dan return

Memori

Kode operasiinstruksi CALLAwal subrutin

(Rendah)Byte alamat awal subrutin

(Tinggi)Gambar 3.3 pola instruksi CALL

Instruksi CALL adalah instruksi tiga byte (lihat gambar 3.2), byte pertama berisi kode operasi untuk instruksi, sedangkan byte yang kedua dan ketiga berisi alamat awal dari subrutin. Seperti halnya instruksi JMP, instruksi CALL juga dapat bersyarat atau tanpa syarat.

4

Page 8: Tugas Laporan Loop mikroprosessor 8085

Instrukis-instruksi CALL dengan syarat yaitu : CNZ (call if zero flag not sel) CZ (callif zero) CNC (call if carry flag is 0) CC (call if carry flag is 1) CPO (call if the parity is odd) CPE (call if parity is even) CP (call if positive) CM (call if minus)

Ketika MPU menjumpai instruksi CALL, maka MPU akan menyimpan alamat kembali (alamat instruksi selanjutnya setelah subrutin selesai dijalankan) pada suatu bagian memori baca tulis (RAM) tertentu yang disebut stack. Alamat kembali ini dimuat ke dalam register stack pointer dengan menggunakan instruksi LXI SP pada awal program.

Untuk mengembalikan microprocessor ke program utama, INTEL 8085 mempunyai instruksi RET bersyarat dan RET tidak bersyarat yang termasuk instruksi RET bersyarat adalah.

RZ (return if zero) RNC (return if not carry) RC (return if carry) RPO (return if parity odd) RPE (return if parity even) RP (return if plus) RM (return if minus)

Perincian program subroutine (pemakai instruksi-instruksi CALL dan RET) akan dibahas lebih lanjut pada Bab 19.

Pada bab 3 tersedia tiga buah latihan yang dapat dilakukan oleh saudara, yaitu sebagai berikut :

A. Latihan membuat program untuk pengambilan data pada suatu blok lokasi memori, dan menyimpan data-datatermasuk pada blok lokasi memori yang lainnya.

B. Latihan membuat progran untuk pengambilan data dan menambahkan suatu bilangan tertentu kepada masing-masing data kemudian menyimpannya pada lokasi memori yang lain.

C. Latihan membuat program perkalian 2 bilangan biner 4 bit yang berbeda masing-masing bilangan biner tersebut tersimpan pada register B dan register C.

5

Page 9: Tugas Laporan Loop mikroprosessor 8085

V. Langkah Percobaan dan Latihan

A. Program untuk mengambil data dari lokasi memori yang berurutan.

Membuat bagan alir dan program untuk mengambil 10 data yang terdapat pada alamat A000h sampai dengan A009h, dan menyimpan data tersebut pada lokasi memori yang berurutan (alamat A020h sampai A029h). menuliskan program mulai alamat B000h.

B. Program untuk mengambil data dan menjumlahkan data tersebut dengan bilangan tertentu.

Membuat bagan alir dan program untuk mengambil 30 data yang terdapat pada blok memori C000h - C010h, menambahkan setiap data dengan angka 7. dan menyimpan data tersebut pada lokasi memori yang berurutan (alamat A020h sampai A029h). menuliskan program mulai alamat 9000h.

C. Perkalian dua buah bilangan biner 4 bit

Membuat bagan alir dan program untuk mengalikan 4 bit bilangan biner pada reg B dengan 4 bit bilangan biner pada reg C dan menyimpan hasilnya pada alamat 1000h, menuliskan program di mulai pada alamat A000h.

6

Page 10: Tugas Laporan Loop mikroprosessor 8085

HL ← HL + 1

C ← C – 1

Mulai

DE : A000h HL : A020h C : 0Ah

A ← DE

HL ← A

DE ← DE + 1

C = 0 ?

Selesai

VI. Program dan Flowchart

A. Program untuk mengambil data dari lokasi memori yang berurutan.. ORG 0B000h

MVI D,0A0h

MVI E,0

MVI H,0A0h

MVI L,20h

MVI C,0Ah

Loop1:LDAX D

MOV M,A

INX D

INX H

DCR C

JNZ LooP1

HLT

7

Page 11: Tugas Laporan Loop mikroprosessor 8085

Mulai

DE : C000h HL : C030h C : 1Dh

B. Program untuk mengambil data dan menjumlahkan data tersebut dengan bilangan angka 7.

.ORG 9000hMVI D,0C0h

MVI E,0

MVI H,0C0h

MVI L,30h

MVI C,1Dh

Loop1:LDAX D

ADI 07h

MOV M,A

INX D

INX H

DCR C

JNZ LooP1

HLT

8

A A + 07h

C = 0 ?

Selesai

HL ← HL + 1

C ← C – 1

A ← DE

HL ← A

DE ← DE + 1

Page 12: Tugas Laporan Loop mikroprosessor 8085

C. Program perkalian dua buah bilangan biner 4 bit

.ORG 0A000h

MVI A,00h

MVI B,0A0h

MVI C,06h

Loop1:ADD B

DCR C

JNZ LooP1

HLT

9

Mulai

A : 00h B : 0Ah C : 06h

A A + B

C=0?

C C - 1

Selesai

Page 13: Tugas Laporan Loop mikroprosessor 8085

VII. Penyelesaian Tugas A. Program untuk mengambil data dari lokasi memori yang berurutan.

Input Data Output DataAlamat Data Alamat DataA000 24 D000 24A001 00 D001 00A002 3B D002 3BA003 22 D003 22A004 10 D004 10A005 4F D005 4FA006 5C D006 5CA007 FF D007 FFA008 80 D008 80A009 8D D009 8D

10

Page 14: Tugas Laporan Loop mikroprosessor 8085

B. Program untuk mengambil data dan menjumlahkan data tersebut dengan bilangan tertentu.

11

Page 15: Tugas Laporan Loop mikroprosessor 8085

Input Data Output DataAlamat Data Alamat DataC000 15 D000 1CC001 4F D001 56C002 28 D002 2FC003 9B D003 A2C004 30 D004 37C005 BC D005 93C006 2D D006 34C007 66 D007 6DC008 1E D008 25C009 5D D009 64C00A AF D00A B6C00B A9 D00B B0C00C 21 D00C 28C00D C0 D00D C7C00E DC D00E E3C00F B1 D00F B8C010 1B D010 22C011 56 D011 5DC012 00 D012 07C013 BB D013 C2C014 CC D014 D3C015 DD D015 E4C016 AA D016 B1C017 A9 D017 B0C018 6B D018 72C019 7C D019 83C01A 8F D01A 94C01B 900 D01B 97C01C 45 D01C 4CC01D 2A D01D 00

12

Page 16: Tugas Laporan Loop mikroprosessor 8085

C. Perkalian dua buah bilangan biner 4 bit

13

VIII. Analisa

Register B A0 0E 0F 03 0E 02 05 09Register C 00 03 0E 0A 09 0D 08 0FRegister A C0 2A D2 1E 7E 1A 28 87

Page 17: Tugas Laporan Loop mikroprosessor 8085

14

IX. Kesimpulan

Page 18: Tugas Laporan Loop mikroprosessor 8085

15