Operasi Blok Memori 1 Bayu

October 18, 2019 | Author: Anonymous | Category: N/A
Share Embed Donate


Short Description

Download Operasi Blok Memori 1 Bayu...

Description

OPERASI BLOK MEMORI I

1. TUJUAN PRAKTIKUM Setelah melakukan percobaan pada bab ini, mahasiswadiharapkan mampu :  Membuat program untuk mengosongkan atau menghapus data – data yang berbeda dalam suatu blok memory.  Membuat program untuk mengisi suatu blok memory dengan urutan data – data tertentu.  Membuat program untuk mengubah urutan data – data dalam suatu blok memori.

2. DASAR TEORI Dalam metoda pengolahan data, mengisi suatu blok memori dengan data 00h seringkali disebut sebagai proses mengosongkan suatu blok memori. Istilah mengosongkan memori sebenarnya kurang sesuai, mengingat setiap lokasi memori terdiri dari sejumlah elemen penyimpan informasi yang biasanya disebut sebagai flip – flop. Setiap flip – flop dapat menyimpan data satu bit (bit 0 atau bit 1). Jadi dengan demikian sebenarnya isi suatu memori tidak pernah kosong akan tetapi berisi data 00h (output seluruh flip – flop yang ada dalam lokasi memori tersebut adalah nol). Untuk mengisi suatu blok memori dengan data – data heksadesimal yang berurutan biasanya digunakan program dengan loop. Data – data yang diisikan pada masing – masing lokasi memori umumnya berasal dari suatu register yang digunakan sebagai penghitung (counter). Register penghitung tersebut mula – mula diisi dengan suatu data awal yang nilainya merupakan nilai data pada alamat terkecil dari blok memori yang dipergunakan. Tentunya isi register penghitung tersebut akan dipindahkan pada lokasi memori pertama dalam blok memori. Kemudian isi rregister penghitung dinaikkan (ditambah dengan 1) dan diisikan pada lokasi memori berikutnya. Demikian selanjutnya langkah – langkah tersebut diulang sampai seluruh lokasi memori pada blok memori tersebut terisi penuh.

1

Dalam hal mengisi suatu blok memori dengan data – data heksadesimal berurutan caranya sama saja degan mengisi blok memori dengan data – data heksadesimal yang berurutan (telah dijelaskan pada alinea sebelumnya); hanya perlu diingat bahwa isi register penghitung harus selalu diubah menjadi nilai data BCD setelah nilainya dinaikkan. Untuk membalik susunan atau urutan data – data yang berada dalam suatu blok memori, maka data yang terletak pada lokasi memori teratas (data yang berada pada alamat terkecil dalam blok memori) ditukarkan dengan data yang berada pada lokasi memori terbawah dalam blok memori tersebut. Kemudian data pada lokasi kedua ditukarkan dengan data yang berada pada lokasi kedua dari bawah blok memori. Demikianlah selanjutnya untuk data – data berikutnya dilakukan cara yang sama sampai susunan data pada blok memori menjadi kebalikan dari susunan semula. Untuk lebih jelasnya perhatikan Gambar 6.1.

(a)

(b)

Gambar 1.( a) Susunan data sebelum program dieksekusi, ( b) Susunan data setelah program dieksekusi

3. PERALATAN YANG DIGUNAKAN 1. Seperangkat Komputer 2. Simulator IDE 8085

2

4. LANGKAH PERCOBAAN Pada bab ini terdapat empat buah percobaan , sebagai berikut. 4.1 Membuat dan menguji program untuk mengosongkan data – data pada suatu blok memori. 4.2 Membuat dan menguji program untuk mengisi suatu

blok memori

dengan data heksa decimal yang berurutan. 4.3 Membuat dan menguji program untuk mengisi suatu

blok memori

dengan data decimal yang berurutan. 4.4 Membuat dan menguji program untuk mengubah atau membalik urutan data – data dalam suatu blok memmori tertentu.

3

4.1 Mengosongkan Suatu Blok Memori 4.1.1 membuat bagan alir dan program untuk mengosongkan (mengisi setiap lokasi memori dengandata 00h) suatu blok memori yang mempunyai alamat mulai D000h sampai D00Fh. Tulis program mulai alamt 7000h. 4.1.2 Bagan alir untuk langkah 4.1 adalah sebagai berikut : START

