Anda di halaman 1dari 19

1

DAFTAR ISI
DAFTAR ISI...........................................................................................................1
ABSTRAK..............................................................................................................2
BAB I PENDAHULUAN.......................................................................................3
1.1 Latar Belakang..........................................................................................3
1.2 Rumusan Masalah....................................................................................3
1.3 Tujuan........................................................................................................4
BAB II DASAR TEORI ........................................................................................5
BAB III PERANCANGAN SISTEM.................................................................10
3.1 Gambaran Umum Sistem dan Penetapan Definisi Kebutuhan...........10
3.2 Algoritma Sistem......................................................................................10
3.3 Flowchart Keseluruhan Sistem...............................................................12
BAB IV ANALISA SISTEM...............................................................................13
4.1 Pengujian Sistem.....................................................................................13
4.2 Analisa Sistem.........................................................................................14
BAB V PENUTUPAN..........................................................................................16
5.1 Kesimpulan..............................................................................................16
5.2 Saran........................................................................................................16
DAFTAR PUSTAKA.......................................................................................17
LAMPIRAN......................................................................................................18
Abstrak

BAB I . terdapat berbagai emulator yang dapat dpelajari. 8086 Microprocessor Emulator. dan video. Bagian penting yang harus dipahami sebelum berbicara jauh mengenai teknologi informasi adalah mikroprosesor. menyimpan. percobaan ini mencoba mempelajari cara menghitung jumlah huruf vocal dan konsonan pada suatu kalimat. mengubah. Banyak program yang dapat diciptakan dengan memahami aplikasi ini. tetapi juga telepon. peralatan rumah tangga elektronik. Untuk memahaminya. Salah satu contohnya adalah aplikasi berbasis dos. dan peranti genggam modern. Contoh dari Teknologi Informasi bukan hanya berupa komputer pribadi.2 Teknologi informasi adalah istilah umum untuk teknologi apa pun yang membantu manusia dalam membuat. TV. mengomunikasikan dan/atau menyebarkan informasi. emu86. TI menyatukan komputasi dan komunikasi berkecepatan tinggi untuk data. suara.

dengan mempelajari teknologi ini kita semakin siap bertahan dalam arus teknologi yang sedang mengalir deras di era modern ini. Mikroprosesor dapat dipelajari dengan menggunakan emulator-emulatornya. kesehatan. Bagaimana prinsip kerja instruksi – instruksi yang terdapat pada Emu8086 untuk mengetahui jumlah karakter saat kita masukkan input kalimat? 1. Bagaimana kita dapat mengetahui jumlah huruf vocal dan huruf konsonan jika kita masukkan input kalimat ke dalam program? b. Salah satu emulator yang cukup awam adalah emu86.3 PENDAHULUAN 1. . 8086 Microprocessor Emulator. 1.1 Latar Belakang Di dalam dunia pendidikan. Emulator ini bekerja berdasarkan mikroprosesor 8086. industri dan bidang lain telah menerapkan teknologi rangkaian digital untuk meningkatkan kualitas pekerjaan. perbankan.2 Rumusan Masalah a. Salah satunya adalah teknologi mikroprosesor. Teknologi informasi yang merupakan ilmu dasar dari rangkaian digital yang kemudian dikembangkan menjadi alat-alat yang dapat mempermudah pekerjaan manusia dalam aspek-aspek kehidupan manusia.3 Tujuan Untuk membuat program dari aplikasi emu8086 yaitu menampilkan beberapa baris kalimat dengan latar belakang berwarna.

4 BAB II DASAR TEORI Kebanyakan instruksi dalam program bahasa Assembly membutuhkan operan. Cara menentukan/memperoleh harga/tempat ope- . yaitu data yang akan diolah.

3Fh .Segera (Immediate Addressing) . pengalamatannya disebut pengalamatan implied (tersirat) atau pengalamatan inherent. artinya operannya telah inklusif dalam kode operasi (operation code. muati AX dengan data 3Fh LEA DX.5 ran ini disebut sebagai modus pengalamatan (addressing mode). Untuk instruksi yang operannya telah tertentu atau tidak dibutuhkan. muati DX dengan alamat pesan . 8088/8086 menyediakan beberapa macam cara pengalamatan yaitu: .Register (Register Addressing) .Taklangsung/terindeks (Indirect/Indexed Addressing) Dalam uraian bentuk format pengalamatan berikut ini digunakan notasi: kode = opcode Contoh: r = register m = memori d = data konstan MOV AX.pesan . Modus pengalamatan ini. Untuk instruksi yang membutuhkan operan.Langsung (Direct Addressing) . mutlak diketahui dalam membuat program bahasa Assembly sebab dengan pengetahuan inilah program dapat dibuat lebih mudah dan dengan hasil yang lebih baik dan efisien. opcode)nya.

BX . r adalah AX dan DX. di AX/AL dengan yang ada di BX/CL DEC . menurunkan 1 harga di register DI DI Instruksi Pemindahan Data Perpindahan data dapat terjadi antar register.6 Dalam kedua contoh instruksi diatas. Untuk memudahkan uraian. yaitu lokasi memori yang telah didefinisikan sebelumnya dengan nama pesan dalam segmen yang ditunjuk oleh DS. Perpindahan data dapat dilakukan per byte atau per word. antara register dan memori atau peralatan masukan/keluaran (I/O device). Dalam contoh-contoh yang disajikan dalam subbab ini dianggap bahwa data berada dalam segmen yang ditunjuk oleh register segmen DS. Instruksi pemindahan data meliputi . Instruksinya mempunyai format : kode r.r Contoh: atau kode r MOV AX. untuk menggantikan harga yang disimpan MOV AL. peralatan masukan/keluaran seterusnya akan disingkat saja dengan I/O. 2.1 Pengalamatan Register Dalam modus pengalamatan ini.CL . operan yang digunakan untuk melaksanakan instruksi telah ditempatkan (berada) di register.4. d adalah 3Fh dan m adalah pesan. kode adalah MOV dan LEA.

LDS.BL dan seterusnya.AH atau MOV AH.[data] atau MOV [data]. Setiap menjumpai instruksi INT. misalnya. prosedur yang dipanggil pada umumnya merupakan bagian dari dan berada dalam program pemanggil. PUSHF. maka dalam instruksi INT prosedur yang dipanggil merupakan rutin layanan interupsi (Interrupt Service Routine) yang berada di luar program pemanggil dan dalam kebanyakan hal telah disediakan oleh sistem operasi. LAHF MOV: Instruksi MOV (singkatan MOVE) merupakan instruksi yang paling banyak digunakan dan hampir semua pengalamatan untuk dua operan dapat dilakukan dengan instruksi ini. Instruksi INT 5. SAHF. OUT. POP. akan mencari alamat rutin layanan dari alamat 20 = 14h yang merupakan hasil kali nomor interupsi (= 5) dengan . POPF. Instruksi ini dapat digunakan untuk mengkopi isi suatu register ke register lain dalam ukuran word atau byte seperti MOV AX. XCHG. atau mengkopi isi register ke memori atau sebaliknya seperti MOV DX. PUSH.AX. prosesor akan mengambil alamat rutin layanan interupsi yang diinginkan dari lokasi memori terendah. IN. yang disebut vektor interupsi.7 instruksi-instruksi: MOV. LES. LEA. Perbedaannya terletak pada rutin yang dipanggil. INT (Interrupt): Instruksi INT (interrupt) hampir sama dengan instruksi CALL.BX atau MOV AL. Operan instruksi ini tidak boleh kedua-duanya memori. Kalau dalam instruksi CALL. XLAT.

Lompatan bersyarat. JAE/JNB. sebagai contoh. JLE/JNG.JP/JPE. digunakan instruksi untuk pembandingan bertanda maka hanya 7 bit yang dibandingkan (bit tanda diperlakukan secara terpisah) sehingga hasil pembandingan tersebut (ditunjukkan oleh status) belum tentu menggambarkan yang sebenarnya. JE/JZ. JL/JNGE. tetapi sangat membantu dalam pembuatan program pengulangan (loop). JNO Tak bertanda :JA/JBNE. INTO (Interupt on Overflow) akan memanggil interupsi bila flag Overflow (OF) berkeadaan 1. JNE/JNZ. Pasangan instruksi INT ini adalah IRET (Interrupt Return) sebagai tanda akhir pelaksanaan di rutin layanan interupsi.8 panjang setiap vektor (= 4). JS. JB/ JNAE. LOOP LOOP: Instruksi LOOP merupakan suatu instruksi yang sedikit lebih kompleks. Kalau dalam pembandingan data karakter ASCII. JCXZ. Dalam pemakaian . Instruksi untuk pembandingan bersyarat ini adalah: Bertanda :JG/JNLE. Interupsi yang dipanggil adalah INT 4 yang alamat absolut rutin layanannya adalah 4 x 4=16. JO. JGE/JNL. Dalam hal ini perlu diingatkan bahwa untuk data bertanda (positif atau negatif) bit paling kiri dalam data tersebut digunakan sebagai tanda yang berharga 1 untuk bilangan negatif yang disajikan dalam komplemen 2. JBE/JC. JNS. JNP/JPO. Lompatan bersyarat dibedakan atas lompatan untuk pembandingan data yang bertanda dan lompatan untuk pembandingan data yang tak bertanda. Instruksi akan kembali mengulangi blok instruksi yang berada diantara instruksi itu dan label yang disebutkan sebagai operan sebanyak isi CX kali.

Dalam blok instruksi: MOV AX. yang dimulai dengan harga 0. akan ditambahkan satu-satu sebanyak 300 kali (012Ch = 300) sehingga sewaktu proses keluar dari perulangan AX akan berisi perjumlahan semua bilangan dari 1 s/d 300. yaitu: ulang. prosesor mengurangi isi CX sebanyak 1 (decrement) dan menceknya apakah sudah berharga 0. BAB III PERANCANGAN SISTEM 3.1 Gambaran Umum Sistem dan Penetapan Defenisi Kebutuhan . 0 MOV CX. 012Ch ulang: INC . Perhatikan bahwa awal dari blok loop ini ditandai oleh label yang ditunjuk oleh instruksi LOOP itu sendiri.9 instruksi ini kita selalu harus meyakinkan bahwa register CX telah berisi data yang menunjukkan jumlah (lebih tepat dikatakan cacah) perulangan yang kita inginkan. muati CX dengan 300 AX LOOPulang isi register AX. Setiap selesai melaksanakan instruksi ini. Selama isi CX belum 0 pelaksanaan diulangi dari awal loop dan setelah CX= 0 pelaksanaan dilanjutkan ke instruksi sesudah (di bawah) instruksi LOOP tersebut.

1 Pengujian Sistem .10 3.3 Flowchart Keseluruhan Sistem BAB IV ANALISA SISTEM 4.2 Algoritma Sistem 3.

11 BAB V PENUTUP 5.1 Kesimpulan .

DAFTAR PUSTAKA Help emu8086 http://www. Assembly merupakan program yang mempunyai banyak intruksi untuk membuat tampilan program bervariasi Program ini merupakan suatu intruksi menampilkan karakter disertai dengan latar belakang warna. 5. bilangan octal dan hexadesimal.12 Assembler adalah program yang mengonversi kode program sumber ke dalam bahasa mesin sistem bilangan (Number System) adalah suatu cara untuk mewakili besaran dari suatu item fisik. System bilangan terdiri dari: bilangan biner. bilangan decimal.com/assembly_programming/index.2 Saran Sebelum anda membuat program assembly carilah bahan yang mendukung pengetahuan tentang bahasa tersebut.tutorialspoint.kemudian pikirkan program apa yang akan anda buat.sebelum menuju kepembuatan program rencanakan dulu flowchart untuk program tersebut sehingga dalam membuat program tersebut akan lebih mudah kita menemukan logika program seperti apa yang ingin kita buat.serta bekerja keras untuk mendapatkan hasil yang baik.htm .

