Article View: pl.comp.lang.asm
Article #505Re: Z ciekawosci...
From: Matuzalem
Date: Thu, 10 Aug 2006 12:55
Date: Thu, 10 Aug 2006 12:55
105 lines
3635 bytes
3635 bytes
Wiktor S. napisal(a): > > Dobra wiem o co chodzi, tylko bylem ciekaw jak to ktos inny widzi. > > Jeszcze jedna sprawa: > > > > _TEXT segment > > start: > > > > main proc > > main endp > > > > _TEXT ends > > > > end mian > > > Czemu TASM pozwala cos takiego skompilowac? (MASM nawet nie zaczyna) > > Powinien sie wywalic na "mian", bo nie ma takiej etykiety. > Zakladajac, ze to literówka i tam jest "main", to dlaczego nie? Kod jest jak > najbardziej prawidlowy. > > > _TEXT segment > > poczatek segmentu _TEXT > > > start: > > etykieta start > > > main proc > > poczatek procedury "main", co wiaze sie m.in. z ustawieniem etykiety "main" > w tym miejscu (start i main staja sie równowazne) > > > main endp > > koniec procedury main > > > _TEXT ends > > koniec segmentu _TEXT > > > end main > > koniec programu, punkt wejscia: etykieta (procedura) main. > > -- > Azarien Jednak nie powienie tego kompilowac (tak jak MASM) z prostej przyczyny: main nie jest etykieta "poczatkowa" i z tego powodu program wiesza sie zaraz po uruchomieniu. Gdyby bylo tak jak mówisz, to, to tez powinno byc dobrze: ;------------------------------------------ _TEXT segment start: main proc main endp _TEXT ends end moze_koniec ;------------------------------------------ A nie jest. Definiujmy sobie byle co i pszmy odwolanie na koncu 'end cos'. Taki przykladzik: ;------------------------------------------ _TEXT segment start: mov ax, 0 mov bx, 0 jmp short dalej ;jmps mov dx, 0 xor ax, ax dalej: xor bx,bx add ax, 2 main proc main endp _TEXT ends end dalej ;------------------------------------------ W TASM kompiluje sie idealnie co wiecej program dziala, ale czy poprawnie? odp. nie Czemu? Wystarczy zdebugowac to cudenko i co sie okazuje? Program rozpoczyna swoje dzialanie od etykiety "dalej:", a wszystko to co jest "przed" etyieta, wogule nie jest wykonane. Jedynie gdy dodamy (TASM) LOCALS i '@@' to kompilator wypluwa ze etykieta 'dalej' jest mu nie znana - poprawnie. MASM tego wogule nie zaczyna kompilowac tylko pisze, ze jest nieznana etykieta (dlatego ze 'problem' globalnych i lokalnych etykiet/danych jest tam wykonywany automatycznie). Pozdrawiam
Technical Details
Message-ID:
<1155214554.774457.206850@m79g2000cwm.googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!m79g2000cwm.googlegroups.com!not-for-mailReferences:
<1154992159.298894.75050@75g2000cwc.googlegroups.com> <eb8odv$t18$1@news.onet.pl> <1155028585.369046.93050@m79g2000cwm.googlegroups.com> <ebc9c1$67a$1@news.onet.pl> <1155119601.053155.206900@i42g2000cwa.googlegroups.com> <ebf91r$3bd$1@news.onet.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!news.germany.com!postnews.google.com!m79g2000cwm.googlegroups.com!not-for-mail From: "Matuzalem" <codemaster_@op.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Z ciekawosci... Date: 10 Aug 2006 05:55:54 -0700 Organization: http://groups.google.com Lines: 108 Message-ID: <1155214554.774457.206850@m79g2000cwm.googlegroups.com> References: <1154992159.298894.75050@75g2000cwc.googlegroups.com> <eb8odv$t18$1@news.onet.pl> <1155028585.369046.93050@m79g2000cwm.googlegroups.com> <ebc9c1$67a$1@news.onet.pl> <1155119601.053155.206900@i42g2000cwa.googlegroups.com> <ebf91r$3bd$1@news.onet.pl> NNTP-Posting-Host: 212.244.115.33 Mime-Version: 1.0 X-Trace: posting.google.com 1155214560 20189 127.0.0.1 (10 Aug 2006 12:56:00 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Thu, 10 Aug 2006 12:56:00 +0000 (UTC) In-Reply-To: <ebf91r$3bd$1@news.onet.pl> User-Agent: G2/0.2 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; pl; rv:1.8.0.6) Gecko/20060728 Firefox/1.5.0.6,gzip(gfe),gzip(gfe) Complaints-To: groups-abuse@google.com Injection-Info: m79g2000cwm.googlegroups.com; posting-host=212.244.115.33; posting-account=HFFdEQ0AAACI08bdAnMScVqwVEj2ucOg Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit