“ADDRESSING MODES”
NIM : J3C116025
PROGRAM DIPLOMA
2017
DAFTAR ISI
LEMBAR ASISTENSI
TUGAS LAPORAN
Nama :
2
Revisi dan Tugas Tambahan :
BAB I
PENDAHULUAN
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.
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
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 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.
− 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 :
− Flag Register
• 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
2.2. PERTANYAAN
7
2.3. LISTING PROGRAM
8
9
OUTPUT :
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.
Kal0-Kal10
Proses:
12
MOV AX,1300H ;Servis 13h subfungsi 00
13
MOV AX,1300H ;Servis 13h subfungsi 00
14
MOV BL,11110000B ;Atribut tulisan
15
MOV BH,00 ;Halaman tampilan 0
END 1DATA
.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
Proses:
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
17
mov bh, 00 Keterangan sama dengan diatas
int 10h
mov bh, 00
mov dl, 00
mov dh, 04
mov cx, 5
int 10h
mov bh, 00
mov dl, 00
mov dh, 04
mov cx, 5
18
lea BP, Kal5 Memanggil pernyataan Kal5
int 10h
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
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