Asembler- klopot
Masz problem? Zapytaj na forum elektroda.pl z bramk± pl.misc.elektronika!
From: "Tomasz Gruse" <tgruse_at_nospam_friko2.onet.pl>
Subject: Asembler- klopot
Date: Tue, 3 Mar 1998 19:21:35 +0100
Mam problem ktory niedawno sie juz pojawil.
W przerwaniu klawiatury INT 16h chce zapisac wartosci do pliku.
Zapis realizuje za pomoca INT 21h. Gdy chce otworzyc plik (AH=3D), to
komputer odpowiada bledem 2(nie znaleziono pliku).Plik istniej w podanej
sciezce.
Moze mialo na to wplyw to ze wywolywalem int21h z przerwania klawiatury???
Za wszelkie wskazowki DZIEKI ;))
From: Slawomir Balon <bees_at_nospam_ispid.com.pl>
Subject: Re: Asembler- klopot
Date: Tue, 03 Mar 1998 22:39:34 +0100
Tomasz Gruse wrote:
Mam problem ktory niedawno sie juz pojawil.
W przerwaniu klawiatury INT 16h chce zapisac wartosci do pliku.
tzn??? Jak to w przerwaniu 16h? Podmieniles wektor?
Zapis realizuje za pomoca INT 21h. Gdy chce otworzyc plik (AH=3D), to
komputer odpowiada bledem 2(nie znaleziono pliku).Plik istniej w
podanej
sciezce.
a zamykasz ten plik po zapisie do niego?? (3eh)
Moze mialo na to wplyw to ze wywolywalem int21h z przerwania
klawiatury???
nie ma to znaczenia dopoki nie przepelnisz stosu... (raczej
maloprawdopodobne)
Za wszelkie wskazowki DZIEKI ;))
pozdrawiam,
Slawek
;------------------------------------------------
REALTIME GRAPHICS ENGINES & DIGITAL ELECTRONICS
http://www.ispid.com.pl/~bees
mailto:bees_at_nospam_ispid.com.pl
From: Marcin Wlasiuk <fruit_at_nospam_student.uci.agh.edu.pl>
Subject: Re: Asembler- klopot
Date: 4 Mar 1998 11:53:51 GMT
Mam problem ktory niedawno sie juz pojawil.
W przerwaniu klawiatury INT 16h chce zapisac wartosci do pliku.
tzn??? Jak to w przerwaniu 16h? Podmieniles wektor?
Znaczy ze podmienil, a raczej tylko przechwycil przerwanie.
Zapis realizuje za pomoca INT 21h. Gdy chce otworzyc plik (AH=3D), to
komputer odpowiada bledem 2(nie znaleziono pliku).Plik istniej w
podanej
sciezce.
a zamykasz ten plik po zapisie do niego?? (3eh)
To wcale nie jest konieczne.
Moze mialo na to wplyw to ze wywolywalem int21h z przerwania
klawiatury???
nie ma to znaczenia dopoki nie przepelnisz stosu... (raczej
maloprawdopodobne)
A ja wlasnie tutaj dopatrywalbym sie bledu.... Przede wszystkim
nasowa sie pytanie:
1) Czy sprawdzasz czy DOS jest zajety (flaga INDOS)
2) Czy przemapowales DTA na swoje wlasne (tj. programu jak sie
domyslam - rezydenta)
3) Dla calkowitego bezpieczenstwa trzeba by bylo jeszcze sprawdzac
czy nie jest wlasnie obslugiwany blad krytyczny i przelaczyc stos na
wlasny bo wbrew temu co napisal moj przedmowca wcale nie tak trudno
go przepelnic w niektorych sytuacjach. Jednak przepelnienie stosu w
ok. 80% prowadzi do zawieszenia systemu zadziej do bledow.
Fruit
From: Slawomir Balon <bees_at_nospam_ispid.com.pl>
Subject: Re: Asembler- klopot
Date: Thu, 05 Mar 1998 00:05:02 +0100
Marcin Wlasiuk wrote:
(...)
3) Dla calkowitego bezpieczenstwa trzeba by bylo jeszcze sprawdzac
czy nie jest wlasnie obslugiwany blad krytyczny i przelaczyc stos na
wlasny bo wbrew temu co napisal moj przedmowca wcale nie tak trudno
go przepelnic w niektorych sytuacjach.
w niektorych tak... ale jesli ktos zamierza stosowac rekurencje albo
upychac masedanych na stosie moze sobie zawsze zarezerwowac caly segment
na stos :-)
Jednak przepelnienie stosu w
ok. 80% prowadzi do zawieszenia systemu zadziej do bledow.
Fruit
pozdrawiam,
Slawek
;------------------------------------------------
REALTIME GRAPHICS ENGINES & DIGITAL ELECTRONICS
http://www.ispid.com.pl/~bees
mailto:bees_at_nospam_ispid.com.pl
From: "Piotr \"X-Pert\" Wyderski" <xpert_at_nospam_kki.net.pl>
Subject: Re: Asembler- klopot
Date: 4 Mar 1998 07:24:36 GMT
Tomasz Gruse <tgruse_at_nospam_friko2.onet.pl> napisał(a) w artykule
<34fc4c4e.0_at_nospam_news.tpnet.pl>...
Mam problem ktory niedawno sie juz pojawil.
W przerwaniu klawiatury INT 16h chce zapisac wartosci do pliku.
Zapis realizuje za pomoca INT 21h. Gdy chce otworzyc plik (AH=3D), to
komputer odpowiada bledem 2(nie znaleziono pliku).Plik istniej w podanej
sciezce.
Moze mialo na to wplyw to ze wywolywalem int21h z przerwania
klawiatury???
Za wszelkie wskazowki DZIEKI ;))
Ja kiedys rowniez mialem podobny problem, tyle ze na przerwaniu osmym.
Wlasciwie to nie wiem dlaczego tak sie dzieje, ty i tak masz dobrze, bo u
mnie to zawieszalo komputer na amen. W koncu dalem sobie spokoj z INT 21 i
najnormalniej w swiecie przepisalem kawalek kodu z INT 21 do mojego
programu, od tamtej chwili dziala poprawnie. Twoj problem moze byc
spowodowany takze czyms innym: nie ustawiles poprawnie praw dostepu do
pliku, a przerwanie nie jest traktowane jako biezace zadanie lub proces
potomny, wiec nie zezwolilo to na otwarcie. I wreszcie po trzecie: nie
ustawiasz w przerwaniu biezacego segmetu danych, wiec to, do czego ono sie
odwoluje to moze nie byc sciezka dostepu do pliku, tylko jakies inne,
przypadkowe dane. Odloz rejestr DS na stos, potem
skopiuj do niego biezace DataSeg. Powinno pomodz. Na zakonczenie tylko
jedno pytanie: dlaczego bawisz sie przerwaniem 16 do przejecia klawiatury (
domyslam sie do czego sluzy twoj program, sam napisalem kiedys snifer,
tyle, ze pod windows
:)), a nie uzywasz bezposrednio przerwania 09 ?
z pozdrowieniami
X-Pert
moj e-mail: xpert_at_nospam_kki.net.pl
From: Marcin Wlasiuk <fruit_at_nospam_student.uci.agh.edu.pl>
Subject: Re: Asembler- klopot
Date: 4 Mar 1998 11:58:11 GMT
Ja kiedys rowniez mialem podobny problem, tyle ze na przerwaniu osmym.
Wlasciwie to nie wiem dlaczego tak sie dzieje, ty i tak masz dobrze, bo u
mnie to zawieszalo komputer na amen. W koncu dalem sobie spokoj z INT 21 i
<CIACH>
DOS,DOS,DOS... jest zajety gdy chcesz go wykozystac !!! A ze jest
jednozadaniowy to co ma biedaczek zrobic !?! Wystarczy wstawic pare
linijek kodu ktore beda sprawdzac odpowiednia flage systemowa i po
problemie. A swoja droga to jak ktos chce takiego sniffera to moge
podeslac nie liczac juz tych ktore leza w archiwach Simtel'a...
Fruit