NIM : J3C116025
PROGRAM DIPLOMA
2017
DAFTAR ISI
BAB I.........................................................................................................................................3
PENDAHULUAN......................................................................................................................3
1.1. LATAR BELAKANG.................................................................................................3
1.2. TUJUAN PRAKTIKUM.............................................................................................3
BAB II........................................................................................................................................5
PEMBAHASAN........................................................................................................................5
2.1. TEORI PENUNJANG.................................................................................................5
2.2. PERTANYAAN..........................................................................................................8
2.3. LISTING PROGRAM.................................................................................................8
2.4. ANALISA PROGRAM.............................................................................................10
BAB III.....................................................................................................................................15
KESIMPULAN....................................................................................................................15
ii
BAB I
PENDAHULUAN
Bahasa rakitan atau lebih umum dikenal sebagai Assembly adalah bahasa pemrograman
tingkat rendah yang digunakan dalam pemrograman komputer, mikroprosesor, pengendali
mikro, dan perangkat lainnya yang dapat diprogram. Bahasa rakitan mengimplementasikan
representasi atas kode mesin dalam bentuk simbol-simbol yang secara relatif lebih dapat
dipahami oleh manusia. Berbeda halnya dengan bahasa-bahasa tingkat tinggi yang berlaku
umum, bahasa rakitan biasanya mendukung secara spesifik untuk suatu ataupun beberapa
jenis arsitektur komputer tertentu. Dengan demikian, portabilitas bahasa rakitan tidak dapat
menandingi bahasa-bahasa lainnya yang merupakan bahasa pemrograman tingkat tinggi.
Namun, bahasa rakitan memungkinkan programmer memanfaatkan secara penuh kemampuan
suatu perangkat keras tertentu yang biasanya tidak dapat ataupun terbatas bila dibuat dengan
menggunakan bahasa pemrograman tingkat tinggi.
Pada bahasa rakitan, programmer umumnya menggunakan sebuah program utilitas
yang disebut sebagai perakit (bahasa Inggris: assembler) yang digunakan untuk
menerjemahkan kode dalam bahasa rakitan tersebut ke dalam kode mesin untuk perangkat
keras tertentu. Sebuah perintah dalam bahasa rakitan biasanya akan diterjemahkan menjadi
sebuah instruksi mnemonic dalam kode mesin, berbeda halnya dengan kompiler pada bahasa
pemrograman tingkat tinggi yang menerjemahkan sebuah perintah menjadi sejumlah instruksi
dalam kode mesin.
Beberapa perangkat lunak bahasa rakitan terkenal biasanya menyediakan tambahan
fitur untuk memfasilitasi proses pengembangan program, mengontrol proses perakitan, dan
alat bantu pengawakutuan (debugging).
3
3. Memahami fungsi dari interrupt dengan masing-masing service yang berbeda,
khususnya pada interrupt 21h dengan service 02h sebagai intruksi untuk mencetak
satu buah karakter pada layar; interrupt 10h dengan service 09h sebagai intruksi yang
berfungsi untuk mencetak karakter dan atribut pada posisi kursor.
4
BAB II
PEMBAHASAN
− 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.
− 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 sebagian memori yang ada di dalam mikroprosesor itu sendiri,
yang dapat diakses dengan kecepatan yang sangat tinggi. Dalam melakukan pekerjaannya
mikroprosesor selalu menggunakan register-register sebagai perantaranya, jadi register dapat
diibaratkan sebagai kaki dan tangannya mikroprosesor.
Register yang digunakan oleh microprocessor dibagi menjadi 5 bagian sesuai dengan
tugasnya, keliama bagian tersebut adalah:
− Segmen Register yang terdiri atas CS (Code Segment), DS (Data Segment), ES (Extra
Segment), dan SS (Stack Segment).
− Pointer dan Index Register yang terdiri dari SP (Stack Pointer), BP (Base Pointer), SI
(Source Index), dan DI (Destination Index).
− General Purpose Register yang terdiri atas AX, BX, CX dan DX yang masing-
masingnya terdiri atas 16 bit. Pada setiap bagian register ini, terdapat 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:
5
Register AX, biasanya digunakan dalam operasi aritmatika terutama dalam operasi
pembagian dan pengurangan.
Register BX, pada umumnya digunakan untuk menunjukkan suatu alamat offset
dari suatu segmen.
Register CX, biasanya digunakan pada operasi looping (perulangan) dimana pada
register ini menunjukkan banyaknya looping yang akan terjadi pada sebuah
program.
Register DX, digunakan secara khusus untuk menampung sisa hasil pembagian 16
bit.
. MODEL SMALL
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.
6
.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.
.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
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.
.PERINTAH MOV
Perintah MOV digunakan untuk mengcopy nilai atau angka menuju suatu
register,variabel atau memory.
Perintah MOV akan mengcopykan nilai pada sumber untuk dimasukan ke Tujuan, nilai
sumber tidaklah berubah. Inilah sebabnya MOV(E) akan kita terjemahkan disini dengan
mengcopy, dan bukannya memindahkan.
PERINTAH INT
INT NoInt
Dengan NoInt adalah nomor interupsi yang ingin dihasilkan. Sebagai contohnya bila kita
ingin menghasilkan interupsi 21h, bisa dituliskan dengan: INT 21h, maka interupsi 21h
akan segera terjadi.
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.
7
2.2. PERTANYAAN
1. Buatlah program mencetak huruf Z-A dengan warna layar putih dan warna karakter
merah!
2. Buatlah program mencetak nama Anda dengan warna apa saja.
1. Menampilkan huruf “Z sampai A” dengan warna tulisan merah dan background putih
PROGRAM :
OUTPUT :
8
2. MEMBUAT PROGRAM UNTUK MENCETAK NAMA SENDIRI DAN DIBERI
WARNA SESUAI SELERA
PROGRAM :
OUTPUT :
9
2.4. ANALISA PROGRAM
1.
.MODEL SMALL
karena data dan code yang digunakan oleh program kurang dari ukuran 1 segment
atau 64 KB.
.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.
.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 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.
Memulai proses :
MOV AH,09h
;Nilai servis untuk mencetak karakter.
10
MOV BH,00h
;Penomoran Halaman layar.
MOV BL,0FCH
; Warna atau atribut dari karakter.
MOV CX,1Ah
; Banyaknya karakter yang ingin dicetak.
INT 10h
; Laksanakan !!!
MOV AH,02
;Merupakan nilai servis untuk mencetak karakter, atau dengan kata lain mengisi
register AH dengan data 02.
Mov DL,’z’
;Karakter ASCII yang akan dicetak.
ULANG: merupakan label semacam lokasi dimana alamat yang akan diulang
dituju.
INT 21H
11
Merupakan perintah untuk mencetak karakter pada register DL.
DEC DL
Merupakan perintah untuk melakukan increment, dimana nilai pada register DL
akan naik satu per satu. Misalnya huruf Z, setelah itu naik satu yaitu huruf Y,
kemudian X, dan seterusnya.
END Proses
; kode program telah selesai.
2.
.MODEL SMALL
karena data dan code yang digunakan oleh program kurang dari ukuran 1 segment
atau 64 KB.
.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.
.ORG 100h
Pada program COM perintah ini akan selalu digunakan. Perintah ini digunakan
untuk memberitahukan assembler supaya program pada saat dijalankan(diload ke
12
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.
;melompat ke Proses
MOV AH,09h
;Nilai servis untuk mencetak karakter.
MOV CX,11h
; Banyaknya karakter yang ingin dicetak.
MOV BH,00h
; Nomor Halaman layar.
13
MOV BL,10011111
; Warna atau atribut dari karakter.
INT 10h
; Laksanakan !!!
INT 21H
;Merupakan perintah untuk mencetak karakter pada register DL.
INT 20h
; Selesai ! kembali ke DOS.
END Proses
; kode program telah selesai.
14
BAB III
KESIMPULAN
Dalam pembuatan program kali ini kita dapat mengetahui lebih lanjut macam-macam
interrupt dan registernya. Kita dapat mengetahui apa saja yang dapat digunakan untuk
membuat suatu abjad berurut dengan menggunakan proses perulangan dan mencetak nama
sendiri dengan memvariasi warna dari nama itu.Kita juga dapat mengetahui, memahami, dan
mempraktikkan bahasa assembly agar menghasilkan tulisan berulang-ulang dengan karakter
yang sama maupun perulangan bertingkat. Dapat membuat program untuk menampilkan
huruf menggunakan fungsi perulangan (looping). Selain itu dapat mencetak huruf ”Z”
sampai huruf ”A”, dan rangkaian kata nama diri sendiri, misal: ”AYU PUTRI SAKINAH”.
Telah mengenal dan memahami fungsi dari interrupt dengan masing-masing service yang
berbeda, khususnya pada interrupt 21h dengan service 02h sebagai intruksi untuk mencetak
satu buah karakter pada layar; interrupt 10h dengan service 09h sebagai intruksi yang
berfungsi untuk mencetak karakter dan atribut pada posisi kursor.Dan juga mengenal dan
memahami perbedaan-perbedaan register masukan dan keluaran untuk setiap interrupt dan
service yang dipakai.
15
DAFTAR PUSTAKA
http://deniariss.blogspot.co.id/2013/03/program-dalam-bahasa.html
https://heymiqdude.blogspot.co.id/2016/07/tutorial-assembly-4-membuat-program.html
https://ardiyanto88.wordpress.com/2013/10/25/perintah-dasar-bahasa-assembly-
menggunakan-emulator-8086/
16