Inisilisasi BC ← [D000] Counter D ← 10h A ← 00h [D000] ← A C←C+1 D←D–1

Z = 00?

T

Y STOP Gambar 2. Bagan Alir untuk program 4.1

4.1.3 Program untuk langkah 4.1adalah sebagai berikut : Tabel 1 Alamat 0000h 7000h 7003h 7005h

Op Code 01 00 D0 16 10 1E 00

Mnemonik ORG 7000h LXI B, D000h MVI D, 10h MVI A, 00h

Keterangan BC ← [D000] D ← 10h A ← 00h

4

7007h 7008h 7009h 700Ah 700Dh

02 0C 15 C2 05 70 76

STAX B INR C DCR D JNZ 7005h HLT

BC ← A ; [D000] ← A C←C+1 D←D–1 [7005] ← 1

4.1.4 Sebelum program dijalankan, Mengisi blok memori yang akan digunakan dengan data 2F pada Alamat blok Memori D000 – D00F. Tabel 2 Alamat Blok Memori D000h D001h D002h D003h D004h D005h D006h D007h D008h D009h D00Ah D00Bh D00Ch D00Dh D00Eh D00Fh

Data 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F 2F

4.1.5 Menjalankan (eksekusi) program, kemudian mencatat isi dari blok memori pada Tabel . Tabel 3 Alamat Blok Memori D000h D001h D002h D003h D004h D005h D006h

Data 00 00 00 00 00 00 00

5

D007h D008h D009h D00Ah D00Bh D00Ch D00Dh D00Eh D00Fh

00 00 00 00 00 00 00 00 00

4.1.6 Jika program sudah benar, maka di setiap lokasi memori pada blok memori tersebut harus di beri data 00h. melanjutkan ke langkah berikutnya apabila program yang dibuat benar. Jika program yang di buat belum benar, memperbaiki program tersebut mulai

dari bagan alirnya (mengulangi

langkah 4.1.1 sampai dengan langkah 4.1.5). 4.1.7 Perubahan apa yang harus di lakukan terhadap program apabila jumlah lokasi memori pada blok memori tersebut menjadi tiga kali dari jumlah semula.

4.1.8 Data Hasil Percobaan 4.1 adalah sebagai berikut : Dari program diatas setelah program di buat maka di peroleh hasil seperti gambar – gambar berikut ini :

Gambar 3. Simulator sebelum simulasi di jalankan

6

Gambar 4. Program 4.1 setelah di buat pada assembler

Gambar 5. Breakpoints Manajer

Gambar 6. Data awal pada alamat D000h 7

Gambar 7. Simulator setelah dijalankan

(a)

(b) Gambar 8. (a) Data hasil Imulasi awal (b) Data hasil simulasi akhir 8

Gambar 9. Data akhir pada alamat D000h

4.1.9 Analisa untuk program 4.1 adalah sebagai berikut : Dari percobaan pada program A.1, dapat di ambil analisa sebagai berikut :  Pada program diatas register D di jadikan counter untuk menghitung data mulai dari alamat D000h sampai alamat D00Fh (alamat di tunjukan pada register pasangan BC), dimana data pada register D akan berkurang satu bila pada register L bertambah satu datanya.  Untuk mengubah data yang ada pada alamat D000h-D00Fh menjadi data 00h semua maka kita gunakan register A yang diisikan data 00h yang akan kita kirimkan ke alamat yang ditunjukan Register pasangan BC dengan intruksi STAX B.  Proses pengubahan dan pengiriman data akan terus berlangsung sampai data pada counter (register D) bernilai 00.  Untuk melihat kondisi counter (register B) sudah habis atau belum maka digunakan intruksi looping yang mengunakan JNZ.

4.1.10 Kesimpulan untuk program 4.1 adalah sebagai berikut : Dari percobaan dan analisa diatas dapat diambil kesimpulan sebagai berikut :  Program 4.1 adalah program Untuk mengosongkan data pada alamat D000h-D00Fh.  Pada program diatas register A diisikan data 00 di jadikan sebagai data mengubah data pada alamat D000h-D00Fh menjadi 00h.

9

4.2 Mengisi Blok Memori Dengan Data Heksadesimal 4.2.1 Membuat bagan alir dan program untuk mengisi blok memori alamat D100h sampai D10Fh dengan data heksadesimal berurutan mulai 00h sampai dengan 0Fh. Menulis program saudara mulai alamat 8000h. 4.1.11 Bagan alir untuk langkah 4.2 adalah sebagai berikut : START

