Anda di halaman 1dari 14

LAPORAN PRAKTIKUM

ORGANISASI KOMPUTER
OPERASI ARITMATIKA

Kelas
Nama
NIM

: TEK B PRAKTIKUM 1
: ALIF FURQON
: J3D115024

PROGRAM KEAHLIAN TEKNIK KOMPUTER


PROGRAM DIPLOMA
INSTITUT PERTANIAN BOGOR
2016

DAFTAR ISI
DAFTAR ISI ..............................................................................................................................i
DAFTAR GAMBAR .................................................................................................................ii
PENDAHULUAN ..................................................................................................................... 3
1. Tujuan Percobaan .............................................................................................................. 3
2. Teori Penunjang ................................................................................................................. 3
2.1. Interrupt dan Register ................................................................................................. 3
2.2. Tanda Directive ........................................................................................................... 5
2.3. Operasi Aritmatika ...................................................................................................... 6
2.3.1. Operasi Penambahan............................................................................................ 6
2.3.1.1. ADD ...................................................................................................... 6
2.3.1.2. ADC ...................................................................................................... 6
2.3.1.3. INC ........................................................................................................ 6
2.3.2. Operasi Pengurangan ........................................................................................... 7
2.3.2.1. SUB ....................................................................................................... 7
2.3.2.2. SBB ....................................................................................................... 7
2.3.2.3. DEC....................................................................................................... 7
2.3.3. Operasi Perkalian ................................................................................................. 7
2.3.4. Operasi Pembagian .............................................................................................. 7
3. Listing dan Analisa Tugas ................................................................................................. 8
3.1. 2345FDH + 54BCDFH 23456AH ........................................................................... 8
3.2. (23EFH*12EH) + 12H ................................................................................................ 9
3.3. 12EH : 2H.................................................................................................................. 10
3.4. 12AH * 12H : 4H ...................................................................................................... 11
4. Kesimpulan ...................................................................................................................... 12
5. Daftar Pustaka .................................................................................................................. 12

i|LaporanPraktikumOrganisasiKomputer&Bahasa
Assembly

DAFTAR GAMBAR
Gambar 1 Codingan Tugas 1 .............................................................................................. 8
Gambar 2 Hasil Register Tugas 1 ...................................................................................... 9
Gambar 3 Codingan Tugas 2 .............................................................................................. 9
Gambar 4 Hasil Register Tugas 2 ..................................................................................... 10
Gambar 5 Codingan Tugas 3 ............................................................................................ 10
Gambar 6 Hasil Register Tugas 3 ..................................................................................... 10
Gambar 7 Codingan Tugas 4 ............................................................................................ 11
Gambar 8 Hasil Register Tugas 4 ..................................................................................... 11

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

PENDAHULUAN
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 1

handler-nya dip roses ke memori oleh DOS pada saat DOS digunakan. Lokasi
Interrupt Vector Table-nya ada di alamat absolute 07h-3FFh.

|LaporanPraktikumOrganisasiKomputer

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 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 masingmasingnya 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
4|LaporanPraktikumOrganisasiKomputer

(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

5|LaporanPraktikumOrganisasiKomputer

2.2.5. INT 20h


Perintah ini digunakan untuk megakhiri program dan menyerahkannya
kembali ke DOS.

2.3. Operasi Aritmatika


2.3.1. Operasi Penambahan
2.3.1.1. ADD
ADD merupakan operasi penambahan pada Assembler yang
syntaxnya:
ADD Tujuan, Asal
Perintah ADD ini akan menambahkan nilai pada Tujuan dan Asal.
Hasil operasi penambahan ini akan ditaruh di Tujuan dari operasi aritmatika
tersebut. Contoh pengimplementasian:
MOV AX,01h ;AX=01h MOV BX,11h ;BX=11h ADD AX,BX
;AX=AX+BX
2.3.1.2. ADC
Perintah ADC digunakan untuk menjumlahkan nilai yang akan
ditambahkan dengan carry flag. Adapun syntax dari perintah ADC adalah:
ADC Tujuan, Asal
ADC ini hadir untuk memecahkan masalah terhadap register yang
hanya mampu menampung 16 bit, sehingga ada register CX sebagai carry
flag yang menyimpan sisa dari kelebihan hasil pengoperasian aritmatika.
2.3.1.3. INC
Perintah INC digunakan untuk proses penambahan dengan 1. Perintah INC
hanya menggunakan 1 byte memori, sedangkan perintah ADD dan ADC
menggunakan 3 byte memori. Syntax dari perintah INC ini adalah:
INC Tujuan
Pada syntax di atas, tujuan akan otomatis dijumlahkan dengan 1.
Tujuan harus berupa register yang akan ditambahkan dengan 1.

6|LaporanPraktikumOrganisasiKomputer

2.3.2. Operasi Pengurangan


2.3.2.1. SUB
SUB merupakan perintah untuk operasi pengurangan dalam
Assembler. Syntax perintah SUB:
SUB Tujuan, Asal
Perintah SUB akan mengurangi Tujuan dengan Asal dan hasilnya
akan ditaruh di Tujuan, secara matematis:
Tujuan = Tujuan Asal
2.3.2.2. SBB
Perintah SBB digunakan dalam pemecahan masalah operasi
pengurangan yang besar atau lebih dari 16 bit. SBB merupakan kependekan
dari Substract With Carry. Perintah SBB digunakan dengan syntax:
SBB Tujuan, Asal
Pada syntax perintah SBB diatas dapat diartikan bahwa
mengurangi nilai Tujuan dengan Asal, kemudian dikurangi lagi dengan
carry flag. Secara Matematis:
Tujuan = Tujuan Asal CF
2.3.2.3. DEC
Perintah DEC digunakan untuk pengurangan dengan 1. Perintah
DEC ini merupakan kebalikan dari INC. DEC menggunakan 1 byte memori
seperti perintah INC tetapi yang berbeda adalah jika INC merupakan
penambahan dengan 1 dan DEC merupakan pengurangan dengan 1. Syntax
dari perintah DEC:
DEC Tujuan
2.3.3. Operasi Perkalian
Operasi perkalian menggunakan perintah MUL dengan syntax:
MUL Sumber
2.3.4. Operasi Pembagian
Operasi pembagian pada dasarnya sama dengan operasi perkalian. Dalam
operasi pembagian digunakan perintah DIV dengan syntax:
DIV Sumber

7|LaporanPraktikumOrganisasiKomputer

3. Listing dan Analisa Tugas


3.1.

2345FDH + 54BCDFH 23456AH


Disini dapat kita lihat bagaimana caranya mendefinisikan suatu nilai
konstanta (nilai yang tidak dapat diubah) dan variable dengan ALO EQU dan
seterusnya. Dimana printah EQU digunakan untuk mendefinisikan suatu yang
konstan (tetap), data yang telah didefinisikan dengan EQU tidak dapat dirubah
dengan perintah EQU kita mendefinisikan bahwa ALO = 45FDH, AHI = 23H
begitu juga dengan BLO hingga CHI. ALO,BLO,CLO ditandakan untuk LOW.
AHI,BHI,CHI ditandakan untuk HIGH. Sedangkan HSLLO dan HSLHI
didefinisikan untuk tempat menyimpannya. Tanda ? digunakan untuk
menyatakan bahwa tempat yang kita pesan sebanyak 1 word (DW).

Gambar 1 Codingan Tugas 1

dan gambar dibawah ini adalah hasil dari program artimatika gambar diatas
register BX hasil dari penjumlahan dan pengurangan AHI,BHI,CHI maka BX itu
sendiri adalah high dari hasil nya nanti sedangkan lownya berada pada register
AX (ALO,BLO,CLO) maka, hasilnya adalah 54BD72H.

8|LaporanPraktikumOrganisasiKomputer

Gambar 2 Hasil Register Tugas 1

3.2.

(23EFH*12EH) + 12H
Nilai 23EFH dimasukkan ke register AX dan nilai 12EH dimasukkan ke
register BX karena sebelum mengalikan dengan perintah MUL terlebih dahulu
masukan nilainya jadi BX dikalikan dengan AX setelah itu ditambah dengan 12h

Gambar 3 Codingan Tugas 2

Perintah MUL akan disimpan di register DX dan sisanya disimpan pada register
AX dan gambar dibawah ini setelah di run dan didapatlah hasilnya 2A6404H.

9|LaporanPraktikumOrganisasiKomputer

Gambar 4 Analisis Program Part 2

3.3.

12EH : 2H
12EH dimasukan ke register AX 2h dimasukkan ke register BX dan
setelah itu dibagi dengan perintah DIV.

Gambar 5 Codingan Tugas 3

Gambar dibawah ini pada register AL bernilai 97 adalah hasil pembagian dari
program diatas.

Gambar 6 Hasil Register Tugas 3

10 | 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

3.4.

12AH * 12H : 4H
12AH dimasukkan ke register AX 12h dimasukkan ke register BX setelah
itu register BX dikalikan dengan register sebelumnya dengan menggunakan
perintah MUL setelah itu 4H dimasukkan ke register BX dan gunakan perintah
DIV untuk membagi hasil sebelumnya.

Gambar 7 Codingan Tugas 4

Maka dari program assembly diatas tadi dimasukkan ke register AX dan


hasilnya adalah 53DH.

Gambar 7 Hasil Register Tugas 4

11 | 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

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

5. Daftar Pustaka
1) Novianty, Inna. Siskandar, Ridwan. Galih Novita 2015. MODUL PRAKTIKUM
ORGANISASI KOMPUTER. Bogor

12 | 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

Anda mungkin juga menyukai