lap.9 operasi blok memori 1
TRANSCRIPT
-
7/29/2019 LAP.9 Operasi Blok Memori 1
1/12
1
Operasi Blok Memory 1
I.Tujuan
Setelah melakukan percobaan pada bab ini, diharapkan mampu :
Membuat program untuk mengosongkan atau menghapus data data yang berbeda dalam suatublok memory.
Membuat program untuk mengisi suatu blok memory dengan urutan data data tertentu. Membuat program untuk mengubah urutan datadata dalam suatu blok memori.
II.Alat yang digunakan
Komputer Softwarre Simulator 8085
III.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 flipflop 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 flipflop yang ada dalam lokasi memori tersebut adalah nol).
Untuk mengisi suatu blok memori dengan data data heksadesimal yang berurutan biasanya digunakan
program dengan loop. Datadata yang diisikan pada masingmasing 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 langkahlangkah tersebut diulang sampai seluruh lokasi memori pada
blok memori tersebut terisi penuh.
Dalam hal mengisi suatu blok memori dengan data data heksadesimal berurutan caranya sama saja
degan mengisi blok memori dengan datadata 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 datadata 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
-
7/29/2019 LAP.9 Operasi Blok Memori 1
2/12
2
memori. Demikianlah selanjutnya untuk datadata berikutnya dilakukan cara yang sama sampai susunan
data pada blok memori menjadi kebalikan dari susunan semula. Untuk lebih jelasnya perhatikan Gambar
6.1.
Data 5
Data 4
Data 3
Data 2
Data 1
Gambar 6.1 a) Susunan data sebelum program dieksekusi
b) Susunan data setelah program dieksekusi
IV.Langkah Percobaan dan latihan
A. Membuat dan menguju program untuk mengosongkan datadata pada suatu blok memori.A.1 Buatlah bagan alir dan program untuk mengosongkan (mengisi setiap lokasi memori dengandata
00h) suatu blok memori yang mempunyai alamat mulai D000h sampai D00Fh. Tulis programmulai alamt 7000h.
Data 1
Data 2
Data 3Data 4
Data 5
Inisilisasi
HL [D000]
D 10h
M 00h
L L + 1
STOP
Z = 00?
E 00h
L L + 1
-
7/29/2019 LAP.9 Operasi Blok Memori 1
3/12
3
A.2 Sebelum program dijalankan, isilah blok memori yang akan digunakan dengan data 2F pada
Alamat blok Memori D000D00F.
A.3 Program untuk langkah A.1 adalah :
Tabel 6.1
ALAMAT KODE OPERASI LABEL MNEMONIK
7000 01 00 D0 [BC] D000 LXI B,D000
7003 26 10 SEBAGAI COUNTER MVI H,10
7005 0A SEBAGAI LOOP1 LDAX B
7006 D6 2F SEBAGAI PENGURANGDATA PADA MEMORI
SUI 2F
7008 02 [BC] A STAX B
7009 0C SEBAGAI PENAMBAHDAFTAR MEMORI
PASANGAN
INR C
700A 25 SEBAGAI PENGURANG
COUNTER
DCR H
700B C2 05 70 JUMP NOT ZERO LOOP 1 JNZ LOOP1
700E 76 STOP HLT
A.4 Pertama tama sebelum program dijalankan,isilah blok memori yang akan digunakan
dengan datadata seperti pada tabel di bawah ini :
Tabel 6.2
Alamat blok memori Data
D000 2F
D001 2FD002 2F
D003 2F
D004 2F
D005 2F
D006 2F
D007 2F
D008 2F
D009 2F
D00A 2F
D00B 2F
D00C 2F
D00D 2F
D00E 2F
D00F 2F
-
7/29/2019 LAP.9 Operasi Blok Memori 1
4/12
4
A.5 Jalankan (eksekusi) program saudara,kemudian catat isi dari blok memori pada Tabel 6.3.
Tabel 6.3
ALAMAT BLOK MEMORI DATA
D000 00
D001 00D002 00
D003 00
D004 00
D005 00
D006 00
D007 00
D008 00
D009 00
D00A 00
D00B 00
D00C 00
D00D 00
D00E 00D00F 00
A.6 Jika program saudara benar,maka setiap lokasi memori pada blok memori tersebut harus berisi
data 00h.Lanjutkan ke langkah berikutnya apabila program saudara benar.Jika program yang
saudara buat belum benar,perbaiki program saudara tersbut mulai dari bagian alirnya(ulangi
langkah A.1 sampai A.5).
A.7 Perubahan apa yang harus saudara lakukan terhadap program saudara apabila jumlah lokasi
memori tersebut menjadi tiga kali jumlah semula.
Jawab : saya akan melakukan perubahan pada data yang akan dikurangkan dengan nilai yang
sama.
-
7/29/2019 LAP.9 Operasi Blok Memori 1
5/12
5
B. Mengisi blok memori dengan data HeksadesimalB.1 Buatlah bagan alir dan program untuk mengisi blok memori alamat D100h sampai D10Fh dengan
data heksadesimal berurutan mulai 00h sampai dengan 0Fh. Tulis program saudara mulai alamat
8000h.
B.2 Bagan alir untuk langkah B.1 adalah :
Inisialisasi
HL [D000]
D 10h
L L + 1
M 00h
STOP
Z = 00?
E 00h
E E + 1
D D 1
START
-
7/29/2019 LAP.9 Operasi Blok Memori 1
6/12
6
B.3 Porgram untuk langkah B.1 adalah sebagai berikut :
Tabel 6.4
Alamat Kode Operasi Label Mnemonik
8000 01 00 D1 [BC] D100 LXI B,D100
8003 26 0F SEBAGAI COUNTER MVI H,0F8005 0A SEBAGAI LOOP1 LDAX B
8006 3C A A + 1 INR A
8007 0C C C + 1 INR C
8008 02 [BC] A STAX B
8009 25 H H1 DCR H
800A C2 05 80 JUMP NOT ZERO KELOOP1
JNZ LOOP1
800D 76 STOP HLT
B.4 sebelum program dijalankan isilah isi blok memori yang akan digunakan dengan data
data seperti pada tabel 6.5(sesuai dengan kolom Data Lama).
Tabel 6.5
Alamat Data lama Alamat Data baru
D100 00 D100 00
D101 00 D101 01
D102 00 D102 02
D103 00 D103 03
D104 00 D104 04
D105 00 D105 05
D106 00 D106 06
D107 00 D107 07
D108 00 D108 08
D109 00 D109 09
D10A 00 D10A 0A
D10B 00 D10B 0B
D10C 00 D10C 0C
D10D 00 D10D 0D
D10E 00 D10E 0E
D10F 00 D10F 0F
B.5 Jalankan program saudara kemudian catat isi datadata yang berada dalam blok memori tersebut
pada kolom Data Baru yang berada pada tabel 6.5
C. Mengisi blok memori dengan data desimalC.1 Buatlah bagan alir dan program untuk mengisi blok momori alamat D200h sampai
D20Fh dengan datadata desimal berurutan mulai 00 sampai 15.Tulis program saudara
mulai alamat 9000h.
C.2 Bagan alir untuk langkah C.1 adalah :
-
7/29/2019 LAP.9 Operasi Blok Memori 1
7/12
7
C.3 Program untuk langkah C.1 adalah sebagai berikut :
ALAMAT KODE OPERASI LABEL MNEMONIK
9000 3E 00 MVI A,00
9002 21 00 D2 LXI H,D200
9005 0E 10 MVI C,10
9007 77 MOV M,A9008 23 INX H
9009 3C INR A
900A 27 DAA
900B 0D DCR C
900C C2 07 90 JNZ LOOP1
900F 76 STOP HLT
C.4 Sebelum program dieksekusi,isilah blok memori yang akan dipergunakan dengan data
data yang tercantum dalam kolom Data Lama Tabel 6.7.
Tabel 6.7
ALAMAT DATA LAMA ALAMAT DATA BARU
D200 02 D200 00
D201 21 D201 01
D202 12 D202 02
D203 81 D203 03
D204 83 D204 04
D205 14 D205 05
D206 17 D206 06
D207 16 D207 07
D208 50 D208 08
D209 57 D209 09
D20A 62 D20A 10D20B 75 D20B 11
D20C 88 D20C 12
D20D 91 D20D 13
D20E 97 D20E 14
D20F 99 D20F 15
C.5 Eksekusi program saudara,kemudian catat isi blok memori tersebut pada kolom Data
Baru yang berada pada Tabel 6.7
D. Mengubah data dalam suatu blok memoriD.1 Buatlah program dan bagan alir untuk membalik urutan data data yang berada dalam
blok memori alamat D300h sampai D30Fh.Tulis program saudara mulai dari alamat
9500h.
D.2 Bagan alir untuk D.1 adalah sebagai berikut.
-
7/29/2019 LAP.9 Operasi Blok Memori 1
8/12
8
D.3 Program untuk langkah D.1 adalah sebagai berikut
Tabel 6.8
ALAMAT KODE OPERASI LABEL MNEMONIK
9500 21 00 D3 [HL] D300 LXI H,D300
9503 01 0F D3 [BC] D30F LXI B,D30F9506 0A SEBAGAI LOOP1 LDAX B
9507 56 DM MOVE D,M
9508 77 MA MOVE M,A
9509 7A A D MOVE A,D
950A 02 [BC] A STAX B
950B 2C L L + 1 INR L
950C 0D C C- 1 DCR C
950D 7D A L MOV A,L
950E B9 CMP C
950F DA 06 95 JUMP CARRY JC LOOP1
9512 76 STOP HLT
D.4 Sebelum program dieksekusi,isilah blok memori yang akan dipergunakan dengan data data
yang berada pada Tabel 6.9(Data Lama).
Tabel 6.9
ALAMAT DATA LAMA ALAMAT DATA BARU
D300 00 D300 FF
D301 11 D301 EE
D302 22 D302 DD
D303 33 D303 CC
D304 44 D304 BB
D305 55 D305 AAD306 66 D306 99
`D307 77 D307 88
D308 88 D308 77
D309 99 D309 66
D30A AA D30A 55
D30B BB D30B 44
D30C CC D30C 33
D30D DD D30D 22
D30E EE D30E 11
D30F FF D30F 00
D.5 Eksekusi program saudara,kemudian catat isi blok memori tersebut pada kolom Data
Baru yang berada pada Tabel 6.9
D.6 Apakah program yang saudara tulis pada langkah D.3 masih dapat dipergunakan untuk
membalik urutan data dalam blok memori yang jumlah lokasi memorinya ganjil ?
Jelaskan jawaban Saudara.
-
7/29/2019 LAP.9 Operasi Blok Memori 1
9/12
9
Jawaban : bisa , tapi harus di lakukan perubahan pada program.
E. Hasil PercobaanE.1Baris program untuk A3 sebelum dijalankan dan sesudah dijalankan
Gambar 6.1 program A3 sebelum dijalankan
Gambar 6.2 program A3 sesudah dijalankan
E.2Baris program untuk B3 sebelum dijalankan dan sesudah dijalankan
Gambar 6.3 program B3 sebelum dijalankan
-
7/29/2019 LAP.9 Operasi Blok Memori 1
10/12
10
Gambar 6.4 program B.3 sesudah dijalankan
E.3Program C.3 sebelum dan sesudah dijalankan
Gambar 6.5 program C.3 sebelum dijalankan
Gambar 6.6 program C.3 sesudah dijalankan
E.4Program D.3 sebelum dan sesudah dijalankan
-
7/29/2019 LAP.9 Operasi Blok Memori 1
11/12
11
Gambar 6.7 program D.3 sebelum dijalankan
V.Analisa
Dari hasil percobaan di atas akhirnya dapat dianalisa seperti berikut :
Dalam melakukan operasi memori program tidak akan terlepas dari instruksi loop. Instruksi yang digunakan adalah semua nya hampir instruksi aritmatika. Ternyata dalam MPU 8085 dapat dilakukan instruksi perputaran data seperti pada
percobaan D.3
Operasi memori ini berguna sekali untuk menukar ataupun mengosongkan data.VI.Kesimpulan dan saran
Setelah melakukan percobaan ini akhirnya mahasiswa mampu untuk membuat program untuk
mengosongkan atau menghapus datadata yang berbeda dalam suatu blok memory, membuat program
untuk mengisi suatu blok memory dengan urutan datadata tertentu, membuat program untuk mengubah
urutan datadata dalam suatu blok memori.
Saran
Dalam melakukan simulasi sebaiknya menggunkan simulator yang berbasisJAVA,karena lebih mudah dalam pengoperasiannya.
Assemmbly kan terlebih dahulu program kemudian baru dilakukan pengeditan dat - dataalamat.
-
7/29/2019 LAP.9 Operasi Blok Memori 1
12/12
12
Dalam melakukan JUMP sebaiknya hati hati dalm menggunakan label,karena akanmengakibatkan program erorr.
DAFTAR PUSTAKA
Jhon ultenbeck,microcomputers and microprocecors The 8085,8080 and Z80Programming.Interfancing,and Troubleshotting,prentice hall
International,Inc.USA,edisi ke 2,1991.
Kenneth L,Short,Microprocecors and programing logic,prentice hall international inc.USA,edisi ke 2,1987.
Roger L tokheim,Schaums outline or theory and Problems of microprocecor FundamentsMc graw Hill Book Company,singapore,1983.
Douglas V hall ,microprocecors and Digial systems,McGraw Hill Book Co,japan,edisike 2,1983.
Lance A Leventhal,8080A/8085 Asemmbly Language Programing,Interfancing,andTroubleshooting,Prentice.Hall,inc USA,1988.
Intel marketing communications,the 8080/8085 Microprocecor Book,Jhon Wiley &sons,USA,1980.
Lucas nulle,MIDICOM Microprocomputer Traning system CCM 19 SYBTRONIC.