Anda di halaman 1dari 14

I.

TUJUAN Membuat program kalkulator sederhana 1 digit dengan trainer midicom LANDASAN TEORI

II.

Subrutin Delay Padasubrutin delay jumlah delay maksimum yang dapatdigunakanadalah FFFF16 = 6553510 mS = 65 S = 1 menit. Untukkeperluan delay yang lebih lama, makaperludirancang delay denganmenggunakaninstruksi-instruksi yang ada. SetiapinstruksimemilikiTcmasingmasing, setiap 1 Tc = 0,325 mikrodetik.

Padapraktikum kali inikitamenggunakanalamatsubrutinuntukmembaca Dan menampilkankarakterbaik yang beradapada memory

maupunlangsungmelalui keyboard padamarikitalihatbebrapa al

AlamatSubrutinuntukmembacakarakterdari keyboard :

AlamatSubrutin : FF1
AlamatSubrutinuntukmenampilkankarakterpadalayar :

AlamatSubrutin : FEE
Sangatpentinguntukmengetahuikodekode darisetiapkarakter,untukselengkapnyabisalihatpadatabel di bawah : ASCII

Untukmembacakarakter yang di input kanpada keyboard kode ASCII yang munculakan di simpanpada register C.

PROGRAM PERKALIAN
METODE PENJUMLAHAN BERULANG Metode ini merupakan penyelesaian proses perkalian dengan menjumlahkan antara faktor pengali dan faktor yang akan dikalikan selama n kali (sejumlah faktor pengali). Misalkan untuk perkalian antara Reg B dan Reg C, maka kita harus menjumlahkan B dengan B sebanyak C kali. Atau kita menjumlahkan antara C dengan C sebanyak B kali. METODE SHIFT AND ADD Metode ini merupakan penyelesaian proses perkalian dengan dengan cara menggeser bit bit bilangan kemudian ditambahkan sehingga diberi nama metode shift and add. Misalkan kita memiliki 2 data di reg B dan C maka metode yang digunakan sebagai berikut:

Pada prinsipnya metode ini memiliki aturan sebagai berikut : Pengujian Register C mulai dari LSB yakni dengan menggeser ke kanan menggunakan instruksi ADD A Register B digeser ke kiri Jika bertemu dengan Cy = 0 maka hanya menggeser register B pada saat diuji Jika bertemu dengan Cy = 1, tambahkan dulu hasil kali (pada register A) dengan data di register kemudian geser register B ke kiri. khiri dengan menggeser data di register B ke kiri ( geser kiri = menggandakan)

PROGRAM PEMBAGIAN
METODE PENGURANGAN BERULANG Metode ini merupakan penyelesaian proses pembagian dengan mengurangkan antara faktor yang akan dibagi dan faktor pembagi sampai dengan sisa bagi sama dengan 0 atau tidak bisa dibagi lagi (hasil bagi kurang dari faktor pembagi). Misalkan untuk pembagian Register B oleh Register C, maka kita harus mengurangkan B dengan C sampai dengan tidak bias dikurangi lagi hasilnya. METODE SHIFT AND SUBSTRACT Metode ini merupakan penyelesaian proses pembagian dengan dengan cara menggeser bit bit bilangan kemudian dikurangkan sehingga diberi nama metode shift and subtract. Misalkan kita ingin membagi data di yang ada di register B dengan data yang ada di register C dan ingin disimpan di register L maka metode yang digunakan sebagai berikut: Sebelumnya isi Register H dengan 00 agar jika B lebih kecil dari C hasilnya telah didapat dan tidak harus dilakukan proses pembagian Setelah pengujian, jika isi register B lebih besar dari C kemudian isikan ke register lain misalnya register L agar data yang ada di register B aman dan tidak berubah. Kemudian geser bit-bit pada register L sebanyak 4 kali untuk pengujian bit-bitnya dengan demikian isi MSB bisa diperoleh Geser register HL untuk mendapatkan bit MSB lalu kurangi register H dengan C dan isi register L yang sebelumnya ditambah 1.dengan begitu setelah proses dilakukan berulang kali maka isi register L sudah merupakan hasil bagi dari register B dengan C.

