Anda di halaman 1dari 18

LAPORAN PRAKTIKUM

ORGANISASI KOMPUTER & BAHASA ASSEMBLY


PROGRAM CETAK KTP

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
DAFTAR TABEL ................................................................................................................ iii
LAPORAN PRAKTIKUM ................................................................................................... 1
1. Tujuan Percobaan ....................................................................................................... 1
2. Teori Penunjang ......................................................................................................... 1
2.1. Interrupt dan Register .......................................................................................... 1
2.3. Mencetak Kalimat (Word Process) ...................................................................... 4
3. Tugas Pendahuluan..................................................................................................... 7
4. Listing Program .......................................................................................................... 8
5. Analisis Program ........................................................................................................ 9
6. Kesimpulan .............................................................................................................. 14
7. Daftar Pustaka .......................................................................................................... 14

i|Laporan Praktikum Organisasi Komputer & Bahasa


Assembly
DAFTAR GAMBAR

Gambar 1 Output Program Cetak KTP ................................................................................. 7


Gambar 2 Kode Program Cetak KTP..................................................................................... 9
Gambar 3 Analisis Program Part 1 ........................................................................................ 9
Gambar 4 Analisis Program Part 2 ...................................................................................... 10
Gambar 5 Analisis Program Part 3 ...................................................................................... 11
Gambar 6 Analisis Program part 4....................................................................................... 13

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
DAFTAR TABEL

Tabel 1 Karakter kontrol yang sering digunakan.................................................................... 5


Tabel 2 Karakter kontrol pada ASCII .................................................................................... 6

iii | 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 ada dalam program cetak KTP.
2) Memahami mengenai interrupt yang digunakan dengan service yang sesuai untuk
program mencetak KTP.
3) Memahami pemakaian interrupt gabungan untuk menampilkan perintah yang
sesuai dengan keinginan.
4) Mengenal dan memahami perbedaan-perbedaan register masukan dan keluaran
untuk setiap interrupt dan service yang dipakai.

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

1|Laporan Praktikum Organisasi Komputer & Bahasa


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

2|Laporan Praktikum Organisasi Komputer & Bahasa


Assembly
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).

3|Laporan Praktikum Organisasi Komputer & Bahasa


Assembly
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. Mencetak Kalimat (Word Process)


Dalam pemerograman assembler, interupsi merupakan hal yang penting untuk
menghasilkan sesuatu yang diinginan oleh user sehingga dikenali oleh komputer.
Interupsi ini tidak berjalan sendiri, interupsi selalu berjalan berbarengan dengan service
yang menyediakan fungsi-fungsi yang berbeda untuk setiap interupsi yang sama tetapi
dengan service yang berbeda-beda.
Dalam mencetak kalimat dengan fungsi DOS, interupsi yang digunakan adalah
interrupt 21h dengan service 09h. Pemakaian interrupt 21h dengan service 09h ini dapat
digunakan untuk mencetak kalimat dengan aturan:
INPUT
AH = 9
DS:DX = Alamat String ($) yang diinginkan

Catatan bahwa karakter $ dijadikan tanda akhir dalam tulisan. Khusus untuk
mencetak kalimat ini, $ merupakan akhir pada kalimat yang sering diganakan untuk
mengakhiri pendefinisian dari sebuah string, sehingga kalimat tersebut akan dicetak
sampai tanda $. Karakter $ dijadikan sebagai tanda akhir pada string sehingga string
yang akan dicetak adalah string yang berada disebelum tanda $ dan selainnya yang
berada disesudah tanda $ tidak akan dicetak. Selain tanda $ yang digunakan untuk
mengakhiri kalimat, ada juga tanda 10 dan tanda 13 yang masing-masingnya digunakan
untuk pindah baris dan menuju kolom 0 kembali.

4|Laporan Praktikum Organisasi Komputer & Bahasa


