Anda di halaman 1dari 9

LAPORAN PRAKTIKUM

ORGANISASI KOMPUTER
MEMBUAT PROGRAM IDENTITAS KTP
DALAM BAHASA ASSEMBLY

Kelas : Teknik Komputer B


Kelompok : Praktikum 1
Nama : Farhan Setyadi
NIM : J3D118124

PROGRAM STUDI TEKNIK KOMPUTER


SEKOLAH VOKASI
INSTITUT PERTANIAN BOGOR
BOGOR
2019
|LaporanPraktikumOrganisasiKomputer&Bahasa
Assembly
A. TEORI PENUNJANG
1. Interupsi
Interupsi adalah suatu permintaan khusus kepada mikroposesor untuk
melakukan sesuatu. Bila terjadi interupsi, maka komputer akan menghentikan dahulu
apa yang sedang dikerjakannya dan melakukan apa yang diminta oleh yang
menginterupsi.
Interupt dibagi ke dalam 2 macam yaitu:
- Interupt 00h - 1Fh (0 - 31) adalah interrupt BIOS dan standar di semua
komputer baik yang menggunakan sistem operasi DOS atau bukan. Lokasi Interupt
Vector Table-nya ada di alamat absolut 0000h-007Fh.
- Interupt 20h - FFh (32 - 255) adalah interrupt DOS. Interrupt ini hanya ada
pada komputer yang menggunakan sistem operasi DOS dan Interupt Handler-nya di
load ke memori oleh DOS pada saat DOS digunakan

2. Register
Register merupakan sebagian memori dari mikroprosesor 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 mikroprosesor dibagi menjadi 5 bagian dengan tugasnya
yang berbeda-beda pula, yaitu :

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

3. Tanda Directive
a. 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.

b. CODE
Tanda directive yang digunakan untuk memberikan pemberitahuan
mengenai code segmentnya. Code segment ini digunakan untuk menyimpan
program yang akan dijalankan.

c. .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).
d. .JMP
Perintah JMP digunakan untuk melompat menuju tempat yang
ditunjukkan oleh perintah JUMP.
Syntax:
JUMP Tujuan
e. INT 20h
Perintah ini digunakan untuk megakhiri program dan menyerahkannya
kembali ke DOS.

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

B. TUJUAN PERCOBAAN
1) Mengetahui dan memahami syntax yang ada dalam program cetak huruf A sampai
Z ataupun sebaliknya dan juga program cetak KTP.
2) Memahami mengenai interrupt yang digunakan dengan service dan pemakaian
interrupt gabungan untuk menampilkan perintah yang sesuai dengan keinginan.
3) Mengenal dan memahami perbedaan-perbedaan register masukan dan keluaran
untuk setiap interrupt dan service yang dipakai.

C. LISTING PROGRAM
1. A – Z

Gambar 1 Syntax untuk Mencetak Huruf A-Z


2. Z – A

Gambar 2 Syntax untuk Mencetak Huruf Z-A

3. Identitas (KTP)

Gambar 3 Syntax untuk Mencetak KTP

Gambar 4 Syntax untuk Mencetak KTP


Gambar 6 Syntax untuk Mencetak KTP

Gambar 7 Syntax untuk Mencetak KTP

D. ANALISA PROGRAM
1. A – Z
- Mov ah,02h = Ketentuan untuk memcetak huruf atau karakter.
- Mov dl,’A’ = Mencetak huruf atau karakter A.
- Mov cx,26 = Mencetak berapa jumlah karakter yang di
inginkan.
- pengulangan = Melooping semua yang ada pada ulang.
- Int 21h = Interrupt untuk mencetak huruf.
- Mov dl,1 = Menambah 1 pada register dl yang nanti akan
mencetak maju.
- Loop pengulangan = Melooping semua yang ada pada lagi.
- Int 20h = Interrupt untuk kembali ke DOS.
Gambar 8 Mencetak Huruf A-Z

2. Z – A
- Mov ah,02h = Ketentuan untuk memcetak huruf atau karakter.
- Mov dl,’Z’ = Mencetak huruf atau karakter Z.
- Mov cx,26 = Mencetak berapa jumlah karakter yang di
inginkan.
- pengulangan = Melooping semua yang ada pada ulang.
- Int 21h = Interrupt untuk mencetak huruf.
- Sub dl,1 = Mengurangi 1 pada register dl yang nanti akan
mencetak mundur.
- Loop pengulangan = Melooping semua yang ada pada lagi.
- Int 20h = Interrupt untuk kembali ke DOS.

Gambar 9 Mencetak Huruf Z-A

3. Identitas (KTP)
- Mov ah,02h = Ketentuan untuk memcetak huruf atau karakter.
- Mov dl,’ ’ = Mencetak huruf atau karakter apa saja.
- Int 21h = Interrupt untuk mencetak huruf.
- Mov dl,0Dh = Membuat jarak atau enter antar baris.
- Mov dl,0Ah = Membuat jarak atau enter antar baris.
- Int 20h = Interrupt untuk kembali ke DOS.
Gambar 10 Mencetak KTP

E. KESIMPULAN
Dalam membuat program cetak karakter ini, digunakan interrupt 21h dengan
service 02h yang berfungsi untuk mencetak kalimat. Register 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.

F. DAFTAR PUSTAKA
S’to. 2001. Pemrograman Dengan Bahasa Assembly [Online] Tersedia di
http://dinus.ac.id/repository/docs/ajar/assembly.pdf. Diakses pada 27 Februari 2019.

Anda mungkin juga menyukai