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

kako realizovati stanja u kojima radi neki program uz pomoc prekida

[es] :: Asembler :: kako realizovati stanja u kojima radi neki program uz pomoc prekida

[ Pregleda: 3004 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

vlladico
Vladimir Peric
Beograd, Kraljevo

Član broj: 9042
Poruke: 28
*.smin.sezampro.yu.



Profil

icon kako realizovati stanja u kojima radi neki program uz pomoc prekida23.03.2005. u 10:04 - pre 232 meseci
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!
 
Odgovor na temu

deroko

Član broj: 48499
Poruke: 123
193.140.140.*



Profil

icon Re: kako realizovati stanja u kojima radi neki program uz pomoc prekida24.03.2005. u 11:50 - pre 232 meseci
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
 
Odgovor na temu

vlladico
Vladimir Peric
Beograd, Kraljevo

Član broj: 9042
Poruke: 28
*.smin.sezampro.yu.



Profil

icon Re: kako realizovati stanja u kojima radi neki program uz pomoc prekida05.04.2005. u 10:45 - pre 231 meseci
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.
 
Odgovor na temu

deroko

Član broj: 48499
Poruke: 123
193.140.140.*



Profil

icon Re: kako realizovati stanja u kojima radi neki program uz pomoc prekida05.04.2005. u 21:21 - pre 231 meseci
E to vec ne znam =) Nikad nisam pisao svoj OS =)
 
Odgovor na temu

[es] :: Asembler :: kako realizovati stanja u kojima radi neki program uz pomoc prekida

[ Pregleda: 3004 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

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