Thread View: pl.comp.lang.asm
6 messages
6 total messages
Started by Wiktor S.
Thu, 08 Jun 2006 10:10
[lame] 13h - nie działa?
Author: Wiktor S.
Date: Thu, 08 Jun 2006 10:10
Date: Thu, 08 Jun 2006 10:10
50 lines
1471 bytes
1471 bytes
Dlaczego to się wiesza albo wysypuje? Program jest tak banalny, że albo mam dziś zaćmienie jakieś, albo jest tu jakaś teoria spiskowa: nasm test.asm -fobj -o test.obj tlink test.obj segment code use16 ..start: mov ax,data mov ds,ax mov ax,stack mov ss,ax mov sp,stacktop call go13h mov ax,0A000h mov es,ax mov byte [es:1000],15 call readkey call go03h mov ax,4c00h int 21h readkey: mov ah,8 int 21h ret go13h: mov ax,13h int 10h ret go03h: mov ax,3 int 10h ret segment data segment stack STACK resb 64 stacktop: -- Azarien
Re: [lame] 13h - nie dzia?a?
Author: Józek Sztacheta
Date: Thu, 08 Jun 2006 12:00
Date: Thu, 08 Jun 2006 12:00
9 lines
1098 bytes
1098 bytes
On 08.06.2006, Wiktor S. <wswiktorSP@Mpoczta.fm> wrote: > Dlaczego to si? wiesza albo wysypuje? Program jest tak banalny, ?e albo mam > dzi? za?mienie jakie?, albo jest tu jaka? teoria spiskowa: > a gdzie go uruchamiasz? -- Józef Sztacheta - hobbyist programmer Trzy litery - pełne zdanie? B-D-J.
Re: [lame] 13h - nie działa?
Author: Bogdan (bogdro)
Date: Thu, 08 Jun 2006 18:07
Date: Thu, 08 Jun 2006 18:07
29 lines
1689 bytes
1689 bytes
Wiktor S. napisał(a): > Dlaczego to się wiesza albo wysypuje? Program jest tak banalny, że albo > mam dziś zaćmienie jakieś, albo jest tu jakaś teoria spiskowa: > > nasm test.asm -fobj -o test.obj > tlink test.obj > > segment code use16 > ..start: > mov ax,data > mov ds,ax > mov ax,stack > mov ss,ax > mov sp,stacktop wrt stack może? [...] > segment stack STACK > resb 64 > stacktop: Pewnie wyskakuje stack fault z powodu za małego stosu. Zacznij od 400h. -- Pozdrawiam, Bogdan (Linux i FreeDOS) Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: [lame] 13h - nie działa?
Author: Wiktor S.
Date: Fri, 09 Jun 2006 08:18
Date: Fri, 09 Jun 2006 08:18
23 lines
1543 bytes
1543 bytes
>> Dlaczego to się wiesza albo wysypuje? Program jest tak banalny, że >> albo mam dziś zaćmienie jakieś, albo jest tu jakaś teoria spiskowa: > wrt stack może? > [...] ani nasm, ani dokumentacja Intela ani AMD nie znają instrukcji "wrt" :-) >> segment stack STACK >> resb 64 >> stacktop: > Pewnie wyskakuje stack fault z powodu za małego stosu. Zacznij od > 400h. Ooo... dzięki. Wiedziałem, że jest błąd, tylko go nie widzę :-) Program pod DOS-em wywalał wyjątek, pod Win98 wysypywał sesję DOSa. Pod XP-kiem o dziwo nie było żadnego błędu, a "tylko" niestabilność okna konsoli. -- Azarien
Re: [lame] 13h - nie działa?
Author: Bogdan (bogdro)
Date: Fri, 09 Jun 2006 11:47
Date: Fri, 09 Jun 2006 11:47
43 lines
2618 bytes
2618 bytes
Wiktor S. napisał(a): >>> Dlaczego to się wiesza albo wysypuje? Program jest tak banalny, że >>> albo mam dziś zaćmienie jakieś, albo jest tu jakaś teoria spiskowa: > >> wrt stack może? >> [...] > > ani nasm, ani dokumentacja Intela ani AMD nie znają instrukcji "wrt" :-) Kto powiedział, że to instrukcja? :) Nie czytałeś dokumentacji NASMa, czasem się przydaje. Chodziło mi o: mov sp, stacktop wrt stack ; (jeśli podziała w ogóle) WRT = "with respect to", czyli bierze offset względem początku danego segmentu (tak przynajmniej ja to interpretuję). Bo poza małym rozmiarem stosu, moim drugim przypuszczeniem było, że SP nie zawiera wartości 64, co może się zdarzyć, jeśli brać stacktop jako offset od początku niewłaściwego segmentu. >>> segment stack STACK >>> resb 64 >>> stacktop: > >> Pewnie wyskakuje stack fault z powodu za małego stosu. Zacznij od >> 400h. > > Ooo... dzięki. Wiedziałem, że jest błąd, tylko go nie widzę :-) > > Program pod DOS-em wywalał wyjątek, pod Win98 wysypywał sesję DOSa. Pod > XP-kiem o dziwo nie było żadnego błędu, a "tylko" niestabilność okna > konsoli. Czyli już działa pięknie? Podobny "bajer" miałem, jak testowałem bibliotekę. Jakieś krzaki wychodziły, a po poprawieniu stosu programu testującego do 512 bajtów działało dobrze. -- Pozdrawiam, Bogdan (Linux i FreeDOS) Kurs assemblera x86 (DOS i Linuks): http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 Prawdziwy, bezpieczny komunikator: www.JabberPL.org
Re: [lame] 13h - nie działa?
Author: Wiktor S.
Date: Fri, 09 Jun 2006 15:00
Date: Fri, 09 Jun 2006 15:00
10 lines
1364 bytes
1364 bytes
> Czyli już działa pięknie? > Podobny "bajer" miałem, jak testowałem bibliotekę. Jakieś krzaki > wychodziły, a po poprawieniu stosu programu testującego do 512 bajtów > działało dobrze. Działać program wciąż nie działa :-) ale problem z wyjątkami to był rzeczywiście zbyt mały stos. -- Azarien
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads