tugas laporan loop mikroprosessor

22
LAPORAN PRAKTIKUM MIKROPROSESSOR Program dengan loop NAMA : Syukrul NIM : 1120402024 KELAS : D 2 PRODI : TEKNIK TELEKOMUNIKASI

Upload: syukrul-dealzheimer

Post on 15-Feb-2015

123 views

Category:

Documents


5 download

DESCRIPTION

simulator 8085 IDE

TRANSCRIPT

Page 1: Tugas Laporan Loop mikroprosessor

LAPORAN PRAKTIKUMMIKROPROSESSOR

Program dengan loop

NAMA : Syukrul

NIM : 1120402024

KELAS : D 2

PRODI : TEKNIK TELEKOMUNIKASI

KEMENTRIAN PENDIDIKAN NASIONAL

POLITEKNIK NEGERI LHOKSEUMAWE

Page 2: Tugas Laporan Loop mikroprosessor

Lembar Pengesahan

Judul Praktikum : Pemrograman java dengan JCREATOR

No Praktikum : 02/ LAB. JARINGAN KOMPUTER

Nama : Syukrul

Nim : 1120402024

Jurusan/ Prodi : T.Elektro/ T.Telekomunikasi

Tanggal Praktikum : 2 – 03 - 2013

Tanggal Penyerahan : 16 – 03 - 2013

Nilai :

Dibuat Diperiksa Mahasiswa, Dosen Pembimbing,

( Syukrul) (Hanafi, ST, M,Eng) Nim. 1120402024 Nip. 196901172002121001

i

Page 3: Tugas Laporan Loop mikroprosessor

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

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

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

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

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

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

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

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

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

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

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

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

11

Page 15: Tugas Laporan Loop mikroprosessor

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

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

14

IX. Kesimpulan

Page 18: Tugas Laporan Loop mikroprosessor

15