[ gaja_ns @ 27.05.2004. 11:30 ] @
Kako prilikom povratka iz prekida (iret) promeniti povratnu adresu kako se program ne bi vrteo u krug? |
[ gaja_ns @ 27.05.2004. 11:30 ] @
[ stalker @ 27.05.2004. 13:48 ] @
Da bi promenio povratnu adresu, trebace ti dosta akrobacija. Ne znam za sta radis, ali ces morati da znas specifikacije neke. Teorijski, na steku se, pri ulasku u prekidnu rutinu cuvaju registri,..., KAO i povratna adresa. E, sad, treba da znas gde na steku. Ukoliko je na vrhu, jedno (ili vise za celu adresu, opet zavisi od arhitekture) pop, malo aritmetike, zamena i push ce uraditi posao.
[ Bojan Kopanja @ 27.05.2004. 19:42 ] @
Hehe, ako se ne varam ( mada, mozda i gresim... ) to bi bio FTN, Novi Sad, E2, 11. zadatak iz assembler-a... Jesam li u pravu
![]() E, pa fora je u tome sto ti u tom prekidu koji nastaje posle deljenja nulom trebas da pokupis povratnu adresu sa steka, i uvecas je za 2 ( toliko bajta zauzima naredba div ), a mozes i da uzmes offset neke labele ili neke naredbe posle div-a i onda jos trebas tu izmenjenu adresu da vratis na stek... Evo ti primer procedure za prekid: Code: div bx ...... prekid proc cli push ax push ds mov ax,@DATA mov ds,ax mov ax,0b800h mov es,ax lea si,poruka mov di,160*5 ; ovo ovde menjaj po zelji, to je polozaj sa koga pocinje stampanje poruke mov ah,Eh ; ovo je boja poruke cld znakovi: ; pocetak stampanja poruke lodsb and al,al jz kraj_prekid stosw jmp znakovi kraj_prekid: pop ds pop ax pop si ; uzimas povratnu adresu sa steka inc si inc si ;uvecavas je 2x push si ; vracas povratnu adresu na stek sti iret prekid endp Eto... Posle ovoga program ce nastaviti da se izvrsava od sledece naredbe posle div-a... Srecno! [ gaja_ns @ 28.05.2004. 12:53 ] @
Dobro de upravu si, hvala na odgovoru ali sam nasao laksi nacin. Samo po pozivu prekida push-jes BP i onda je adresa koju treba da menjas [BP+2].
Da nemas mozda 12 zadatak? [ Bojan Kopanja @ 28.05.2004. 15:49 ] @
12a imam, juce sam ga odbranio, a 12b sam skoro zavrsio... Mada ti ne preporucujem uzimanje moga koda, posto ti garantujem da se sa tim kodom samo je mogu snaci... ( cak mi je na jednoj vezbi asistent rekao da ne moze da pohvata sta sam uradio, a posto je sve radilo super pisao je da sam odbranio vezbu )...
Good luck! Copyright (C) 2001-2025 by www.elitesecurity.org. All rights reserved.
|