Article View: pl.comp.lang.asm
Article #1765Re: Metody programowania
From: Bogdan (bogdro)
Date: Fri, 28 Mar 2008 17:10
Date: Fri, 28 Mar 2008 17:10
28 lines
2864 bytes
2864 bytes
Korsarz Jej Królewskiej Mości I Rp. Królowej „Marysienki” pisze: > Michal Schulz zapisał: >> Bo to jest wlasnie assembler. Jesli oczekujesz "wyzszej warstwy kodu" to >> zainteresuj sie C/C++. O zgrozo (a moze na szczescie ;)) C jest obecnie >> uwazany za taki assembler wysokiego poziomu :) > No wlasnie tak sie sklada, ze znam C, i uwazam, ze to jest asembler wysokiego poziomu, ale tylko i wylacznie wtedy, gdy wylaczy sie w kompilatorze C optymalizator (czego czesto tak naprawde nie da sie wylaczyc do konca, mimo ze dokumentacja mowi, ze sie da). Ale C opiera sie na troche innej koncepcji niz jezyk asemblera, poniewaz wprowadza wlasne instrukcje blokowe, ktore sa nieobecne w jezyku maszynowym (chociaz mozna uznac, ze ograniczenia blokow —takie jak instrukcje warunkowego skoku— sa obecne). A mnie chodzi o cos takiego, ze kiedy chce napisac na przyklad procedure ‘inline’ to moge ja wywolac tylko jawnie jako odrebna procedure albo bawic sie z makropoleceniami, i takich przykladow moglbym poszukac wiecej. To nie jest ani C, ani zwykly asembler. Prawdą jest, że instrukcji blokowych nie ma w języku procesora, są tylko skoki warunkowe. Jeśli Ci ich brak, używaj MASMa/FASMa, które umożliwiają pisanie takich wyrażeń: .if eax > 0 .else .endif (lub podobnych). O ile w FASMie są to makra, to w MASMie już nie, tylko elementy składni kompilatora. W C nie ma procedur "inline". Zaś same te procedury różnią się w większości przypadków od makropoleceń tylko sprawdzaniem typu. Jak piszesz w C++ procedurę "inline", to jest ona "wklejana" przez kompilator w miejsce wywołania, dokładnie jak makro w asemblerze. -- Pozdrawiam/Regards - Bogdan (GNU/Linux & FreeDOS) Kurs asemblera x86 (DOS, GNU/Linux):http://rudy.mif.pg.gda.pl/~bogdro Grupy dyskusyjne o asm: pl.comp.lang.asm alt.pl.asm alt.pl.asm.win32 www.JabberPL.org www.TorProject.org Soft (EN): miniurl.pl/bogdro-soft
Technical Details
Message-ID:
<fsj8qq$qdo$4@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mailReferences:
<fsbkje$2da$1@news.mixmin.net> <fsicfv$7ad$1@news.mixmin.net> <fsiduo$jri$1@news.onet.pl> <fsied5$8ja$1@news.mixmin.net>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@poczta.gazeta.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Metody programowania Date: Fri, 28 Mar 2008 18:10:49 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 28 Message-ID: <fsj8qq$qdo$4@inews.gazeta.pl> References: <fsbkje$2da$1@news.mixmin.net> <fsicfv$7ad$1@news.mixmin.net> <fsiduo$jri$1@news.onet.pl> <fsied5$8ja$1@news.mixmin.net> NNTP-Posting-Host: 66.230.230.230 Mime-Version: 1.0 X-Trace: inews.gazeta.pl 1206724255 27064 66.230.230.230 (28 Mar 2008 17:10:55 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Fri, 28 Mar 2008 17:10:55 +0000 (UTC) X-User: bog.d In-Reply-To: <fsied5$8ja$1@news.mixmin.net> User-Agent: Thunderbird 2.0.0.12 (X11/20080213) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit