[ Jovovic @ 17.06.2005. 17:23 ] @
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(). |