Article View: pl.comp.lang.asm
Article #347Re: Flagi
From: Bogdan (bogdro)
Date: Fri, 16 Jun 2006 15:47
Date: Fri, 16 Jun 2006 15:47
45 lines
2735 bytes
2735 bytes
Johnny napisał(a): > Nie mam chyba szczęścia do opisu flag - mam problem z dwoma: carry i > overflow. Czytam, że carry odnosi się do operacji arytmetycznych bez > znaku a overflow do operacji ze znakiem. > > Wprowadzam coś takiego: > sub ah,80 > i ustawiają się oba znaczniki naraz. > > Czy ktoś mógłby (najlepiej na przykładach) wytłumaczyć kiedy każdy z > tych znaczników się zmienia; co to znaczy operacja arytmetyczna ze > znakiem i bez, czy to oznacza że najwyższy bit jednego z argumentów jest > ustawiony? Działając na liczbach 8-bitowych: -120 - 30 = -150 < -128 => ustawi OF 120 + 20 = 140 > 127 => ustawi OF 250 + 20 = 270 > 255 => ustawi CF 30 - 40 = -10 => ustawi CF Jeśli działanie "przebija" od dołu -128 lub od góry 127, ustawiana jest OF. Jeśli działanie "przebija" od dołu 0 lub od góry 255, ustawiana jest CF. Tzw. "ze znakiem" czy "bez znaku" to nie tyle sama operacja, co interpretacja jej wyników. Liczby 8-bitowe traktowane jako bez znaku to 0, 1, ..., 255, a ze znakiem: -128, -127, ..., +127. Jeśli pierwszy mój przykład traktować jako bez znaku, to mamy: +135 - 30 = 105. Nie nastąpiło przebicie 255 ani 0, więc CF=0. W drugim przykładzie: 120+20 = 140, też nie pzrebija, też CF=0. W trzecim, traktowanym jak ze znakiem: -6 + 20 = +14, nie przebija -128 ani +127, więc OF=0. W czwartym: 30-40=-10, też nie przebija, też OF=0. Działanie "127+200" ustawi obie flagi (wynik przebija i 127 i 255 w górę), podobnie "1-200" (wynik przebija i -128 i 0 w dół). -- 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
Technical Details
Message-ID:
<e6ujvk$jpb$1@nemesis.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:
<e6ubo4$4c7$1@nemesis.news.tpi.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!newsfeed.tpinternet.pl!atlantis.news.tpi.pl!news.tpi.pl!not-for-mail From: "Bogdan (bogdro)" <bogdan@bogdan.pl> Newsgroups: pl.comp.lang.asm Subject: Re: Flagi Date: Fri, 16 Jun 2006 17:47:57 +0200 Organization: tp.internet - http://www.tpi.pl/ Lines: 45 Message-ID: <e6ujvk$jpb$1@nemesis.news.tpi.pl> References: <e6ubo4$4c7$1@nemesis.news.tpi.pl> NNTP-Posting-Host: actw241.neoplus.adsl.tpnet.pl Mime-Version: 1.0 X-Trace: nemesis.news.tpi.pl 1150473012 20267 83.11.76.241 (16 Jun 2006 15:50:12 GMT) X-Complaints-To: usenet@tpi.pl NNTP-Posting-Date: Fri, 16 Jun 2006 15:50:12 +0000 (UTC) User-Agent: Thunderbird 1.5.0.4 (X11/20060516) In-Reply-To: <e6ubo4$4c7$1@nemesis.news.tpi.pl> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit