LAPORAN PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY “PROGRAM OPERASI ARITMATIKA”
Kelas : INF 2B Praktikum 1 Nama : Fernalia NIM : J3C212210
PROGRAM KEAHLIAN MANAJEMEN INFORMATIKA DIREKTORAT PROGRAM DIPLOMA INSTITUT PERTANIAN BOGOR 2013
DAFTAR ISI DAFTAR ISI ......................................................................................................................... i DAFTAR GAMBAR ............................................................................................................ ii LAPORAN PRAKTIKUM ................................................................................................... 1 1.
Tujuan Percobaan ....................................................................................................... 1
2.
Teori Penunjang ......................................................................................................... 1
3.
4.
2.1.
Interrupt dan Register .......................................................................................... 1
2.2.
Tanda Directive ................................................................................................... 3
2.3.
Manipulasi Bit dan Gerbang Logika .................................................................... 4
Tugas Pendahuluan..................................................................................................... 5 3.1.
Program Operasi Aritmatika 1 ............................................................................. 5
3.2.
Program Operasi Aritmatika 2 ............................................................................. 6
Listing Program .......................................................................................................... 6 4.1.
Program Operasi Aritmatika 1 ............................................................................. 6
4.2.
Program Operasi Aritmatika 2 ............................................................................. 6
5.
Analisis Program ........................................................................................................ 6
6.
Kesimpulan ................................................................................................................ 6
7.
Daftar Pustaka ............................................................................................................ 7
i|Laporan Praktikum Organisasi Komputer & Bahasa Assembly
DAFTAR GAMBAR Gambar 1 Output Program Operasi Aritmatika 1 ................................................................... 5 Gambar 2 Output Program Operasi Aritmatika 2 ................................................................... 6 Gambar 4 Kode Program Operasi Aritmatika 1 ..................................................................... 6 Gambar 5 Kode Program Operasi Aritmatika 2 ..................................................................... 6 Gambar 7 Analisis Program Part 1 ........................................................................................ 6
ii | L a p o r a n P r a k t i k u m O r g a n i s a s i K o m p u t e r & B a h a s a Assembly
LAPORAN PRAKTIKUM 1. Tujuan Percobaan 1) Mengetahui dan memahami syntax yang dalam pembuatan program operasi aritmatika yang lebih banyak menggunakan operasi-operasi logikal. 2) Memahami penggunaan operasi-operasi logik dalam pembuatan program beroperasi aritmatika.
2. Teori Penunjang 2.1. Interrupt dan Register Interrupt atau sering kali disebut dengan intruksi merupakan permintaanperminaatan yang dikirimkan kepada processor untuk memproses dan melakukan sesuatu.
Dalam
pemrograman
bahasa
assembler,
interupsi
digunakan
untuk
menyelesaikan tugas atau permintaan yang dimasukan secara khusus oleh user dalam pengeksekusian program yang diinginkan. Pada umumnya, interrupt ini diartikan sebagai perintah-perintah yang diperintahkan oleh user untuk selanjutnya dikirimkan ke microprocessor melalui register-register dan diproses sehingga menghasilkan balikan nilai yang sesuai dengan perintah-perintah yang dimasukkan oleh user.
Interrupt terbagi atas 2 macam: 1) Interrupt 00h – 1Fh(0 - 31) merupakan interrupt BIOS dan standar di semua komputer baik yang menggunakan sistem operasi DOS maupun bukan yang menggunakan sistem operasi DOS. Lokasi Interrupt Vector Table-nya ada di alamat absolute 0000h-007Fh. 2) Interrupt 20h – FFh (32 - 255) merupakan interrupt DOS. Interrupt ini hanya ada pada komputer yang menggunakan sistem operasi DOS dan interrupt handler-nya dip roses ke memori oleh DOS pada saat DOS digunakan. Lokasi Interrupt Vector Table-nya ada di alamat absolute 07h-3FFh.
Register merupakan sebaguan memori dari microprocessor yang dapat diakses dengan kecepatan yang sangat tinggi. Register ini merupakan perantara yang selalu 1|Laporan Praktikum Organisasi Komputer & Bahasa Assembly
digunakan oleh microprocessor untuk melakukan pekerjaannya. Register yang digunakan oleh microprocessor dibagi menjadi 5 bagian sesuai dengan tugasnya, keliama bagian tersebut adalah: 1) Segmen Register yang terdiri atas CS (Code Segment), DS (Data Segment), ES (Extra Segment), dan SS (Stack Segment). 2) Pointer dan Index Register yang terdiri dari SP (Stack Pointer), BP (Base Pointer), SI (Source Index), dan DI (Destination Index). 3) General Purpose Register yang terdiri atas AX, BX, CX dan DX yang masing-masingnya terdiri atas 16 bit. Pada setiap bagian register ini, terdapat 2 bagian yaitu H yang menandai High dan L yang menandai Low. High ini menandai 8 bit pada posisi akhir register dan Low menandai 8 bit pada posisi awal register. Pada register-register ini biasanya digunakan dalam berbagai keperluan, tetapi dapat digunakan pula dalam kondisi-kondisi khusus seperti: a. Register AX, biasanya digunakan dalam operasi aritmatika terutama dalam operasi pembagian dan pengurangan. b. Register BX, pada umumnya digunakan untuk menunjukkan suatu alamat offset dari suatu segmen. c. Register CX, biasanya digunakan pada operasi looping (perulangan) dimana pada register ini menunjukkan banyaknya looping yang akan terjadi pada sebuah program. d. Register DX, digunakan secara khusus untuk menampung sisa hasil pembagian 16 bit. 4) Index Pointer Register merupakan register IP yang berpasangan dengan CS (CS:IP) berufngsi untuk menunjukkan alamat pada memori tempat dari intruksi (perintah) selanjutnya yang akan diseksekusi. 5) Flags Register merupakan register yang menunjukkan kondisi dari sebuah keadaan. Kondisi keadaan ini mengembalikan nilai “ya” atau “tidak”, 0 atau 1. Pengecekan suatu kondisi dengan nilai balikan “ya” atau “tidak” disebut dengan fungsi Boolean. Setiap keadaan pada flags register ini hanya terpakai 1 bit saja, maka untuk satu flags register ini masing-maisng dapat menyimpan 16 keadaan (16 bit). Flags Register ini terdiri atas OF (OverFlow Flag), SF (Sign Flag), ZF (Zero Flag), CF (Carry Flag), PF (Parity Flag), DF
2|Laporan Praktikum Organisasi Komputer & Bahasa Assembly
(Direction Flag), IF (Interrupt Enable Flag), TF (Trap Flag), AF (Auxiliary Flag), NT (Nested Task) dan IOPL (I/O Protection Level).
2.2.Tanda Directive 2.2.1. .MODEL, Model-model pada program dan codenya: 1) TINY, program hanya akan menggunakan 1 segment seperti program COM, model ini disediakan untuk program COM. 2) SMALL, data dan code yang digunakan oleh program kurang dari ukuran 1 segment atau 64 KB. 3) MEDIUM, data yang digunakan oleh program kurang dari 64 KB tetapi code yang digunakan bisa lebih dari 64 KB. 4) COMPACT, data yang digunakan bisa lebih besar dari 64 KB tetapi codenya kurang dari 64 KB. 5) LARGE, data dan code yang dipakai oleh program bisa lebih dari 64 KB. 6) HUGE, data maupun code array yang digunakan bisa lebih dari 64 KB.
2.2.2. .CODE Tanda directive yang digunakan untuk memberikan pemberitahuan mengenai code segmentnya. Code segment ini digunakan untuk menyimpan program yang akan dijalankan.
2.2.3. .ORG 100h Tanda directive ini sering digunakan pada program COM. Perintah ini digunakan untuk memberitahukan kepada assembler supaya program pada saat dijalankan ditaruh mulai pada offset ke 100h (256) byte. Dapat diartikan juga bahwa kita menyediakan 100h byte kosong pada saat program dijalankan. Program kosong ini nantinya akan ditempati oleh PSP (Program Segment Prefix).
2.2.4. .JMP Perintah JMP digunakan untuk melompat menuju tempat yang ditunjukkan oleh perintah JUMP. 3|Laporan Praktikum Organisasi Komputer & Bahasa Assembly
Syntax: JUMP Tujuan
2.2.5. INT 20h Perintah ini digunakan untuk megakhiri program dan menyerahkannya kembali ke DOS.
2.3. Manipulasi Bit dan Gerbang Logika 2.3.1. Gerbang NOT NOT Tujuan,Sumber Pada gerbang logika NOT ini akan menginverskan nilai dari sebuah nilai: A
NOT A
0
1
1
0 Tabel 1 Nilai Kebenaran Operasi NOT
2.3.2. Gerbang AND AND Tujuan,Sumber A
B
A AND B
0
0
0
0
1
0
1
0
0
1
1
1
Tabel 2 Nilai Kebenaran Operasi AND
2.3.3. Gerbang OR OR Tujuan,Sumber A
B
A OR B
0
0
0
0
1
1
1
0
1
1
1
1
Tabel 3 Nilai Kebenaran Operasi OR
4|Laporan Praktikum Organisasi Komputer & Bahasa Assembly
2.3.4. Gerbang XOR XOR Tujuan,Sumber A
B
A OR B
0
0
0
0
1
1
1
0
1
1
1
0
Tabel 4 Nilai Kebenaran Operasi XOR
3. Tugas Pendahuluan 3.1. Program Gerbang Logika 1 𝑛𝑜𝑡 ( 𝐴 𝑜𝑟 𝐵 𝑥𝑜𝑟 (𝐶 𝑜𝑟 𝐷)) Dengan: A = 3Fh B = 1Ah C = 2Ah D = 3Ch Output:
Gambar 1 Output Program Operasi Aritmatika 1
5|Laporan Praktikum Organisasi Komputer & Bahasa Assembly
3.2. Program Gerbang Logika 2 𝑛𝑜𝑡 𝐴 𝑎𝑛𝑑 𝐵
𝑥𝑜𝑟 (𝑛𝑜𝑡 (𝐶 𝑎𝑛𝑑 𝐷))
Dengan: A = 3Fh B = 1Ah C = 2Ah D = 3Ch
Output: Gambar 2 Output Program Operasi Aritmatika 2
4. Listing Program 4.1. Program Operasi Aritmatika 1 Gambar 3 Kode Program Operasi Aritmatika 1
4.2. Program Operasi Aritmatika 2
Gambar 4 Kode Program Operasi Aritmatika 2
5. Analisis Program
Gambar 5 Analisis Program Part 1
6. Kesimpulan Program operasi arirmatika ini berisi operasi-operasi logik yang sering digunakan. Operasi aritmatika pada Assembler merupakan fungsi yang jelas dari implementasi operasi logik yang digunakan sehari-hari seperti operasi penambahan yang diimplementasikan dengan ADD, ADC, INC; operasi pengurangan yang diimplementasi melalui perintah SUB, SBB, DEC; operasi perkalian yang diimpelentasikan dengan perintah MUL; operasi pembagian yang implementasinya adalah perintah DIV.
6|Laporan Praktikum Organisasi Komputer & Bahasa Assembly
Operasi aritmatika ini adalah pengaplikasian dari kegiatan pengoperasian logik dalam kegiatan sehari-hari, contohnya pengaplikasian dari carry flag yang merupakan sisa dari pengurangan atau penambahan dan pengaplikasian register DX sebagai hasil siswa lebih dari operasi pembagian atau perkalian.
7. Daftar Pustaka 1) Suheri, Asep. 2012. MODUL PRAKTIKUM ORGANISASI KOMPUTER & BAHASA ASSEMBLY. [Bogor]: Program Diploma Institut Pertanian Bogor [IPB]. 2) Susanto.
1995.
Pemrograman
dengan
Bahasa
Assembly.
Elex Media
Komputindo.
7|Laporan Praktikum Organisasi Komputer & Bahasa Assembly