C. Memanggil Interupsi BIOS dan DOS Menggunakan Teknik Inline
Assembly
Teknik inline assembly adalah teknik menuliskan
kode-kode bahasa assembly diantara kode-kode bahasa
pemrograman yang lain seperti Pascal dan C/C++. Tidak semua kompilator memiliki
kemampuan mengkompilasi kode inline assembly, Borland C++ dan Turbo C/C++
memiliki kemampuan ini. Cara menggunakan teknik inline assembly pada Borland
C++ 5.02 adalah dengan menggunakan kata cadangan asm dan
diikuti oleh kode program bahasa assembly serta diakhiri dengan tanda
semicolon/titik koma (;). Berikut sintaks penggunaan kata kunci asm:
Contoh 02.cpp:
#include
<conio.h>
#include
<dos.h>
#include
<stdlib.h>
#define
VIDEO_INT 0x10 // BIOS Video Interrupt
int
main(void)
{
clrscr();
asm mov ah,
0x09; // AH = 9 heks.
asm mov al,
0x44; // AL = 41 heks., huruf D
asm mov bh,
0x00; // BH = 0 heks., halaman layar
asm mov bl,
0x09; // BL = 7 heks., warna huruf
asm mov ch,
0x00; // CH dan CL menentukan banyak
asm mov cl,
0x01; // huruf yang akan dicetak
asm int
VIDEO_INT; // Interupsi BIOS 10h
getch();
return
EXIT_SUCCESS;
}
Perhatikanlah baris 11 sampai dengan baris 16!
Instruksi mov ah, 0x09 artinya menyimpan nilai 9 heksadesimal kedalam register
AH. Demikian juga dengan instruksi mov bh, 0x00 atau mov
cl, 0x01. Dalam pemrograman bahasa assembly opcode mov
digunakan untuk memberikan nilai kedalam suatu operand, dalam hal ini register
AH, AL, BH, BL dan sebagainya. Kemudian amati pula baris 17. Pada baris 17
instruksi int VIDEO_INT bukan berarti mendeklarasikan variabel
VIDEO_INT dengan tipe data integer, melainkan menjalankan interupsi yang nilai
interupsinya disimpan dalam konstanta VIDEO_INT, yaitu 10
0x10 atau 10 heksadesimal. Dalam pemrograman bahasa assembly
opcode intdigunakan untuk menjalankan interupsi sesuai dengan nomor
interupsi sesudah kata kunci int.

0 komentar:
Posting Komentar