Anda di halaman 1dari 15

LAPORAN PRAKTIKUM PERTEMUAN 5

“MEMULAI DENGAN ASSEMBLY”


MATA KULIAH ARSITEKTUR DAN ORGANISASI KOMPUTER

NAMA DAN NIM : Tia Zahroni


KELAS : Manajemen Informatika
KELOMPOK : Praktikum 2

PROGRAM STUDI MANAJEMEN INFORMATIKA


SEKOLAH VOKASI
INSTITUT PERTANIAN BOGOR
BOGOR
2020
DAFTAR ISI

DAFTAR ISI.......................................................................................................................................2
DAFTAR GAMBAR...............................................................................................................................3
BAB I...................................................................................................................................................4
PENDAHULUAN..................................................................................................................................4
1.1 Latar Belakang..........................................................................................................................4
1.2 Tujuan......................................................................................................................................4
1.3 Manfaat Praktikum.............................................................................................................4
BAB II..................................................................................................................................................5
LANDASAN TEORI...............................................................................................................................5
2.1 Bahasa Assembly......................................................................................................................5
2.2 Emu8086..................................................................................................................................5
2.3 Membuat Program .COM.........................................................................................................6
2.4 MODEL SMALL..........................................................................................................................7
2.5 .CODE.......................................................................................................................................7
2.6 ORG 100h................................................................................................................................7
2.7 JMP...........................................................................................................................................8
2.8 INT 20h....................................................................................................................................8
BAB III.................................................................................................................................................9
PEMBAHASAN....................................................................................................................................9
3.1 Program Bilangan Fibonanci.....................................................................................................9
BAB IV...............................................................................................................................................15
KESIMPULAN....................................................................................................................................15
4.1  Kesimpulan............................................................................................................................15
DAFTAR PUSTAKA.............................................................................................................................15

2
DAFTAR GAMBAR

1 Model Program COM.....................................................................................................................6


2 Save as dengan format .Asm...........................................................................................................9
3 Teks editor....................................................................................................................................10
4 Line Code Fibonanci.....................................................................................................................11
5 Tampilan emulator.......................................................................................................................12
6 Single Step 1.................................................................................................................................13
7 Single Step 2.................................................................................................................................13
8 Single Step 3.................................................................................................................................14

3
BAB I

PENDAHULUAN

1.1 Latar Belakang

Bahasa assembly merupakan bahasa tingkat bawah, dimana merupakan bahasa mesin,
sangat banyak keuntungan yang kita dapatkan dari belajar bahasa ini, diantaranya kita bisa
belajar untuk mengakses hardware secara langsung,disamping ukuran file hasil kompilasi
juga kecil.
Pada bahasa assembly ini sudah tidak mengenal hanya 0 dan 1 lagi, namun ada
beberapa symbol yang digunakan antara lain :MOV, ADD ( untuk penjumlahan ),SUB
( untuk pengurangan ),MUL ( untuk perkalian),dan lain-lain.Pada bahasa assembly
mempunyai program untuk debugging yaitu untuk mencari kesalahan pada sebuah program
yang dibuat. Pada bahasa mesin tidak mempunyai debugger.
Kelebihan Bahasa Assembly: Ketika di-compile lebih kecil ukuran, Lebih
efisien/hemat memori,Lebih cepat dieksekusi.Kesulitan Bahasa Assembly: Dalam
melakukan suatu pekerjaan, baris program relatif lebih panjang dibanding bahasa tingkat
tinggi, Relatif lebih sulit untuk dipahami terutama jika jumlah baris sudah terlalu banyak,
Lebih sulit dalam melakukan pekerjaan rumit, misalnya operasi matematis.

1.2 Tujuan

 Mahasiswa dapat memahami cara membuat program dengan assembly


 Mahasiswa dapat memulai membuat program assembly menggunakan emulator
8086

1.3 Manfaat Praktikum

 Dapat menambah wawasan mengenai pemrograman dengan bahasa assembly.


 Dapat mengenal sintaks-sintak bahasa Assembly.
 Dapat mempelajari dasar-dasar bahasa Assembly.

