Anda di halaman 1dari 14

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
2.1. Interrupt dan Register..............................................................................................1
2.2. Tanda Directive........................................................................................................3
2.3. Manipulasi Bit dan Gerbang Logika........................................................................4
3. Tugas Pendahuluan.........................................................................................................5
3.1. Program Gerbang Logika 1......................................................................................5
3.2. Program Gerbang Logika 2......................................................................................5
4. Listing Program...............................................................................................................7
4.1. Program Gerbang Logika 1......................................................................................7
4.2. Program Gerbang Logika 2......................................................................................8
5. Analisis Program.............................................................................................................8
5.1. Program Gerbang Logika 1......................................................................................9
5.2. Program Gerbang Logika 2....................................................................................10
6. Kesimpulan....................................................................................................................11
7. Daftar Pustaka...............................................................................................................11

i
DAFTAR GAMBAR

Gambar 1 Output Program Gerbang Logika 1...........................................................................5


Gambar 2 Output Program Gerbang Logika 2...........................................................................6
Gambar 3 Kode Program Gerbang Logika 1.............................................................................7
Gambar 4 Kode Program Gerbang Logika 2.............................................................................8
Gambar 5 Analisa Program Part 1.............................................................................................8
Gambar 6 Analisa Program Part 2.............................................................................................9
Gambar 7 Analisa ProgramPart 3...............................................................................................9
Gambar 8 Analisa Program Part 4...........................................................................................10
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 permintaan-
perminaatan 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
digunakan oleh microprocessor untuk melakukan pekerjaannya. Register yang