Inisilisasi BC ← [D000] Counter D ← 10h A ← 00h [D000] ← A A←A+1 C←C+1 D←D–1

Z = 00?

T

Y STOP Gambar 10. Bagan Alir untuk program 4.2

10

4.2.2 Program untuk langkah 4.2 adalah sebagai berikut Tabel 4 Alamat 0000h 7000h 7003h 7005h 7007h 7008h 7009h 700Ah 700Bh 700Eh

Op Code 01 00 D0 16 10 1E 00 02 IC 0C 15 C2 05 70 76

Mnemonik ORG 7000h LXI B, D000h MVI D, 10h MVI A, 00h STAX B INR A INR C DCR D JNZ 7005h HLT

Keterangan BC ← [D000] D ← 10h A ← 00h BC ← A ; [D000] ← A A←A+1 C←C+1 D←D–1 [7005] ← 1

4.2.3 Sebelum program dijalankan (eksekusi), mengisi blok memori yang akan digunakan dengan data 00 pada Alamt D100 – D10F dan kemudian isi perubahan data yang di dapat. Tabel 5 Alamat D100h D101h D102h D103h D104h D105h D106h D107h D108h D109h D10Ah D10Bh D10Ch D10Dh D10Eh D10Fh

Data Lama 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Alamat D100h D101h D102h D103h D104h D105h D106h D107h D108h D109h D10Ah D10Bh D10Ch D10Dh D10Eh D10Fh

Data Baru 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

11

4.2.4 Menjalankan program,kemudian mencatat

data-data yang berada dalam

blok memori tersebut pada kolom Data Baru yang berada pada Tabel 5. 4.2.5

Data Hasil Percobaan 4.2 adalah sebagai berikut :

Gambar 11. Simulator sebelum dijalankan

Gambar 12. Program 4.2 setelah di buat pada assembler

Gambar 13. Breakpoints Manajer

12

Gambar 14. Data awal pada alamat D100h

Gambar 15. Simulator setelah di jalankan

(a)

13

(b) Gambar 16. (a) Data hasil simulasi Awal (b) Data hasil simulasi akhir

Gambar 17. Data akhir pada alamat D100h

4.2.6 Analisa untuk program 4.2 adalah sebagai berikut : Dari percobaan pada program 421, dapat di ambil analisa sebagai berikut :  Analisa untuk program 4.2 sama dengan program 4.1 hanya saja pada program 4.2 program yang di ubah untuk bilangan berturut-turut dari 00h0Fh sehinnga Untuk mengubah data yang ada pada alamat D100h-D10Fh menjadi data 00h-0Fh maka kita gunakan register A yang diisikan data 00h lalu kita gunakan Intruksi INR A biar data pada register A bertambah pada setiap program 1 kali mengulang (saat register B berkurang satu maka register A akan bertambah satu) setelah kita kirimkan ke alamat yang ditunjukan Register pasangan BC dengan intruksi STAX B.

14

4.1.12 Kesimpulan untuk program 4.1 adalah sebagai berikut : Dari percobaan dan analisa diatas dapat diambil kesimpulan sebagai berikut :  Program 4.1 adalah program Untuk mengurutkan data pada alamat D100h-D10Fh.  Pada program diatas register A diisikan data 00 lalu data di tambahkan dengan satu di jadikan sebagai data mengubah data pada alamat D100hD10Fh menjadi 00h-0Fh

15

4.3 Mengisi Blok Memori Dengan Data Desimal 4.3.1 Membuat bagan alir dan program untuk mengisi blok memori alamat D200h sampai D20Fh dengan data-data desimal berurutan mulai 00 sampai dengan 15. Menulis program saudara mulai alamat 9000h. 4.1.13 Bagan alir untuk langkah 4.3 adalah sebagai berikut : START

Inisilisasi BC ← [D200] Counter D ← 10h A ← 00h [D000] ← A A←A+1 A←A+1 C←C+1 D←D–1

Z = 00?

T

Y STOP Gambar 18. Bagan Alir untuk program 4.2

16

