Skip to main content

Program Int 21H Service 09H


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

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)

6. Link Download [back]


Comments

Popular posts from this blog

COVER

KULIAH DAN PRAKTIKUM Dibuat dan Dipublikasikan untuk Memenuhi Tugas Kuliah Elektronika dan Sistem Digital Mikroprosessor dan Mikrokontroller By: Adelina Utari 1610952030 Dosen Pembimbing : Darwison, M.T TEKNIK ELEKTRO FAKULTAS TEKNIK PADANG 2018 Referensi: Hall, D. V., “Microprocessors and Interfacing: Programming and Hardware”, McGraw-Hill, Inc., New York Darwison, 2010, Teknik Interface: Perancangan Hardware dan simulasi Software serta Aplikasinya”, Unand Press, Padang. Darwison, 2009, “Panduan Praktikum Elektronika Digital”, Teknik Elektro – Unand, Padang. Darwison, 2009, “Diktat Mikroprosesor”, Teknik Elektro – Unand, Padang Gaonkar, S., 1988, “Microprocessors, Architecture, Programming, and Interfacing”, Jhon Wiley and Sons. Rachmad Setiawan, 2006, “Teknik Interface”, Graha Ilmu, Yogyakarta. John Crisp, Introduction to Microprocessors and Microcontrollers, 2nd edition, Newness, 2004. Darwis...