III.

ALAT YANG DIGUNAKAN a. Trainer Midicom b. Keyboard

IV.

FLOWCHART DAN PROGRAM

FLOWCHART PROGRAM SUBRUTIN DI $ AB00 SUB 1 ALAMAT CALL FF1 AB00 AB03 AB04 AB06 AB09 AB0B AB0E AB12 AB14 AB15 AB17 AB1A MNEMONIK CALL FF1 MOV A,C CPI 30 JC AB00 CPI 3A JC AB00 CALL FEE SUI 30 MOV H,A MVI C,20 CALL FEE RET

A C A : 30

CY =1

A : 3A

CY =1

CALL FEE A A -30 HA C 20 CALL FEE

RET

Flowchart Penjumlahan START

PROGRAM Penjumlahan

ALAMAT 8000 8003 8004 8007 8008 800A 800D 8010 8012 8015 8018 801B 801C 801E 8020 8023 8025 8028 8029 802A 802B 802D 802F 8030 8033 8035 8037 8038 803B 803D 8040 8042 8045

MNEMONIK CALL AB00 MOV B,H CALL FF1 MOV A,C CPI 2B JNZ 8004 CALL FEE MVI C, 20 CALL FEE CALL AB00 CALL FF1 MOV A,C CPI 3D JNZ 8018 CALL FEE MVI C,20 CALL FEE MOV A,B ADD H DAA CPI 10 JC 8033 MVI C,31 CALL FEE ANI 0F ADI 30 MOV C,A CALL FEE MVI C, 0D CALL FEE MVI C ,0A CALL FEE JMP 8000

CALL AB00 BH

CALL FF1 A C A : 2B

AB A A+ H A BCD A : 10

CY =1

Z=0

C 31 CALL FEE A A ^ 0F A A +30

CALL FEE C 20 CALL FEE CALL AB00 CALL FF1 A C A :3D

CA CALL FEE C 0D CALL FEE C 0A CALL FEE

Z =0

CALL FEE C 20 CALL FEE

Flowchart pengurangan

PROGRAM pengurangan

START

CALL AB00 BH

AB A:H

CALL FF1 A C A : 2D

CY =0

Z=0

CALL FEE C 20 CALL FEE CALL AB00 CALL FF1 A C A :3D

C 2D CALL FEE AB BH HA AA+B A A-H A A + 30 CA CALL FEE C 0D CALL FEE CA CALL FEE

Z =0

CALL FEE C 20 CALL FEE

ALAMAT 8100 8103 8104 8107 8108 810A 810D 8110 8112 8115 8118 811B 811C 811E 8120 8123 8125 8128 8129 812A 812D 812F 8132 8133 8134 8135 8136 8137 8139 813A 813D 813F 8142 8144 8147

MNEMONIK CALL AB00 MOV B,H CALL FF1 MOV A,C CPI 2B JNZ 8004 CALL FEE MVI C, 20 CALL FEE CALL AB00 CALL FF1 MOV A,C CPI 3D JNZ 8018 CALL FEE MVI C,20 CALL FEE MOV A,B CMP H JNC MVI C, 2D CALL FEE MOV A,B MOV B,H MOV H,A ADD B SUB H ADI 30 MOV C,A CALL FEE MVI C,0D CALL FEE MVI C,0A CALL FEE JMP 8100

Flowchart perkalian

START P CALL AB00 BH

T D0 AB A:0

U A A ^ F0 RRC RRC RRC RRC A A +30 CA CALL FEE AD A A ^ 0F DA AD A A +30 CA CALL FEE C 0D CALL FEE C 0A CALL FEE P

CALL FF1 A C A : 2A

Z=1

Z=0

A H A :0

CALL FEE C 20 CALL FEE CALL AB00 CALL FF1 A C A :3D

Z=1

AA+D A A+H A BCD DA B B-1

Z=0 Z =0 A D A : 10

CALL FEE C 20 CALL FEE

CY = 1

