Anda di halaman 1dari 26

LAPORAN PRAKTIKUM

PENGANTAR ARSITEKTUR DAN ORGANISASI KOMPUTER

“ADDRESSING MODES”

Kelas : INF B/P2

Nama : AYU PUTRI SAKINAH

NIM : J3C116025

PROGRAM KEAHLIAN MANAJEMEN INFORMATIKA

PROGRAM DIPLOMA

INSTITUT PERTANIAN BOGOR

2017
DAFTAR ISI
LEMBAR ASISTENSI

TUGAS LAPORAN

PRAKTIKUM ARSITEKTUR DAN ORGANISASI KOMPUTER

MODIFIKASI STRING MENGGUNAKAN EMU8086

Hari / Tanggal : Sabtu, 14 Oktober 2017

Nama Asistensi/ Paraf :

1. Maulina Gustari, A.Md

2. Restu Aulia Perdana, A.Md

3. F M Hilmi M Syam, A.Md

4. Muhammad Zainul Ikhlas, A.Md

Nama :

Ayu Putri Sakinah J3C116025

Catatan Hasil Praktikum :

2
Revisi dan Tugas Tambahan : 

BAB I
PENDAHULUAN

1.1. LATAR BELAKANG

Laporan Praktikum ini dibuat untuk memenuhi tugas Arsitektur dan Organisasi
Komputer yang diberikan oleh Ibu Novita Galih, S.Kom, M.Kom selaku dosen Arsitektur dan
Organisasi Komputer di Program Diploma IPB. Laporan ini diharapkan dapat berguna dan
menambah pengetahuan bagi siapapun yang membacanya.

Dalam praktikum pertemuan ini, mahasiswa INF B diberi penjelasan dan latihan untuk
membuat program manipulasi bit dan logika menggunakan aplikasi EMU8086.

1.2. TUJUAN PRAKTIKUM

3
1. Memahami mengenai interrupt yang digunakan dengan service yang sesuai untuk
mencetak KTP
2. Memahami pemakaian interrupt gabungan untuk menampilkan perintah yang sesuai
dengan keinginan
3. Memahami syntax untuk mengeluarkan tipe data string
4. Mengenal dan memahami perbedaan register masukan dan keluaran untuk setiap
interrupt dan service yang dipakai.

BAB II
PEMBAHASAN

2.1. TEORI PENUNJANG

Interupsi adalah suatu permintaan khusus kepada mikroprosesor untuk melakukan


sesuatu. Bila terjadi interupsi, maka komputer akan menghentikan dahulu apa yang sedang
dikerjakannya dan melakukan apa yang diminta oleh yang menginterupsi.

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:

− 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

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

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

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

− Flags Register merupakan register yang menunjukkan kondisi dari sebuah keadaan.
Kondisi keadaan ini mengembalikan nilai “ya” atau “tidak”, atau 0. 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 menyimpankeadaan (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).

5
− Pointer Register

Register ini untuk menunjukkan alamat sebuah data di lokasi memori, dipakai saat operasi
perpindahan data (dari/ke memori), operasi stack (PUSH/POP) dan penunjukkan alamat suatu
instruksi. Berikut adalah macam-macam pointer register: SP (Stack Pointer) dan ESP, BP
(Base Pointer) dan IP (Instruction Pointer).

− Segment Register

Segment register membentuk alamat memori untuk data. Pada operasi real mode suatu
segment register akan berbeda dengan segment register pada operasi protected mode. Yang
termasuk ke dalam segment register antara lain :

 Code segment = untuk menunjukkan alamat instruksi berikutnya.


 Data segment = untuk menunjukkan alamat data pada transfer register
 Extra segment = register tambahan untuk operasi string
 Stack segment = dengan SP u/ menunjukkan stack dan memanggil suatu
prosedur (CALL) dan mengarah ke program utama (RET).
 FS dan GS register = register tambahan u/ segmen memori yang besar.

− Flag Register

Berfungsi untuk menunjukkan status (keadaan) sesaat dari mikroprosessor.

• Tanda Directive

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

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

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

 JMP

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

JUMP Tujuan .

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.

 INT 20h

Perintah INT adalah suatu perintah untuk menghasilkan suatu interupsi.

2.2. PERTANYAAN

1. BUATLAH CETAK KTP SESUAI DENGAN KTP YANG DIMILIKI!

2. BUATLAH KARAKTER STRING DAN MODIFIKASI MENJADI BERBENTUK


KOTAK!

7
2.3. LISTING PROGRAM

1. MEMBUAT PROGRAM CETAK KTP

8
9
OUTPUT :

2. MEMBUAT KARAKTER STRING MENJADI BERBENTUK KOTAK

PROGRAM :

10
OUTPUT :

11
2.4. ANALISA PROGRAM

1.

.MODEL SMALL

Bertujuan untuk membuat program yang ukurannya kurang dari ukurans segmen

.CODE

Untuk memberi pemberitahuan tentang code segmentnya, berfungsi untuk menyimpan program
tersebut.

ORG 100h

Perintah ini digunakan untuk memberitahukan kepada assembler supaya program pada saat
dijalankan ditaruh mulai pada offset ke 100h (256) byte.

TData: JMP Proses

;Langsung menuju proses

Kal0-Kal10

;Membuat 10 kalimat string

Proses:

12
MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,00 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal0 ;ES:BP alamat string

INT 10H ;Cetak kalimat

MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,01 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal1 ;ES:BP alamat string

INT 10H ;Cetak kalimat

MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,02 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal2 ;ES:BP alamat string

INT 10H ;Cetak kalimat

