DAFTAR ISI
Teknik Interface (Perangkat Lunak)
soal : Gambar 37. Program Int 21H Service 09H
1. Dasar Teori [back]
Teori Bahasa Assembler
Dalam bahasa
tingkat rendah tidak dibutuhkan struktur program karena semuanya diserahkan kepada pemakai.
A.
REGISTER
Register adalah sebagian kecil memori komputer yang dipakai untuk tempat
penampungan data. Sebagian besar register
yang terdapat pada mikroprosesor 8088 adalah
16 bit.
Ada 5
kelompok Register, yaitu :
1.
General Purpose Register
General purpose register dapat dibagi menjadi register low dan high bits
yang masing-masing berkemampuan 8 bit.
Seperti register AX, register low-nya adalah
AL dan register high-nya
adalah AH.
Ada empat macam
General purpose register yaitu:
a. Register AX (AH + AL) atau Accumulator
Register adalah register aritmatik untuk dipakai dalam operasi pertambahan, pengurangan,
perkalian dan pembagian. Register AH dapat
juga digunakan untuk tempat nilai service number untuk beberapa
interrupt
tertentu.
b. Register BX (BH + BL) atau Base register adalah salah satu dari dua register base Addressing mode, yang
dapat mengambil atau menulis langsung dari/ke memory.
c. Register CX (CH + CL) atau Counter Register adalah suatu
counter untuk meletakkan jumlah lompatan pada loop yang dilakukan.
d. Register DX (DH + DL) atau Data Register mempunyai tiga tugas, yaitu:
1.
Membantu
AX dalam
proses perkalian dan pembagian, terutama perkalian dan
pembagian 16 bit.
2.
DX merupakan register offset dari DS
3.
DX bertugas menunjukkan nomor port
pada operasi port
2. Segment Register
a. CS (Code Segment) Register adalah
berfungsi menunjukkan segment program
berada dengan pasangan register ini adalah register
IP.
b. DS (Data Segment) Register adalah
berfungsi menunjukkan segment dari segment data. Pasangan dari DS adalah DX.
c. SS (Stack Segment) Register adalah
berfungsi menunjukkan segment dari segment stack. Pasangan dari SS adalah SP
d. ES (Extra Segment) Register adalah
berfungsi untuk pemograman pada saat melakukan operasi
ke segment lain.
3. Pointer Register berfungsi menyimpan offset dari relative address.
a. IP (Instruction Pointer) Register adalah berfungsi untuk
menunjukkan baris perintah program. Pada saat
pertama program dijalankan register ini akan langsung menunjuk pada awal
program.
b. SP (Stack Pointer) Register adalah merupakan pasangan
SS yang digunakan untuk operasi stack. Pada saat pertama program dijalankan register ini
akan menunjuk pada byte terakhir stack.
c. BP (Base Pointer)
Register
adalah mempunyai fungsi sama dengan register BX, tetapi BX menulis
dan membaca dengan segment DS (Data Segment) sedang BP menulis dan
membaca dengan segment SS (Stack Segment).
4. Index Register
yaitu SI (Source Index) dan
DI (Destination Index) adalah berfungsi melakukan operasi STRING.
Namun demikian, kedua register ini sering
digunakan untuk menulis dan membaca ke atau dari memori seperti halnya BX dan BP.
5. Flag Register adalah berfungsi mengecek apakah sesuatu
berfungsi atau tidak.
Contohnya:
a. Interrupt Flag
mengecek apakah pada saat operasi Interrupt sedang aktif atau tidak, bila
tidak aktif, Interrupt tidak akan dijalankan.
b. Carry Flag
mengecek apakah pada saat operasi terjadi
kesalahan atau tidak,
c. Sign Flag menunjukkan apakah suatu bilangan
bertanda atau tidak dan sebagainya.
berikut adalah
bit-bit register Flag
O = Overflow Flag
D = Direction Flag
I = Interrupt Flag
T = Trap Flag
S = Sign Flag
|
Z = Zero Flag
A = Auxiliary Carry Flag
P = Parity Flag
C = Carry Flag
X = Reserved
(kosong)
|
B. MENCETAK SEBUAH KALIMAT
Menggunakan fasilitas
Int 21h
dengan service 09h.
Sebelumnya dipelajari dulu tentang variabel.
Ada 2 jenis variabel, yaitu
:
a.
Variabel yang Dapat Dimodifikasi Isinya
Variabel yang memakan tempat pada memory, yaitu;
a)
DB (Define Byte), mendefinisikan variabel per byte.
b) DW (Define Word),
mendefinisikan variabel per word (2 byte).
c) DD (Define Double
Word), mendefinisikan variabel per 2 word.
Tata penulisan: Label (DB/DW/DD) [Isi Variabel]
Contoh:
Satu db ‘ satu variabel$'
Dua db 12ABh
Tiga db 75h
b.
Variabel yang Tidak Dapat Dimodifikasi Isinya
Tidak memakan memori pada komputer, jenis variabel ini
hanya dapat dipakai dalam Assambler menggunakan Compiler dengan memakai equ.
Contoh:
Satu equ 2470h
Dua equ 2442h
Syarat menggunakan Int 21 hexa service 09 hexa ini
adalah :
a)
AH=02H
b) DS= segment variabel tempat menampung kata yang akan dicetak
c) DX= offset-nya dan
d) kata-kata yang dicetak tersebut harus diakhiri dengan tanda
Dollar '$'.
Contoh program menggunakan Int 21 hexa service
09 hexa sebagai berikut :
2. Listing Program [back]
JMP mulai
KATA db 'Kata yang dicetak',13,10
db 'dengan interrupt 21H sevice 09H',13,10
db '$'
mulai:
MOV DX, OFFSET KATA
MOV AH,09H
INT 21H
MOV AH,4CH
KATA db 'Kata yang dicetak',13,10
db 'dengan interrupt 21H sevice 09H',13,10
db '$'
mulai:
MOV DX, OFFSET KATA
MOV AH,09H
INT 21H
MOV AH,4CH
3. Video [back]
4. Hasil Running [back]
5. Penjelasan Program [back]
- JMP mulai (Program dimulai langsung di arahkan ke bagian MULAI
- KATA db 'Kata yang dicetak',13,10 (menampilkan kalimat pada layar)
- db 'dengan interrupt 21H sevice 09H',13,10 (menampilkan kalimat pada layar)
- db '$'
- mulai:
- MOV DX, OFFSET KATA (mengisi DX dengan OFFSET DATA)
- MOV AH,09H (AH diisi dengan service number dari Interrupt)
- INT 21H (mencetak sebuah huruf ke layar)
- MOV AH,4CH (untuk_menghentikan jalannya program)
Comments
Post a Comment