Dejó, megint találtunk több új dolgot is, amikről még nem írtam ! Az első az INT. Ez egy interrupt hívás . De mi is az INTERRUPT ?

Az interrupt angol szó magyarra fordítva megszakítást jelent. Egy külső eszköztől üzenet érkezik a cpu felé, hogy valami történt (pl. lenyomtak egy gombot). Ekkor a processzor megáll, végrehajtja az adott megszakításhoz tartozó programrészletet (pl. kiírja a lenyomott billentyűhöz tartozó karakter a képernyőre), majd folytatja a felfüggesztett programot. A PC-n kétfajta interrupt található, az egyik az NMI (nem maszkolható interrupt, azaz nem lehet letiltani), a másik az INT, amit le lehet tiltani. A gép szinte minden egységének szüksége van megszakitásra, és megszakitáshívások történnek bizonyos - RENDKÍVÜLI - esetben is, ha pl. nullával osztunk, töréspontot helyezünk el, lépésenként debuggolunk, vagy NMI utasítást kapunk. Az INT műveletet le lehet tiltani, a CLI utasítással, STI-vel pedig engedélyezni lehet. Tehát vannak szoftveres és hardveres interruptok is.

A legegyszerűbben úgy lehet ezeket elképzelni, mintha kis beépített programocskák lennének [:)], amit a BIOS vagy a DOS állít be, de akár te is írhatsz/átírhatsz ilyeneket.

Ha behívod az NG-t, belépsz a DOS menübe, akkor egy csomó ilyet pillanthatsz meg ! Vegyük például a 09h funkciót. Ez a "Print String", azaz kiír egy szöveget.
Ha belelépsz, meglátod,
hogy : AH 09h
DS:DX Pointer to character string

Az alsó szövegben pedig leírja, hogy a szöveg végét egy "$"-ral kell jelölni. Tehát egy példa :

    duma db "Ez egy példa$"
Megjegyzés:Az 'INT xx' különben ezt csinálja:
    pushf     call far [interrupttable[xx*4]]
ahol az interrupttable általában a 0:0 címen van :)

4. példa letöltése