cpp 002 C. Memanggil Interupsi BIOS dan DOS Menggunakan Teknik Inline Assembly

kali ini saya akan membahas contoh lanjutan dari cpp 01 tentang :

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.

Komentar

Postingan Populer