4.3.2 Program untuk langkah 4.3 adalah sebagai berikut. Tabel 6 Alamat 0000h 9000h 9003h 9005h 9007h 9008h 9009h 900Ah 900Bh 900Ch 900Fh

Op Code

Mnemonik ORG 9000h LXI B, D200h MVI D, 10h MVI A, 00h STAX B INR A DAA INR C DCR D JNZ 9007h HLT

01 00 D2 16 10 3E 00 02 3C 27 0C 15 C2 07 90 76

Keterangan BC ← [D200] D ← 10h A ← 00h [D200] ← A A←A+1 A ← [BCD] C←C+1 D←D–1 [9007] ← 1

4.3.3 Sebelum program dijalankan (eksekusi), mengisi blok memori yang akan digunakan dengan data-data seperti yang tercantum dalam kolom Data Lama tabel 7. Tabel 7 Alamat

Data Lama

Alamat

Data Baru

D200h

0

D200h

00

D201h

21

D201h

01

D202h

12

D202h

02

D203h

81

D203h

03

D204h

83

D204h

04

D205h

14

D205h

05

D206h

17

D206h

06

D207h

16

D207h

07

D208h

50

D208h

08

D209h

57

D209h

09

D20Ah

62

D20Ah

0A

D20Bh

75

D20Bh

0B

D20Ch

88

D20Ch

0C

D20Dh

91

D20Dh

0D

17

D20Eh

97

D20Eh

0E

D20Fh

99

D20Fh

0F

4.3.4 Menjalankan (mengeksekusi) program, kemudian mencatat isi blok memori tersebut pada kolom Data Baru yang berada pada Tabel 7. 4.3.5 Data Hasil Percobaan 4.1 adalah sebagai berikut : Dari program diatas setelah program di buat maka di peroleh hasil seperti gambar – gambar berikut ini :

Gambar 19. Program untuk 4.4 setelsh dituliskan pada simulator javA

Gambar 20. Register sebelum simulator dijalankan

18

Gambar 21. Data awal pada alamat D200h-D20Fh

Gambar 22.isi register setelah simulator dijalakan

Gambar 23. Data akhir pada alamat D200h-D20Fh 4.3.6 Analisa untuk program 4.2 adalah sebagai berikut : Dari percobaan pada program 421, dapat di ambil analisa sebagai berikut :  Analisa untuk program 4.3 sama dengan program4.2 dan 4.1 hanya saja pada program 4. program yang di ubah untuk bilangan berturut-turut dari 00h-15h sehinnga Untuk mengubah data yang ada pada alamat D200hD20Fh menjadi data 00h-15h maka kita gunakan register A yang diisikan data 00h lalu kita gunakan Intruksi INR A biar data pada register A

19

bertambah pada setiap program 1 kali mengulang (saat register B berkurang satu maka register A akan bertambah satu) setelah itu data yangakan dikirimkan ke alamat yang ditunjukan Register pasangan BC (dengan intruksi STAX B) kita ubah dalam bentuk biner code decimal agar data berubah pada saat data 0Ah menjadi 10h.

4.3.7 Kesimpulan untuk program 4.1 adalah sebagai berikut : Dari percobaan dan analisa diatas dapat diambil kesimpulan sebagai berikut :  Program 4.1 adalah program Untuk mengurutkan data pada alamat D100h-D10Fh dari 00-15.  Pada program diatas register A diisikan data 00 lalu data di tambahkan dengan satu di jadikan sebagai data mengubah data pada alamat D100hD10Fh menjadi 00h-0Fh setelah itu di ubah ke dalam bentuk bilangan BCD agar data pada alamat tersebut berubah menjadi 00-15.

20

4.4 Mengubah Urutan Data Dalam Suatu Blok Memori 4.4.1

Membuat bagan alir dan program untuk menbalik data-data yang berada D300h sampai D30Fh. Menulis program saudara mulai alamat 9500h.

4.1.14 Bagan alir untuk langkah 4.4 adalah sebagai berikut :

START

Inisilisasi HL ← [D300] BC ← [D30F] Counter D ← 10h A ← [D300] C←M M←C A←C [D300] ← A HL ← H + 1 E←E–1 B ← B – 1N

Z = 00?

T

Y STOP Gambar 24. Bagan Alir untuk program 4.4 21

4.4.2