1
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
(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.
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

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 Gerbang Logika 1

3.2. Program Gerbang Logika 2


𝑛𝑜𝑡 𝐴 𝑎𝑛𝑑 𝐵 𝑥𝑜𝑟 (𝑛𝑜𝑡 (𝐶 𝑎𝑛𝑑 𝐷))
Dengan:
A = 3Fh
B = 1Ah
C = 2Ah
D = 3Ch

Output:

Gambar 2 Output Program Gerbang Logika 2


4. Listing Program
4.1. Program Gerbang Logika 1

Gambar 3 Kode Program Gerbang Logika 1


4.2. Program Gerbang Logika 2

Gambar 4 Kode Program Gerbang Logika 2

5. Analisis Program

Gambar 5 Analisa Program Part 1

Pada potongan program Operasi Aritmatika diatas, baris 1 sampai bari ke 3


merupakan tanda directive yang memiliki fungsi yang berbeda-beda. .MODEL SMALL
merupakan tanda directive yang menunjukan model dari program. .MODEL SMALL ini
menunjukkan bahwa program yang dibuat memilih model program SMALL yang berarti
code dan program yang dibuat tidak lebih dari 1 segment. .CODE merupakan tanda
directive yang memberikan pemberitahuan kepada code segment, artinya program akan
disimpan di code segment tersebut. ORG 100h berarti bahwa kita merelokasikan memori
kosong sebesar 100h untuk selanjutnya akan dipakai oleh PSP.
Gambar 6 Analisa Program Part 2

Pada analisa program diatas, terlihat bahwa DATA merupakan label yang berisi
argumen dasar untuk menginisialisasikan variabel A, B, C, D dengan nilai 3Fh, 1Ah, 2Ah
dan 3Ch. Selain variabel A, B, C, D, terdapat variabel E, F, G yang didefinisikan dengan
default nilai yang dinamis. Artinya variabel E, F, dan G merupakan variabel yang akan
diisikan nilai selanjutnya pada proses program jika dibutuhkan dan terdapat pada kode
program. Selain argumen yang diinisialisasikan, terdapat perintah “JMP Proses” yang
berarti melompati argumen yang ada dibawah baris “JMP Proses” untuk langsung
mengeksekusi baris-baris program yang berada pada label Proses.

5.1. Program Gerbang Logika 1

Gambar 7 Analisa ProgramPart 3

Pada gambar diatas, menunjukkan bahwa baris-baris program antara baris ke-15
sampai dengan baris ke-27 merupakan isi argumen pada label Proses. Baris 15 berarti
bahwa nilai pada register AX akan berisi nilai yang berada pada variabel A (3Fh).
Baris ke-16, memasukkan nilai pada variabel B (1Ah) ke register BX. Baris ke-17,
mengoperasikan nilai OR pada register AX dan BX, hasil operasi OR yang
diimplementasikan akan ditampung pada register AX dan selanjutnya akan
dimasukkan ke variabel E. Pada baris ke-19, memasukkan nilai yang ada pada
variabel C (2Ah) ke variabel AX dan sekaligus akan me-replace nilai yang
sebelumnya ada pada register AX. Pada baris selanjutnya, menggantikan nilai yang
ada pada register BX dengan nilai yang ada pada variabel D (3Ch) dan selanjutnya
dioperasikan dengan gerbang logika OR, hasilnya akan ditampung pada register AX.
Hasil yang ada pada register AX akan dimasukkan ke variabel F dengan perintah
“MOV F,AX”. Pada baris ke-23, menggantikan nilai yang ada pada register AX
dengan nilai yang ada pada variabel E (hasil operasi OR pada variabel A dan B
[3Fh]). Baris selanjutnya adalah baris untuk me-replace nilai yang ada pada register
BX dengan nilai yanga da variabel F (hasil pengoperasian OR pada variabel C dan D
[3Eh]). Baris ke-25 merupakan implementasi dari operasi gerbang logika XOR dan
hasilnya akan ditampung pada variabel G yang sebelumnya dimasukkan ke register
AX.

5.2. Program Gerbang Logika 2

Gambar 8 Analisa Program Part 4

Pada analisa program diatas, terdapat 14 baris program yang merupakan isi dari
label Proses. Pada baris ke-15 dan 16 menggantikan nilai pada register AX dan
register BX dengan nilai yang ada pada variabel A (3Fh) dan variabel B (1Ah). Baris
ke-17 merupakan kode program yang mengimplementasikan gerbang logika AND
untuk register AX dan BX dan hasilnya akan ditampung pada register AX.
Selanjutnya, hasil yang telah dimasukkan pada register AX akan dioperasikan dengan
gerbang logika NOT sehingga nilainya akan diinverskan dari nilai yang sebelumnya
dan hasilnya akan dimasukkan kembali ke register AX. Baris program ke-19 adalah
memasukkan nilai yang ada pada register AX ke variabel E. Pada kode program yang
terdapat pada baris ke-20 dan 21 yaitu kode program untuk me-replace nilai yang ada
pada register AX dan register BX dengan variabel C (2Ah) dan variabel D (3Ch).
Baris berikutnya, merupakan baris yang mengoperasikan gerbang logika AND dengan
nilai yang dibandingkan adalah nilai pada register AX dan nilai yang ada pada register
BX dan nilai pengoperasian tersebut akan dimasukkan ke dalam register AX. Baris
ke-23 merupakan operasi untuk men-NOTkan nilai yang ada pada register AX
khususnya untuk register AL dan dimasukkan ke variabel F. Pada baris ke-25 dan 26,
merupakan proses peng-replace-an kembali nilai yang ada pada register AX dan
register BX dengan isi yang ada pada variabel E (hasil pengoperasian NOT(AND
A,B) [E5h]) dan variabel F (hasil pengoperasian NOT(AND C,D) [D7h]). Baris
selanjutnya merupakan kode program yang memasukkan nilai yang ada pada register
AX (hasil operasi XOR E,F) ke variabel G.

6. Kesimpulan
Program gerbang logika 1 dan 2, merupakan program pengimplementasian dari
fungsi gerbang logika AND, OR, XOR dan NOT. Implementasian nilai yang dari fungsi
gerbang logika tersebut selanjutnya akan ditampung pada variabel yang sudah
didefinisikan sebelumnya. Sehingga, program gerbang logika 1 dan 2 ini merupakan
implementasi dari fungsi operasi logika dan penggunaan fungsi variabel dalam
assembler.

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.

Anda mungkin juga menyukai