4
BAB II

LANDASAN TEORI

2.1 Bahasa Assembly

Instruksi mesin dinyatakan dengan pola 0 dan l. Pola semacam itu sangat sulit untuk
dijelaskan pada saat membahas atau menyiapkan program. Oleh karena itu, kita
menggunakan nama simbolik untuk menyatakan pola tersebut. Sejauh ini kita telah
menggunakan kata-kata biasa seperti Move, Add, Increment, dan Branch, untuk instruksi
operasi yang menyatakan pola kode biner yang sesuai. Pada saat menulis program untuk
komputer tertentu, kata-kata tersebut biasanya diganti dengan akronim yang disebut
mnemonic, seperti MOV, ADD, INC, dan BR Serupa dengan kita menggunakan notasi R3
untuk mengacu pada register 3, dan LOC untuk mengacu pada lokasi memori. Set lengkap
nama simbolik semacam dan aturan penggunaannya membentuk bahasa pemrograman,
yang biasanya disebut sebagai bahasa assembly. Set aturan untuk menggunakan mnemonic
dalam spesifikasi instruksi dan program lengkap disebut syntax bahasa.

Program yang ditulis dalam bahasa assembly dapat secara otomatis ditranslasikan ke
rangkaian instruksi mesin oleh suatu program yang disebut assembler. Program assembler
adalah salah satu kumpulan program yang merupakan bagian dari software sistem.
Assembler, seperti halnya program yang lain, disimpan sebagai rangkaian instruksi mesin
dalam memori komputer. Program user biasanya dimasukkan ke dalam komputer melalui
keyboard dan disimpan dalam memori atau disk magnetik. Pada titik ini, program user
hanyalah kumpulan baris karakter alfanumerik. Pada saat program assembler dieksekusi,
program tersebut membaca program user, menganalisanya, dan kemudian menghasilkan
program bahasa mesin yang diinginkan. Bahasa mesin tersebut berisi pola 0 dan 1 yang
menetapkan instruksi yang akan dieksekusi oleh komputer tersebut. Program user dalam
format teks alfanumerik aslinya disebut source program, dan program bahasa mesin yang
diassemble disebut object program.

2.2 Emu8086

Emulator 8086 atau yang dikenal emu8086 adalah salah satu software untuk menulis
bahasa assembly. Bahasa assembly sendiri merupakan bahasa rakitan atau dikenal juga
dengan bahasamesin yang mana berbeda dengan bahasa pemrograman yang lain. Bahasa
assembly digunakan untuk menulis program dan memasukkannya kedalam suatu IC.

5
Segala sesuatu untuk mempelajari Bahasa Assembly dapat Anda peroleh menggunakan
perangkat lunak Emu8086 (Emu8086, Inc), yang digunakan dalam buku ini adalah versi
2.58. Program Emu8086 ini mencakup fasilitas editor Bahasa Assembly, Assembler dan
Disassembler (pengertian ini akan diterangkan kemudian), perangkat lunak emulator (PC
Semu) yang dilengkapi dengan debugger.
Salah satu kelebihan software ini adalah editor Bahasa Assembly, Assembler dan
Disassembler, perangkat lunak emulator (PC Semu) yang dilengkapi dengan debugger.
Software ini sudah terintegrasi simulasi yang dapat dijalankan ketika kamu mengkompilasi
program. Dan perlu diketahui bahwa tidak semua sintaks dalam assembly didukung dalam
software ini, jadi anda harus membaca pada tab help, untuk mengetahui sintaks apa saja
yang tidak dapat digunakan.

2.3 Membuat Program .COM

Untuk membuat program .COM yang hanya menggunakan 1 segment, bisa kita buat
dengan model program seperti contoh dibawah ini. Bentuk yang digunakan disini adalah
bentuk program yang dianjurkan(Ideal). Ada berbagai keunggulan bentuk program ideal ini
seperti, prosesnya lebih cepat dan lebih mudah digunakan oleh berbagai bahasa tingkat
tinggi yang terkenal(Turbo Pascal dan C).

Gambar 1 Model Program COM

Supaya lebih jelas bentuk dari program ideal, marilah kita telusuri lebih lanjut dari
bentuk program ini.

6
2.4 MODEL SMALL

Tanda directive ini digunakan untuk memberitahukan kepada assembler bentuk


memory yang digunakan oleh program kita. Supaya lebih jelas model-model yang bisa
digunakan adalah :

 TINY
Jika program anda hanya menggunakan 1 segment seperti program COM. Model
ini disediakan khusus untuk program COM.
 SMALL
Jika data dan code yang digunakan oleh program kurang dari ukuran 1 segment
atau 64 KB.
 MEDIUM
Jika data yang digunakan oleh program kurang dari 64 KB tetapi code yang
digunakan bisa lebih dari 64 KB.
 COMPACT
Jika data yang digunakan bisa lebih besar dari 64 KB tetapi codenya kurang dari
64 KB.
 LARGE
Jika data dan code yang dipakai oleh program bisa lebih dari 64 KB.
 HUGE
Jika data, code maupun array yang digunakan bisa lebih dari 64 KB.

Program COM menggunakan model SMALL disebabkan karena banyak dari compiler
bahasa tingkat tinggi yang tidak bisa berkomunikasi dengan model TINY, sehingga kita
menggunakan model SMALL sebagai pemecahannya.

2.5 .CODE

.CODE Tanda directive ini digunakan untuk memberitahukan kepada assembler bahwa
kita akan mulai menggunakan Code Segment-nya disini. Code segment ini digunakan untuk
menyimpan program yang nantinya akan dijalankan.

2.6 ORG 100h

Pada program COM perintah ini akan selalu digunakan. Perintah ini digunakan untuk
memberitahukan assembler supaya program pada saat dijalankan(diload ke memory)
ditaruh mulai pada offset ke 100h(256) byte. Dapat dikatakan juga bahwa kita menyediakan

7
100h byte kosong pada saat program dijalankan. 100h byte kosong ini nantinya akan
ditempati oleh PSP(Program Segment Prefix) dari program tersebut. PSP ini digunakan
oleh DOS untuk mengontrol jalannya program tersebut.

2.7 JMP

Perintah JMP(JUMP) ini digunakan untuk melompat menuju tempat yang ditunjukkan
oleh perintah JUMP. Adapun syntaxnya adalah:

Tujuan JUMP: Dimana tujuannya dapat berupa label seperti yang digunakan pada bagan
diatas. Mengenai perintah JUMP ini akan kita bahas lebih lanjut nantinya.

Perintah JUMP yang digunakan pada bagan diatas dimaksudkan agar melewati tempat
data program, karena jika tidak ada perintah JUMP ini maka data program akan ikut
dieksekusi sehingga kemungkinan besar akan menyebabkan program anda menjadi Hang.

2.8 INT 20h

Perintah INT adalah suatu perintah untuk menghasilkan suatu interupsi dengan syntax:

INT NoInt

Interupsi 20h berfungsi untuk mengakhiri program dan menyerahkan kendali sepenuhnya
kepada Dos. Pada program COM cara ini bukanlah satu-satunya tetapi cara inilah yang
paling efektif untuk digunakan. Bila anda lupa untuk mengakhiri sebuah program maka
program anda tidak akan tahu kapan harus selesai, hal ini akan menyebabkan komputer
menjadi hang.

8
BAB III

PEMBAHASAN

3.1 Program Bilangan Fibonanci

 Langkah Pertama kita harus memastikan file yang kita buat telah menggunakan
format .Asm dengan cara klik Save lalu pastikan dibagian Save a type adalah
Assembly (*.asm) lalu klik save.

Gambar 2 Save as dengan format .Asm

 Setelah itu kita dapat langsung mengetikan code-code pada bagian teks editor ini

9
Gambar 3 Teks editor

 Berikut adalah code dari program bilangan Fibonanci