Program untuk langkah 4.3 adalah sebagai berikut. Tabel 7 Alamat 9500h 9503h 9506h 9508h 9509h 950Ah 9500Bh 950Ch 950Dh 950Eh 950Fh 9510h 9513h

4.4.4

Op Code 21 00D3 11 OF D3 06 08 1A 4E 77 79 12 23 1D 05 C2 08 95 76

Mnemonik LXI H,D300h LXI D,D30Fh MVI B,08h LDAX D MOV C,M MOV M,A MOV A,C STAX D INX H DCR E DCR B JNZ 9508h HLT

Keterangan HL ← [D300] DE ← [D30F] B ← 08h A ← [D30F] C←M M←A A←C [D30F] ← A HL ← HL + 1 E←E–1 B←B–1 [9508] ← 1

Sebelum program dijalankan (eksekusi), mengisi blok memori yang akan digunakan dengan data-data seperti yang berada pada tabel 7 (kolom Data Lama). Tabel 8 Alamat D300h D301h D302h D303h D304h D305h D306h D307h D308h D309h D30Ah D30Bh D30Ch D30Dh D30Eh D30Fh

Data Lama 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF

Alamat D300h D301h D302h D303h D304h D305h D306h D307h D308h D309h D30Ah D30Bh D30Ch D30Dh D30Eh D30Fh

Data Baru FF EE DD CC BB AA 99 88 77 66 55 44 33 22 11 00

22

4.4.5 Menjalankan (mengeksekusi) program, kemudian mencatat

isi blok

memori tersebut pada kolom Data Baru yang berada pada Tabel 9. 4.4.6 Apakah program yang di tulis pada langkah 4.4 masih dapat dipergunakan untuk membalik urutan data dalam blok memori yang jumlah lokasi memorinya ganjil.? Jelaskan.

4.4.7 Data Hasil Percobaan 4.1 adalah sebagai berikut : Dari program diatas setelah program di buat maka di peroleh hasil seperti gambar – gambar berikut ini :

Gambar 25.Simulator Sebelum Dijalankan

Gambar 26 . Data setelah dituliskan pada assembler 23

Gambar27 . Break Points Manajer

Gambar 28. Data awal pada alamat D300h-D30Fh

Gambar29 . Simulator setelah dijalankan

24

(a)

(b) Gambar30 . (a)Data awal simulasi.(b) Data Akhir simulasi

Gambar 31 . Data akhir pada alamat D300h-D30Fh

25

4.4.8 Analisa untuk program 4.4 adalah sebagai berikut : Dari percobaan pada program 4.4, dapat di ambil analisa sebagai berikut :  Pada program diatas register B di jadikan counter 08 data untuk menghitung data mulai dari alamat D300h-D30Fh (alamat di tunjukan pada register pasangan HL) dan untuk membalikan data dari alamat D30Fh-D300h(alamat di tunjukan pada register pasangan DE), dimana data pada register E akan berkurang satu bila pada register L bertambah satu datanya.  Untuk membalikan data pada alamat D300h ke D30Fh digunakan intruksi MOV, data pada memori D30Fh diisikan pada Register A (intruksi LDAX D), lalu register M (data pada alamat D30Fh) di pindahkan pada register C, register M dipindahkan pada ke register A (Data pada alamat D30Fh di pindah ke alamat D300h), setelah itu register C dipindahkan ke register A dan dikirimkan ke Alamat DE (Data pada alamat D300h di pindah ke alamat D30Fh). Proses ini akan terus berlangsung hingga data pada counter sudah 00.  Counter yang digunakan hanya adalah 08 karena pada program diatas hanya terjadi delapan kali pengulangan karena pada setiap satu kali program data langsung di alamat D300h di pindahkan ke alamat D30Fh dan sebaliknya.  Proses pengubahan dan pengiriman data akan terus berlangsung sampai data pada counter (register D) bernilai 00.  Untuk melihat kondisi counter (register B) sudah habis atau belum maka digunakan intruksi looping yang mengunakan JNZ.

4.1.15 Kesimpulan untuk program 4.4 adalah sebagai berikut : Dari percobaan dan analisa diatas dapat diambil kesimpulan sebagai berikut :  Program 4.4 adalah program Untuk membalikan data pada alamat D300h-D30Fh ke alamat D30Fh-D300h.

26

5. DAFTAR PUSTAKA 

Data Hasil Praktikum



Teori bahasa assembler semester 1

27

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF