INTEL 8086 ASSEMBLY

INTEL 8086 ASSEMBLY
Int 33h , Int10h Kesmesi Ve Bir Ürnek (EMU 8086)

AX=03h
Int 33h
Registerler:
BX=1 sol butona basıldı
BX =2 sağ butona basıldı
BX =3 Her iki butona da basıldı
CX=Fare Curser X Değeri
DX=Fare Cursor Y Değeri
AH= 0Ch
INT 10h

Registerler:

AL=Renk
CX: Pixel x koordinatı
DX: Pixel y koordinatı
CX ve DX registerleri ile belirlenen noktaya AL registeri
ile belirlenen renkte nokta koyar.

Yukarıda satır satır yazdığımız aÇıklamanın ardından kısaca şunları da ekleyebiliriz,
Program int 33h ve int 10h kesmeleri ile EMU 8086 da yapdığımız bir assembly programıdır,
basitÇe şu şekilde Çalışır;
Int 10h ile program başında grafik moda geÇtikten sonra, int 33h ile fare cursör”ü
görünür hale getirdik, devam etiketi (label) ile loop arasında kalan kısımda sonsuz
bir döngü ile fare tuşlarını okutuyoruz, fare sol tuşuna basıldığında BX registeri 1 olur
ve CMP ve JE komutları ile yaz etiketine dallanılır. Yaz etiketinde int 33h ile fare
bilgileri tekrar okutulup tam fare cursör”ünün bulunduğu yere int 10h ile beyaz bir
pixel koyuluyor. Pixelin rengini ¬belirleyen AL registeridir o da binary 1111 yani
Desimal On Beşe eşittir, aşağıda bu rek kodlarını da gösterecek olursak;

Fare okutulurken sol ve sağ butonlara tıklandığında CX 3 değerini alır ve CMP,
JE komutları ile bitti etiketine dallanarak program biter, yani program fare ile
her iki butona basılana kadar, program devam eder.

Program Çıktısı Aşğıda görülmektedir.( Not: Program EMU 80806 ile yazılmıştır)
shr komutunun kullanılmasının değeri ise Normalden iki katı fazla Çıkan
CX değerini ikiye bölerek X koordinatını gerÇek değerine getiriyoruz.

Ürnek program dosyasını indirebileceğiniz adres:
http://depositfiles.com/files/xc7ks7ugu

Faydali olması dileğiyle,

Nurettin ÜEBİ
Bilgisayar Programcısı