Assembly
Karakter Kontrol merupakan karakter yang digunakan sebagai kontrol dari
program khusus mencetak kalimat. Karakter kontrol ini digunakan untuk keperluan
komunikasi komputer dengan periferalnya. Karakter kontrol yang sering digunakan
adalah:
CODE NAMA FUNGSI
07 Bel Memberikan suara BEEP
08 Backspace (BS) Memindahkan kursor 1 kolom ke belakang
09 Horizontal Tab Memindahkan kursor 8 kolom ke kanan
10 Line Feed (LF) Memindahkan kurosr 1 baris ke bawah
13 Carriage Return (CR) Memindahkan kursor menuju awal baris
Tabel 1 Karakter kontrol yang sering digunakan

Selain karakter kontrol diatas, karakter kontrol yang tersedia pada ASCII secara
lengkap adalah sebagai berikut:
CODE NAMA
00 Nul
01 Start of heading
02 Start of text
03 End of text
04 End of transmission
05 Enquiry
06 Acknowledge
07 Bel
08 Backspace
09 Horizontal tabulation
10 Line feed
11 Vertical tabulation
12 Form feed
13 Carriage return
14 Shift out
15 Shift in
16 Data link escape
17 Device control

5|Laporan Praktikum Organisasi Komputer & Bahasa


Assembly
18 Negative acknowledge
19 Synchronous table
20 End of transmission block
21 Cancel
22 End of medium
23 Substitute
24 Escape
25 File separator
26 Group separator
27 Record separator
28 Unit separator
29 Space
30 Delete
Tabel 2 Karakter kontrol pada ASCII

Mencetak kalimat menggunakan atribut menggunakan interupsi 10h. adapun yang


harus dipersiapkan adalah sebagai berikut:
REGISTER
AX = 1300h
BL = Diisi dengan atribut yang ingin ditampilkan
BH = Diisi dengan halaman tampilan
DL = Diisi dengan posisi X tempat kalimat tersebut akan dicetak
DH = Diisi dengan posisi Y
CX = Banyak karakter dalam kalimat
ES:BP = digunakan untuk mencatat alamat yang ingin dicetak.

Dalam pengaturan atributnya, atribut atau warna menggunakan 1 byte memori


yang menandakan warna tulisan dan warna dasar dari karakter yang akan ditampilkan ke
layar atau yang akan dicetak. Byte atribut ini digunakan dengan masing-masing butnya,
dimana setiap bit mencatat warna masing-masing:
- 4 bit pertama merupakan warna dasar dan 4 bit berikutnya merupakan warna
tulisan.

6|Laporan Praktikum Organisasi Komputer & Bahasa


Assembly
Warna dasar Warna tulisan
------------------ --------------------
7 6 5 4 3 2 1 0
Keterangan:
1) Bit ke-7 merupakan BL (Blink atau berkedip)
2) Bit ke-6 merupakan R yang kepanjangannya adalah red
(merah)
3) Bit ke-5 merupakan G yang berkepanjangan green (hijau)
4) Bit ke-4 merupakan B yang berkepanjangan blue (biru)
5) Bit ke-3 merupakan I (intensitas warna)
6) Bit ke-2 adalah R
7) Bit ke-1 adalah G
8) Bit ke-0 adalah B

3. Tugas Pendahuluan
Output:

Gambar 1 Output Program Cetak KTP

Program cetak KTP merupakan program yang berbasiskan .asm (Assembler)


dengan menggunakan software emulator 8086. Dalam program cetak KTP ini digunakan
3 interrupt dan 1 service. Interrupt yang digunakan adalah interrupt 21h dengan service
7|Laporan Praktikum Organisasi Komputer & Bahasa
Assembly
09h yang berfungsi untuk menampilkan string atau kalimat ke layar. Selain interrupt 21h
ini, interrupt yang digunakan lainnya adalah interrupt 10h dan 20h. Interrupt 10h
berfungsi untuk mewarnai string atau masing-masing dari karakter yang ada pada string
menggunakan register BX yang khusus digunakan dalam mewarnai background karakter
dan warna pada karakter. Interrupt 20h digunakan untuk mengakhiri program dan
menyerahkan kendali sepenuhnya kepada DOS.

4. Listing Program

8|Laporan Praktikum Organisasi Komputer & Bahasa


