🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.asm
4 messages
4 total messages Started by Johnny Tue, 04 Jul 2006 13:11
Debug
#358
Author: Johnny
Date: Tue, 04 Jul 2006 13:11
45 lines
1827 bytes
Witam

Mam prosty kod ćwiczenia, który zachowuje się różnie w zależności od
tego jak jest zasemblowany i wywołany:

title
.model small
.stack 100h
.code
ile equ 10
extrn Writeint:proc,Writechar:proc
main proc
mov ax,@data
mov ds,ax
mov cx,ile
mov bx,10
L2:
mov ax,[array1+di]
add di,2
call Writeint
mov al,' '
call Writechar
loop L2
mov ax,4C00h
int 21h
main endp
.data
array1 dw ile dup(0)
end main

Jeżeli zasembluję plik poleceniem: ml 4_15.asm /link c:\irvine.lib
a następnie wywołam go: 4_15 to na wyjściu mam 10 zer - czyli dobrze.

To samo uzyskam poprzez: ml /Zi /Fl /Fm %1.asm /link C:\irvine.lib i
wywołanie w codeview - na wyjściu mam 10 zer. Ale jeśli w tym drugim
przypadku wywołam program bezpośrednio w wierszu poleceń to mam na
wyjściu liczby: 289 0 25355 28271 28531 25964 16686 19795 0 1

Przypuszczam, że chodzi o elementy debugujące które wchodzą w drugim
przypadku do execa nie potrafię jednak określić tych współzależności aby
się ich pozbyć.

-- 
Pozdrawiam
Johnny
Re: Debug
#359
Author: Johnny
Date: Tue, 04 Jul 2006 13:16
3 lines
942 bytes
Nie wiem czy dobrze myślę ale powinienem chyba zerować di na początku.

J.
Re: Debug
#360
Author: Bogdan (bogdro)
Date: Tue, 04 Jul 2006 13:53
15 lines
1582 bytes
Johnny napisał(a):
> Nie wiem czy dobrze myślę ale powinienem chyba zerować di na początku.

 Powinieneś. No i problem się sam zdebugował :), choć nie potrafię
powiedzieć, jak sposób kompilacji na to wpływa, bo opcje te są mi
nieznane.

 W oczy rzuca się jeszcze niepotrzebnie używany BX (chyba że niejawnie
używany przez procedury zewnętrzne) i skromny stosik.

-- 
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: Debug
#361
Author: Johnny
Date: Tue, 04 Jul 2006 13:59
16 lines
1499 bytes
Bogdan (bogdro) napisał(a):
> Johnny napisał(a):
>> Nie wiem czy dobrze myślę ale powinienem chyba zerować di na początku.
> 
>  Powinieneś. No i problem się sam zdebugował :), choć nie potrafię
> powiedzieć, jak sposób kompilacji na to wpływa, bo opcje te są mi
> nieznane.
> 
>  W oczy rzuca się jeszcze niepotrzebnie używany BX (chyba że niejawnie
> używany przez procedury zewnętrzne) i skromny stosik.
> 
Stos skromny bo to jest ćwiczenie z książki. BX jest używany przez
procedurę zewnętrzną.
Dzięki za pomoc.

J.
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