Montaj Dizininde, INT 21h DOS interrupt'ı var, bu bir donanım kesmesi değil.Montajda özel bir Interrupt yapmak mümkün mü?
Kendi aramamı yazmak ve çağırmak mümkün olup olmadığını merak ediyordum.
Mümkünse, lütfen bağlantı veya yöntem öneriniz.
Montaj Dizininde, INT 21h DOS interrupt'ı var, bu bir donanım kesmesi değil.Montajda özel bir Interrupt yapmak mümkün mü?
Kendi aramamı yazmak ve çağırmak mümkün olup olmadığını merak ediyordum.
Mümkünse, lütfen bağlantı veya yöntem öneriniz.
Evet, kendi giriş işleyicinizi oluşturabilir ve istediğiniz zaman arayabilirsin. Kendi kesme işleyicinize işaret etmek için kesme vektörünü (0000: 0000 adresinde başlayan) ayarlamanız gerekecektir.
Her işleyicinin işaretçisi 4 bayt (ofset ve segment) kullanır; örneğin, INT 22h için kesme işleyicinizi kurmak isterseniz, işleneni işaret etmek için 0000: 0088h adresindeki interrput vektörünü güncellersiniz.
Kullanılmayan bir kesme numarasını (bir donanım girişimi tarafından kullanılmayan en az bir tane) kontrol etmek için Ralph Brown's interrupt list'u kontrol edin.
INITIALIZE:
XOR AX,AX
MOV ES,AX
CLI ; Disable interrupts, might not be needed if seting up a software-only interrupt
MOV WORD PTR ES:[136], OFFSET INT22 ; setups offset of handler 22h
MOV WORD PTR ES:[138], CS ; Here I'm assuming segment of handler is current CS
STI ; Reenable interrupts
; End of setup
INT22 PROC FAR
; Here goes the body of your handler
IRET
INT22 ENDP
Bunu anlıyorum, ancak INT 21H'de bir dosya yazma özelliği gibi bir şey mümkün olan programlama. Ayrıca, bir Interrupt kurmaya bir örnek verebilir misiniz? Çok yardımcı olurdum efendim. –
@TotalAnimeImmersion: Evet, kesme işleyicisinde ne istersen yapabilirsin. İşleyiciyi kurma örneği eklendi. – gusbro
Çok teşekkürler Efendim. Gerçekten yardım etti. –
İlgili:: http://stackoverflow.com/questions/3392831/what-happens-in-an-interrupt-service İşte
kesme 22h için bir işleyici nasıl kurulacağı bir örnek gider -routine –