Assembly
Gambar 2 Kode Program Cetak KTP

5. Analisis Program

Gambar 3 Analisis Program Part 1

Pada program mencetak KTP ini, program menggunakan .MODEL SMALL


yang merupakan tanda directive untuk memberikan pemberitahuan kepada assembler
bentuk memori yang digunakan oleh program mencetak KTP tersebut. Tanda directive
yang lain adalan .CODE, .CODE pada program ini berfungsi untuk memberitahukan
kepada assembler bahwa program akan menggunakan code segment untuk menyimpan
program tersebut untuk dijalankan. Selain tanda directive .MODEL dan .CODE, program
menyediakan ORG 100h sebagai perintah yang ditunjukkan kepada assembler bahwa
program akan ditaruh mulai pada offset 100h (256) byte atau dapat diartikan juga bahwa
memori akan mengalokasikan 100h byte kosong untuk ditempati PSP. PSP ini digunakan
oleh DOS untuk mengontrol jalannya program.

9|Laporan Praktikum Organisasi Komputer & Bahasa


Assembly
Gambar 4 Analisis Program Part 2

Pada program, terdapat perintah JMP atau JUMP yang berfungsi untuk melompat
menuju tempat yang ditunjukkan oleh perintah JUMP. KTP: JMP Proses berarti KTP
melompat ke Proses dan melakukan eksekusi pada Proses. Selain perintah JMP, pada
baris program cetak KTP diatas ada yang disebut dengan DB. DB merupakan
kependekan dari define byte yang berarti mengalokasikan nilai string pada variabel yang
diinginkan. Define byte ini ditulis pada baris program, dengan:
Nama_Variabel DB Isi String, $
Pada baris-baris program diatas, define byte dialokasikan kepada variabel Nama,
TTL, Jenkel, Alamat0, Alamat1, Alamat2, Alamat3, Agama, Status, Pekerjaan,
Kewarganegaraan, dan pada variabel Berlaku yang masing-masingnya memiliki isi
string yang berbeda-beda sesuai dengan yang diinginkan. Pada baris program ke 06
sampai baris ke 17 merupakan define byte itu sendiri. Selain define byte yang berarti
mengalokasikan string pada variabel yang diinginkan, pada define byte ini kita dapat
menambahkan karakter kontrol yang memberikan manipulasi pada kursor string yang
ingin ditampilkan. Karakter kontrol yang digunakan adalah karakter kontrol 10 dan 13
yang berarti karakter kontrol 10 untuk memindahkan kuror 1 baris ke bawah dan karakter
kontrol 13 untuk memindahkan kursor ke awal baris kembali.

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 & B a h a s a
Assembly
Gambar 5 Analisis Program Part 3

Program cetak KTP ini menggunakan interrupt 21h dengan service 09h untuk
mencetak kalimat. Selain interrupt 21h dengan service 09h, program cetak KTP ini
menggunakan interrupt 10h yang digunakan untuk mencetak kalimat dengan atributnya.
Register yang digunakan adalah:

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 & B a h a s a
Assembly
AH = service 09h
CX = banyaknya karakter dalam kalimat
BX = atributnya dengan:
BH = diisi oleh warna background untuk string.
BL = diisi oleh warna string.
DX = posisi string yang akan dicetak

Pada program diatas, baris ke 19 sampai 90 merupakan baris-baris program yang


memanggil variabel-variabel string yang diinginkanuntuk dicetak dengan atributnya
masing-masing:
1) Pada baris 20 sampai 25 merupakan baris program untuk mencetak string
pada variabel nama: dengan pilihan backgroundnya adalah merah muda dan
warna karakternya adalah kuning.
2) Pada baris 27 sampai 30 merupakan baris program untuk mencetak string
pada nama variabel TTL: dengan pilihan background warna merah muda dan
warna karakternya adalah cokelat; karakter yangakan ditampilkan dan yang
akan mengunakan atribut sebanyak 50 karakter.
3) Baris 32 sampai 36 merupakan baris program yang berfungsi untuk mencetak
string pada variabel Jenkel: dengan banyak karakter sebanyak 34 karakter
dan dengan atribut warna backgroudnya adalah merah muda; warna
karakternya adalah abu-abu.
4) Baris program ke 38 sampai 42 merupakan baris program yang mencetak
kalimat pada variabel Alamat0: dengan banyak karakter sebanyak 39
karakter, dengan warna atribut pada background adalah warna merah muda
dan warna karakternya adalah warna merah.
5) Baris program ke 44 sampai 48 merupakan baris program yang mencetak
kalimat pada variabel Alamat1 yang berisi RT/RW: dengan karakter yang
akan berartibut adalah 32 karakter dan atribut yang digunakan pada
background adalah warna merah muda; warna karakternya adalah hijau.
6) Pada baris ke 50 sampai 54 adalah baris program yang mencetak kalimat
pada variabel Alamat2 yang berisi Kel/Desa: dengan karakternya sebanyak
36 karakter. Atribut yang digunakan adalah merah muda pada
backgroundnya dan warna putih pada warna karakternya.

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 & B a h a s a
Assembly
7) Baris program 56 sampai 60 adalah baris kode program untuk mencetak
variabel Alamat3: banyak karakter pada variabelnya adalah 35 dan atribut
yang digunakan adalah warna merah muda untuk warna dasarnya; warna
kuning untuk karakternya.
8) Program ke 62 sampai 66 adalah baris program untuk mencetak kalimat pada
variabel Agama: karakternya sebanyak 30 karakter; warna atribut untuk
warna dasarnya adalah merah muda dan warna karakternya adalah biru
muda.
9) Baris program ke 68 sampai 72 adalah kode program untuk mencetak string
pada variabel Status: warna dasar yang digunakan adalah warna merah muda
dengan warna karakternya adalah hijau tua. Banya karakternya adalah 36.
10) Baris program ke 74 sampai 78 merupakan kode-kode program untuk
mencetak kalimat pada variabel Pekerjaan: warna atribut yang digunakan
adalah warna merah muda untuk warna dasar dan warna biru tua terang untuk
warna karakternya. Sedangkan jumlah karakternya adalah 34 karakter.
11) Pada baris program ke 80 sampai 84 adalah kode program untuk mencetak
kalimat pada variabel Kewarganegaraan: jumlah karakternya ada 28 karakter
dengan atributnya adalah merah muda pada warna dasar dan warna merah
merah bata untuk karakternya.
12) Baris program ke 86 sampai 90 merupakan baris program untuk mencetak
kalimat pada variabel Berlaku: dengan jumlah karakternya adalah 39 karakter
dengan warna atributnya adalah warna merah muda untuk warna dasarnya
dan warna karakternya adalah warna hijau.

Gambar 6 Analisis Program part 4

Pada baris program diatas, int 20h digunakan untuk megakhiri program dan
mengembalikan kerja kepada DOS. Pada program ke 93 END KTP adalah untuk
mengakhiri kerja program pada KTP.

13 | 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
6. Kesimpulan
Pada program cetak KTP ini, digunakan interrupt 21h dengan service 09h yang
berfungsi untuk mencetak string dan digunakan interrupt 10h sebagai interrupt yang
digunakan untuk mencetak kalimat dengan atributnya. Registeri yang digunakan adalah
AH, CX, BX, dan DX. Selain interrupt yang digunakan, digunakan juga tanda directive
.MODEL SMALL, .CODE dan .ORG 100h yang masing-masingnya digunakan untuk
mengalokasikan program ke segment dan offset.
Pada program cetak KTP ini juga digunakan perintah-perintah khusus seperti
JMP dan INT 20h yang digunakan untuk meloncati proses ke proses lainnya dan
menghentikan perintah. Program cetak KTP menggunakan DB (Define Byte) untuk
mengalokasikan nilai string pada sebuah variabel yang diinginkan dengan karakter
kontrol 13 dan 10 untuk memindahkan 1 kursor ke bawah dan mengembalikan ke baris
awal.

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.

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

Anda mungkin juga menyukai