ALAMAT 8200 8203 8204 8207 8208 820A 820D 8210 8212 8215 8218 821B 821C 821E 8220 8223 8225 8228 822A 822B 822D 822F 8230 8232 8235 8236 8237 8238 8239 823A 823D 823E 8240 8243 8245 8246 8247 8248

MNEMONIK CALL AB00 MOV B,H CALL FF1 MOV A,C CPI 2F JNZ 8004 CALL FEE MVI C, 20 CALL FEE CALL AB00 CALL FF1 MOV A,C CPI 3D JNZ 8018 CALL FEE MVI C,20 CALL FEE MVI D,0 MOV A,B CPI 0 JZ 8253 MOV A,H CPI 0 JZ 8253 ADD D ADD H DAA MOV D,A DCR B JNZ 8235 MOV A,D CPI 10 JC 8253 ANI F0 RRC RRC RRC RRC

ALAMAT 8249 824B 824C 824F 8250 8252 8253 8254 8256 8257 825A 825B 825E 825F 8262

MNEMONIK ADI 30 MOV C,A CALL FEE MOV A,D ANI OF MOV D,A MOV A,D ADI 30 MOV C,A CALL FEE MVI C,0D CALL FEE MVI C,0A CALLFEE JMP 8200

Flowchart Pembagian START Z


V

T CALL AB00 BH A:0 E0


D B

Q AE A A +30 CA CALL FEE L L-1


Y

CALL FF1 A C A : 2F

Z=1 AD A:H A A+A A A+A A A+A A A+A


DA

Z=0

CY = 1

CALL FEE C 20 CALL FEE CALL AB00

AD A A H DA E E +1

AE A A +30 CA CALL FEE AD A:0

Z =0

A 99 A A H A A +01 A BCD BA E 00

C 0D CALL FEE C 0A CALL FEE Z

CALL FF1 A C A :3D O Z =0

Z=1

C 2C CALL FEE L 05

AD A A+B A BCD DA E E +1 AD A:H

CALL FEE C 20 CALL FEE

AD Y V

CY = 0 T Q

ALAMAT 8300 8303 8304 8307 8308 830A 830D 8310 8312 8315 8318 831B 831C 831E 8321 8324 8326 8329 832B 832C 832D 832E 8331 8332 8333 8334 8335 8338 8339 833B 833C 833F 8340 8342 8345 8347 834A 834C 834D 834F

MNEMONIK CALL AB00 MOV B,H

ALAMAT 8350 8351 8352 8353 8354 8355 8357 8358 835B 835C 835D 835F 8360 8361 8362 8363 8364 8365 8366 8369 836A 836C 836D 8370 8371 8374 8376 8379 837B 837E

MNEMONIK ADD A ADD A

PROGRAM PEMBAGIAN

CALL FF1 MOV A,C CPI 2B JNZ 8004 CALL FEE MVI C, 20 CALL FEE CALL AB00 CALL FF1 MOV A,C CPI 3D JNZ 8018 CALL FEE MVI C,20 CALL FEE MVI E,0 MOV D,B MOV A,D CMP H JC 8338 MOV A,D SUB H MOV D,A INR E JMP 832C MOV A,E ADI 30 MOV C,A CALL FEE MOV A,D CPI 0 JZ 8374 MVI C,2C CALL FEE MVI L,05 MOV A,D CPI 0 JZ 8374

ADD A ADD A MOV D,A MVI A,99 SUB H ADI 01 DAA MOV B,A MVI E,0 MOV A,D ADD B DAA MOV D,A INR E MOV A,D CMP H JNC MOV A,E ADI 30 MOV C,A CALL FEE DCR L JNZ 834C MVI C,0D CALL FEE MVI C,0A CALL FEE JMP 8300

V.

LANGKAH KERJA

1. 2. 3. 4. 5. 6. 7.

Nyalakan Trainer midicom Nyalakn monitor Tekan spacebar hingga menu muncul . Buatlah program subrutin 1 pada alamat $AB00 Menulis program : A $AB00 Cr tulis program Tekan Esc. Program penjumlahan sederhana 1 digit a. Masuk ke assembler dengan : A lalu masukkan alamat $ 8000 b. Tulis program pada gambar a lalu tekan Esc c. Setelah itu jalankan program dengan menekan : G (alamat) $8000 Enter ( Cr ) d. Cobalah untuk menulis penjumlahan pada program tersebut. Gunakan tanda jumlah pada keyboard . 8. Program pengurangan sederhana 1 digit a. Tekan Esc , pahami flowchart program pengurangan diatas lalu kita akan memasukkan program tersebut pada alamat $8100 b. Masukan program dengan cara masuk ke menu assembler : A $8100 Cr c. Tulis program pada gambar b diatas lalu tekanlah Esc d. Setelah itu jalankan program tersebut dengan menekan : G $8100 Cr e. Cobalah untuk lakukan operasi pengurangan bilangan 1 digit. 9. Program perkalian sederhana 1 digit a. Tekan Esc dan tulislah program perkalian 1 digit diatas . b. Masuk pada alamat $8200 setelah itu tulis program : A $8200 tulislah program c. Jika sudah selesai ,Tekanlah Esc d. Jalankan program dengan menekan G dan masukkan alamat $8200 e. Tekan Cr f. Setelah itu cobalah lakukan perkalian 1 digit. Dengan hasil perkalian yang menghasilkan 1digit dan 2 digit. 10. Program pembagian sederhana 1 digit a. Tekanlah Esc b. Perhatikan flowchar dan program pembagian diatas c. Masukkan program diatas pada alamat $8300 d. Masuklah pada menu Assembler dan masukkan alamat $8300 lalu masukan program e. Jalankan program tersebut : G $8300 Cr f. Lakukanlah operasi pembagian 2digit dengan 1 digit. Atau 1 digit dengan 1 digit , cobalah untuk hasil pembagian yang memiliki angka dibelakang koma .

VI.

ANALISA DAN KESIMPULAN Program penjumlahandecimal 1 digit

Pada program penjumlahan kita memunculkan hasilnya pada layar monitor. Selain itu pada program utamanya kita menggunakan pembanding 2B ( merupakan ASCII dari tanda + ) sehingga apabila kita melakukan penjumlahan kita baru bisa menulis angka kedua ketika kita telah menulis tombol operasi + saja . Hasil pada layar : 5+2=7 Program pengurangan decimal 1 digit Pada program pengurangan kita tidak merubah struktur dari program pertama tetapi kita merubah instruksi CPI 2B menjadi instruksi yaitu kode ASCII dari tanda sehingga apabila program dijalankan kita baru bisa menulis angka kedua setelah tanda - ditulis . apabila hasil berupa minus maka proses pengurangan akan dibalik . angka yang lebih besar akan dikurangi angka yang lebih kecil . hasilnya juga ditampilkan pada layar 52=3 2 7 = -5 Program perkalian Pada program perkalian kita menggunakan penjumlahan berulang semua bilangan / angka yang diinput akan dicheck terlebih dahulu , jika nol maka program akan langsung menuliskan 0 pada layar . Pada program ini kita juga perlu mengganti instruksi CPI 2B dengan instruksi. Yang merupakan kode ASCII * . setelah diganti barulah program benar benar selesai . pada flowchartnya program perkalian menggunakan instruksi RRC untuk menggeser data sebanyak 4 bit lalu baru di proses sehingga menjadi data decimal . Hasil uji : 3 * 4 = 12 2*3=6 Program pembagian Pada program pembagian kita menggunakan metode shift and substract . kita menggeser data sebanyak 4 bit karena data 1 digit .selain itu kit juga membuat banyaknya angka dibelakang koma yang dapat dibuat terlihat pad instruksi MVI L , 05 . pada program pembagian juga jangan lupa mengganti instruksi CPI 2B dari program utama dengan kode ASCII dari tanda / (backslash ) untuk pembagian . hasil uji pada layar : 28 / 4 = 7 5 / 2 = 2,5

Anda mungkin juga menyukai