13
MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,03 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal3 ;ES:BP alamat string

INT 10H ;Cetak kalimat

MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,04 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal4 ;ES:BP alamat string

INT 10H ;Cetak kalimat

MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,05 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal5 ;ES:BP alamat string

INT 10H ;Cetak kalimat

MOV AX,1300H ;Servis 13h subfungsi 00

14
MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,06 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal6 ;ES:BP alamat string

INT 10H ;Cetak kalimat

MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,07 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal7 ;ES:BP alamat string

INT 10H ;Cetak kalimat

MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,08 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal8 ;ES:BP alamat string

INT 10H ;Cetak kalimat

MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

15
MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,09 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal9 ;ES:BP alamat string

INT 10H ;Cetak kalimat

MOV AX,1300H ;Servis 13h subfungsi 00

MOV BL,11110000B ;Atribut tulisan

MOV BH,00 ;Halaman tampilan 0

MOV DL,00 ;Posisi X (Kolom)

MOV DH,10 ;Posisi Y (Baris)

MOV CX,38 ;Banyaknya karakter dalam string

LEA BP,Kal10 ;ES:BP alamat string

INT 10H ;Cetak kalimat

INT 20H ;Selesai, kembali ke DOS

END 1DATA

2. Membuat kotak menggunakan string

.model small

Bertujuan untuk membuat program yang ukurannya kurang dari ukurans segmen

.code

Untuk memberi pemberitahuan tentang code segmentnya, berfungsi untuk menyimpan program
tersebut.

org 100h

Perintah ini digunakan untuk memberitahukan kepada assembler supaya program pada saat dijalankan
ditaruh mulai pada offset ke 100h (256) byte.

16
TData : JMP Proses

Langsung menuju proses

kal0 DB 'Saya Belajar ORKOM' Membuat pernyataan Kal0

kal1 DB 'S A' Membuat pernyataan Kal1

kal2 DB 'A Y' Membuat pernyataan Kal2

kal3 DB 'Y A' Membuat pernyataan Kal3

kal4 DB 'A S' Membuat pernyataan Kal4

kal5 DB'Saya Belajar ORKOM' Membuat pernyataan Kal5

Proses:

mov ax, 1300h Servis 13 sub Fungsi 00

mov bl, 00001100b Kode untuk warna yang dicetak, 4 digit pertama untuk background, 4 digit akhir
untuk warna huruf, bisa juga menggunakan hexa decimal. Pewarnaan dengan RGB

mov bh, 00 Halaman Tampilan

mov dl, 00 Mengatur posisi koordinat X

mov dh, 00 Mengatur posisi koordinat Y

mov cx, 5 Jumlah huruf yang akan dicetak

lea BP, Kal0 Memanggil pernyataan Kal0

int 10h Perintah untuk mencetak

mov ax, 1300h Servis 13 sub Fungsi 00

mov bl, 00001100b

mov bh, 00 Halaman Tampilan

mov dl, 00 Mengatur posisi koordinat X

mov dh, 01 Mengatur posisi koordinat Y

mov cx, 5 Jumlah huruf yang akan dicetak

lea BP, Kal1 Memanggil pernyataan Kal1

int 10h Perintah untuk mencetak

mov ax, 1300h Keterangan sama dengan diatas

mov bl, 00001100b Keterangan sama dengan diatas

17
mov bh, 00 Keterangan sama dengan diatas

mov dl, 00 Keterangan sama dengan diatas

mov dh, 02 Keterangan sama dengan diatas

mov cx, 5 Keterangan sama dengan diatas

lea BP, Kal2 Memanggil pernyataan Kal2

int 10h Keterangan sama dengan diatas

mov ax, 1300h Keterangan sama dengan diatas

mov bl, 00001100b Keterangan sama dengan diatas

mov bh, 00 Keterangan sama dengan diatas

mov dl, 00 Keterangan sama dengan diatas

mov dh, 03 Keterangan sama dengan diatas

mov cx, 5 Keterangan sama dengan diatas

lea BP, Kal3 Memanggil pernyataan Kal3

int 10h

mov ax, 1300h Keterangan sama dengan diatas

mov bl, 00001100b

mov bh, 00

mov dl, 00

mov dh, 04

mov cx, 5

lea BP, Kal4 Memanggil pernyataan Kal4

int 10h

mov ax, 1300h Keterangan sama dengan diatas

mov bl, 00001100b

mov bh, 00

mov dl, 00

mov dh, 04

mov cx, 5

18
lea BP, Kal5 Memanggil pernyataan Kal5

int 10h

int 20h Program selesai, kembali ke DOS

end Tdata

19
BAB III
KESIMPULAN

Dalam melakukan praktikum ini kita dapat memahami mengenai interrupt yang
digunakan dengan service yang sesuai untuk mencetak KTP ,memahami pemakaian interrupt
gabungan untuk menampilkan perintah yang sesuai dengan keinginan ,memahami syntax
untuk mengeluarkan tipe data string , dan juga dapat mengenal dan memahami perbedaan
register masukan dan keluaran untuk setiap interrupt dan service yang dipakai.

20
LAMPIRAN

1.PROGRAM MENCETAK KTP

21
22
3. PROGRAM MEMBUAT STRING BERBENTUK KOTAK

23
24
DAFTAR PUSTAKA
http://mernaey.blogspot.co.id/2014/10/asembly-1-mencetak-karakter-
menggunakan.html
https://ardiyanto88.wordpress.com/2013/10/25/perintah-dasar-bahasa-assembly-
menggunakan-emulator-8086/

25

Anda mungkin juga menyukai