Article View: pl.comp.lang.asm
Article #561Re: Neg i carry
From: Analog
Date: Tue, 29 Aug 2006 14:59
Date: Tue, 29 Aug 2006 14:59
32 lines
3330 bytes
3330 bytes
Matuzalem: > Tak NEG to jest "negowanie" wyrażenia. Ale to co zostało napisane: > 0 - R > Nie tłumaczy czemu jest ustawione CARRY. Tu chodzi o bity, jak > wszędzie, zresztą już pisałem :] Jak nie tlumaczy ? Przeciez chyba logiczne jest ze procesor nie ma osobnej jednostki do "negowania" tlyko zwykle wykorzystuje ALU. NEG R to dla niego przeslanie zera do reg ALU (lub wyzerowanie w inny sposob) i odejcie zawartosci wskazanego rejestru. Flagi ustawia tak jak przy odejmowaniu, bo to de facto _jest_ odejmowanie (a ktore flagi i jak sa ustawiane podczas odejmowania - to chyba jest jasne). Taka jest geneza tego rozkazu. Skrocona/szybsza wersja sub 0,R . Tak bylo kiedys i pewnie podobnie jest dzis, mimo stosowania mikrokodow i inych technik dazy sie do tego by zachowana byla kompatybilnosc i rozkazy dzialaly podobnie. Wszystko oczywiscie zalezy od typu procesora, i tak: z80/IA32/68k/ARM dzialaja w ten sposob, natomiast cala rodzina SuperH (renesans) nie zmienia carry(T) przy NEG. Rozkazy cpu nie sa robione ot, tak dla przyjemnosci. Sa zwykle konsekwencja zastosowanych rozwiazan wewnatrz cpu. Jesli ktos ich nie zna lub nie chce znac - niech poprzestanie na wiedzy ze dany rozkaz ustawia odpowiednio flagi. Jak chce wnikac glebiej - tzreba zobaczyc jak i dalczego to dziala. Niestety, poprzez pewne uproszczenia i bledy nie wszystko jest logiczne, ale wszystko jest przewidywalne. Dobrym rozwiazaniem jest przeanalizowanie kodu zrodlowego (dzialajacego)emulatora/symulatora cpu. Czasami pare spraw zobaczymy w zupelnie innym swietle. Caly problem jest podobny do "paramedycznego" pytania : "Dlaczego jak wbijam gwozdzia nad lewym uchem to paralizuje mi prawa reke a nie lewa ?" Nie ma sensu odpowiadac ze gwozdz wydluza sie w czaszce i uderza znienacka od prawej, tylko niestety trzeba liznac nuerologii/anatomii :) -- TS
Technical Details
Message-ID:
<ed1kop$7io$1@atlantis.news.tpi.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mailReferences:
<eck20j$ic8$1@nemesis.news.tpi.pl> <44edc4aa$0$22595$f69f905@mamut2.aster.pl> <1156437936.487681.4190@h48g2000cwc.googlegroups.com> <ecldfh$ghi$1@news.onet.pl> <ecm5jo$4v4$1@atlantis.news.tpi.pl> <44ee98cd$0$22590$f69f905@mamut2.aster.pl> <1156529430.268992.194490@h48g2000cwc.googlegroups.com> <ecug2k$9lq$1@achot.icm.edu.pl> <1156761266.681776.234080@75g2000cwc.googlegroups.com> <ecui8n$d9r$1@news.onet.pl> <1156764858.827486.274910@75g2000cwc.googlegroups.com> <ed10op$khs$1@news.onet.pl> <1156846922.369956.81380@i3g2000cwc.googlegroups.com>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!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: Analog <analog@wywal.to.op.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Neg i carry Date: Tue, 29 Aug 2006 16:59:09 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 32 Message-ID: <ed1kop$7io$1@atlantis.news.tpi.pl> References: <eck20j$ic8$1@nemesis.news.tpi.pl> <44edc4aa$0$22595$f69f905@mamut2.aster.pl> <1156437936.487681.4190@h48g2000cwc.googlegroups.com> <ecldfh$ghi$1@news.onet.pl> <ecm5jo$4v4$1@atlantis.news.tpi.pl> <44ee98cd$0$22590$f69f905@mamut2.aster.pl> <1156529430.268992.194490@h48g2000cwc.googlegroups.com> <ecug2k$9lq$1@achot.icm.edu.pl> <1156761266.681776.234080@75g2000cwc.googlegroups.com> <ecui8n$d9r$1@news.onet.pl> <1156764858.827486.274910@75g2000cwc.googlegroups.com> <ed10op$khs$1@news.onet.pl> <1156846922.369956.81380@i3g2000cwc.googlegroups.com> NNTP-Posting-Host: cbe154.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: atlantis.news.tpi.pl 1156863577 7768 83.30.102.154 (29 Aug 2006 14:59:37 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Tue, 29 Aug 2006 14:59:37 +0000 (UTC) User-Agent: Mozilla Thunderbird 1.0.6 (Windows/20050716) X-Accept-Language: pl, en-us, en In-Reply-To: <1156846922.369956.81380@i3g2000cwc.googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit