LAP.9 Operasi Blok Memori 1

Embed Size (px)

Citation preview

  • 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.