🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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?
#318
Author: Wiktor S.
Date: Thu, 08 Jun 2006 10:10
50 lines
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?
#319
Author: Józek Sztacheta
Date: Thu, 08 Jun 2006 12:00
9 lines
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?
#320
Author: Bogdan (bogdro)
Date: Thu, 08 Jun 2006 18:07
29 lines
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?
#321
Author: Wiktor S.
Date: Fri, 09 Jun 2006 08:18
23 lines
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?
#322
Author: Bogdan (bogdro)
Date: Fri, 09 Jun 2006 11:47
43 lines
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?
#323
Author: Wiktor S.
Date: Fri, 09 Jun 2006 15:00
10 lines
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