Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Čuvanje konteksta procesora pri pozivu interrupt-a (asm 286)

[es] :: Kernel i OS programiranje :: Čuvanje konteksta procesora pri pozivu interrupt-a (asm 286)

[ Pregleda: 5956 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Jovovic
Milan Jovovic
Student
Pozarevac / Beograd

Član broj: 61527
Poruke: 4
*.ptt.yu.



Profil

icon Čuvanje konteksta procesora pri pozivu interrupt-a (asm 286)25.06.2005. u 14:27 - pre 228 meseci
Imam nekoliko pitanja u vezi asemblera za 286. Interesuje me kako da "dohvatim" registre CS i IP iz prekidne rutine koju sam
definišem, odnosno, koje registre čuva hardver na steku i kojim redosledom?

U svom programu imam proceduru koja se izvršava prilikom prekida:

Code:
void interrupt interruptHandler();


koja se prevodi u asembler na sledeći način:

Code:
@interruptHandler$qv proc far
push ax
push bx
push cx
push dx
push es
push ds
push si
push di
push bp
mov bp,DGROUP
mov ds,bp
mov bp,sp
/////////////////////////////////
// ovde se nalazi telo procedure
/////////////////////////////////
pop bp
pop di
pop si
pop ds
pop es
pop dx
pop cx
pop bx
pop ax
iret
@interruptHandler$qv endp


Pomoću BP mogu da pristupim steku i na taj način pročitam kontekst procesora (ax, bx, ...bp), ali ne znam koliko registara i
koji se sve registri i kojim redom čuvaju na steku pre pozivanja procedure interruptHandler().
 
Odgovor na temu

daxx

Član broj: 12395
Poruke: 50
213.244.197.*

ICQ: 167771596


Profil

icon Re: Čuvanje konteksta procesora pri pozivu interrupt-a (asm 286)11.08.2005. u 16:30 - pre 226 meseci
Eh, taj projekat... :)
 
Odgovor na temu

Vuk Nikolić
Vuk Nikolić
Banovo Brdo, Beograd

Član broj: 4895
Poruke: 244
*.beotel.net.

ICQ: 42139643
Sajt: www.letva.org


Profil

icon Re: Čuvanje konteksta procesora pri pozivu interrupt-a (asm 286)12.08.2005. u 23:46 - pre 226 meseci
ne bi da se pravim pametan, ali koristi setjmp i longjmp.
ja sam njih koristio za projekat... imam samo 5-6 linija asemblera sve ukupno. (treba jos event da sredim)
 
Odgovor na temu

daxx

Član broj: 12395
Poruke: 50
*.vdial.verat.net.

ICQ: 167771596


Profil

icon Re: Čuvanje konteksta procesora pri pozivu interrupt-a (asm 286)17.08.2005. u 22:42 - pre 226 meseci
Kako si uspeo da nabudzis setjmp i longjmp da cuvaju ax?
I jel treba mi da kompajliramo to za 8086 ili 286??
Pisi bre tamo na nasem forumu, vidis da pojma nemamo :)

OFF: Sta je sa daskom covece!?
 
Odgovor na temu

daxx

Član broj: 12395
Poruke: 50
*.vdial.verat.net.

ICQ: 167771596


Profil

icon Re: Čuvanje konteksta procesora pri pozivu interrupt-a (asm 286)17.08.2005. u 22:48 - pre 226 meseci
Eh da, da odgovorim kolegi na prvo pitanje.
Pre poziva interrupt funkcije na stek se stavlja PSW. Pri samom pozivu dolaze jos CS i IP (jer je procedura far), a onda naravno krece to sto si napisao, dakle pushovanje registara i telo funkcije. Pri povratku se popuju registri, kao sto znas, a IRET skine IS, CP i flegove i upise ih gde treba.

I ne zaboravi da u svakoj datoteci iz koje pozivas interrupt funkciju, deklarises tu funkciju kao interrupt, da bi prevodilac znao da treba da gurne flegove pre poziva. Ja sam zbog toga imao grdnih problema.
 
Odgovor na temu

[es] :: Kernel i OS programiranje :: Čuvanje konteksta procesora pri pozivu interrupt-a (asm 286)

[ Pregleda: 5956 | Odgovora: 4 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.