10
Gambar 4 Line Code Fibonanci
Pada line code bilangan fibonaci yang telah saya buat, saya menggunakan
.Model SMALL karena data yang dibutuhkan oleh program yang saya buat kurang
dari 64 KB tetapi code yang bias digunakan dapat lebih dari 64 KB. Selain itu saya
emilih menggunakan SMALL karena banyak dari compiler bahasa tingkat tinggi
yang tidak bisa berkomunikasi dengan model TINY, sehingga kita menggunakan
model SMALL sebagai pemecahannya.

.CODE Tanda directive ini digunakan untuk memberitahukan kepada


assembler bahwa kita akan mulai menggunakan Code Segment-nya disini. Code
segment ini digunakan untuk menyimpan program yang nantinya akan dijalankan.

11
ORG 100h perintah ini digunakan untuk memberitahukan assembler supaya
program pada saat dijalankan(diload ke memory) ditaruh mulai pada offset ke
100h(256) byte. Dapat dikatakan juga bahwa kita menyediakan 100h byte kosong
pada saat program dijalankan. 100h byte kosong ini nantinya akan ditempati oleh
PSP(Program Segment Prefix) dari program tersebut. PSP ini digunakan oleh DOS
untuk mengontrol jalannya program tersebut.

mov ax,1 untuk mengimputkan nilai 1 ke dalam register ax. mov bx,1 untuk
mengimputkan nilai 1 ke dalam register ax. fib: add ax,bx untuk memasukan nilai bx
ke dalam ax. add bx,ax untuk memasukan nilai ax yang sudah ditambah bx di awal,
kedalam bx yang baru

jmp fib yaitu jump atau lompat ke tujuan yang awal yaitu fib, maka program
akan berulang seperti loop. Kita juga bisa mengganti jmp fib menjadi loop. End
menandakan kode telah berakhir di baris ke end.

 Ketika tombol emulate di klik, maka akan muncul tampilan seperti ini

Gambar 5 Tampilan emulator

12
 Lalu kita klik Single Step. Pada Single Step yang pertama maka nilai ax=1 dan
bx=1 ditambahkan, maka hasilnya di register AL menjadi=2

Gambar 6 Single Step 1

 Pada saat single step selanjutnya maka akan terisi nilai= 3 karena memasukan nilai
ax =1

Gambar 7 Single Step 2

13
 Pada Single step yang ketiga ini maka nilai terakhir yaitu 5, nilai bx terakhir yaitu 2
dan akan dimasukan ke dalam ax=1 maka nilai ax saat ini menjadi 3, dan dimasukan
ke bx dan nilai bx saat ini menjadi 8.

Gambar 8 Single Step 3


Jika kita klik Run program ini akan terus berjalan terus. Hal ini dikarenakan adanya
perintah jmp fib yang mana jump atau lompat ke tujuan yang awal yaitu fib, maka
program akan berulang seperti loop. Program ini akan berhenti jika sudah
memenuhi kapasitas registernya.

14
BAB IV

KESIMPULAN

4.1  Kesimpulan

Setelah kita mempelajari beberapa pembahasan di atas, maka dapat kita simpulkan
sebagai berikut :
 Bahasa Assembly adalah bahasa tingkat rendah yang menggunakan nemonic code
dalam penulisan kode programnya.
 MOV digunakan untuk mengcopykan nilai ke dalam register.
 ADD digunakan untuk menambahkan nilai ke dalam suatu register dengan
operandnya sedangkan fungsi SUB kebalikan dari ADD.
 Kita harus memasukkan nilai ke dalam register disini kita memasukan nilai=1 ke
dalam register AX dan 1 keladam register BX, pada saat fibonaci maka nilai bx
dimasukan ke dalam ax dan nilai ax yang sudah ditambhankan dimasukan ke dalam
bx, setelah itu melakukan jump ke fib maka kode akan terus berulang. Dan hasil dari
nilai nya adalah 1,1,2,3,5,8……

DAFTAR PUSTAKA

Sulistiyasni M. Akbar Setiawan. 2020. PEMROGRAMAN BAHASA ASSEMBLY


KONSEP DASAR DAN IMPLEMENTASI . Sleman, Yogyakarta. Penerbit Deepublish.

15

Anda mungkin juga menyukai