[ vlladico @ 23.03.2005. 10:04 ] @
Trebao bi da napravim program za 8086, koji ce da radi u dva rezima rada: run i standby.
Kada stigne komanda spolja, program bi trebao bez obzira sta radi, ako se nalazi u rezimu run da predje u standby. Komanda stize kao prekid, znaci aktivira se prekidna rutina koju ja pisem.
Moja ideja je da u toj prekidnoj rutini samo promenim sadrzaj steka (IP-instruction pointer, eventualno segment) tako da se posle IRET pocne izvrsavati onaj deo programa koji radi u standby i ceka novi prekid za run.

Da vas ne bih zamarao vise, zanima me da li se to tako radi ili postoji neki drugi nacin, recimo preko neke globalne promenljive ( cisto sumnjam ).
Eto toliko. Hvala!
[ deroko @ 24.03.2005. 11:50 ] @
Sinoc mi pade napamet, napravi procedur koja procesira input i u zavisnoti od njega pravi thread za za standby ili za running. (ako je resenje za windows), ako je rec o DOS to ne znam :( Nisam nikad programirao u dosu
[ vlladico @ 05.04.2005. 10:45 ] @
Stvar je u tome sto nemam nikakvo okruzenje, vec samo cist 8086, bez ikakvog operativnog sistema. To je kao neki embeded sistem, koji treba da radi samo jednu stvar.

Ja sam se pitao da li je u redu da u prekidnoj rutini sa steka skinemo povratnu adresu i onda ubacimo adresu koja nam odgovara ( naravno, ako je drugi segment i to bi se promenilo ).

Razmisljam da li to moze da dovede do nezeljenog ponasanja, u nekom opstem slucaju. Na primer, da smo se vec 'ugnjezdili' u jednoj ili vise funkcija, tako da je stek vec pun vrednostima (povratnim adresama) koje ce zauvek ostati na steku, jer idemo na novu adresu gde se nema predstava iz koje funkcije smo iskocili. Tako da, ako program dovoljno dugo radi, moze se desiti da stek bude prepunjen.

Ne znam da li sam bas bio jasan.
[ deroko @ 05.04.2005. 21:21 ] @
E to vec ne znam =) Nikad nisam pisao svoj OS =)