edu/~sakhtar3/articles/8086/ASM-0Tutorial-Ready-20to20Start!.hep.edu/~pinghc/x86AssmTutorial.drexel.MODEL SMALL .html http://www.13 http://www.edu/~bhoward/asmtut/asmtut2.htm http://ee.html#topic1 LAMPIRAN .edu/~rares/asm3.depauw.pdf http://prism2.id/berseri/sto-assembly/ http://w3.edu/ece390/books/artofasm/artofasm.ac.br/rmbranco/cefet_files/Apostila/8086-20Assembly.dinus.academia.csc.engr.edu/4873496/Assemblious_Tutorial_Assembly_x86_dengan _FASM http://ikc.htm http://www.sharif.htm https://courses.CODE ORG 100H .wisc.mem.illinois.ufsm.

13.10.10.?.30H JMP PROSES KAL0 DB 'Ketikkan satu kalimat.10.10.'Jumlah Huruf Vokal:$' KAL5 DB 13.'Jumlah Huruf Konsonan:$' KATA DB 20.10.10.'$' KAL4 DB 13.09H MOV DX.'Panjang string adalah:$' KALX DB 13.'Cetak dari belakang:$'.10 KAL3 DB 13.============= CETAK STRING ================ MOV AH. bro:$' KAL1 DB 13.'Kalimat yang diinput adalah:$' KAL2 DB 13.14 AWAL: MOV CL.OFFSET KAL0 .20 DUP (?) VOKAL: INC CL JMP PLUS PROSES: .

OFFSET KAL1 INT 21H .[BX] CMP DL.15 INT 21H .========= CETAK VARIABEL================== MOV BX.0DH JE BELAKANG .============= CETAK STRING ================ MOV AH.KATA INT 21H .============= INPUT STRING ================ MOV AH.OFFSET KATA+2 CETAK: MOV DL.09H MOV DX.0AH LEA DX.

'A' JE VOKAL CMP DL.'U' JE VOKAL CMP DL.02H INT 21H CMP DL.'e' JE VOKAL CMP DL.'u' JE VOKAL CMP DL.'o' JE VOKAL CMP DL.'a' JE VOKAL CMP DL.'E' JE VOKAL CMP DL.'I' JE VOKAL CMP DL.'O' JE VOKAL PLUS:INC BX JMP CETAK .'i' JE VOKAL CMP DL.16 MOV AH.

[BX] CMP DL.02H INT 21H DEC BX JMP CETAK1 .OFFSET KALX INT 21H CETAK1: MOV DL.09H MOV DX.OFFSET KAL2 INT 21H MOV AH.KATA+1 JE VOKAL1 MOV AH.09H MOV DX.OFFSET KAL4 .09H MOV DX.============ CETAK JUMLAH VOKAL ================ VOKAL1: MOV AH.============= CETAK KATA DARI BELAKANG=============== BELAKANG:MOV AH.17 .

CL .OFFSET KATA+1 MOV DL.ADD DL.09H MOV DX.OFFSET KAL5 INT 21H MOV BX.02H INT 21H .02H INT 21H .18 INT 21H MOV DL.============= CETAK PANJANG STRING ================ .30H SUB DL.30H MOV AH.============ CETAK JUMLAH KONSONAN =============== KONSONAN: MOV AH.30H MOV AH.CL ADD DL.[BX] ADD DL.

[BX] ADD DL.19 AKHIR: MOV AH.OFFSET KATA+1 MOV DL.02H INT 21H SELESAI: INT 20H END AWAL .OFFSET KAL3 INT 21H MOV BX.09H MOV DX.30H MOV AH.