Názory k článku
Učíme trpaslíky počítat
czario (neregistrovaný)
3. 4. 2008 12:07
Nový
Odčítání
celé vlákno
U toho odčítání, asi jsem to nějak přehlédl. Když mám SUB A,B tak v A,B jsou kladná nebo záporná čísla. Jak procesor pozná, že načetl a pracuje s kladným číslem 60 000 nebo s nějakým záporným ekvivalemtem -30tisíc ?
Když mam v registrech kladná, tak je naliji do pomocných registrů v ALU. Tam se musí druhý registr nejprve převést do záporného čísla a pak se použije instrukce ADD. Nebo jak to tam přesně funguje? A co když v registru mám záporné a odečítám záporné číslo, takže vlastně sčítám A-(-B).
Pokud se při SUB převátí na záporné číslo, tak musí existovat i instrukce pro negaci.
Jak to tedy přesně je? Dík.
Když mam v registrech kladná, tak je naliji do pomocných registrů v ALU. Tam se musí druhý registr nejprve převést do záporného čísla a pak se použije instrukce ADD. Nebo jak to tam přesně funguje? A co když v registru mám záporné a odečítám záporné číslo, takže vlastně sčítám A-(-B).
Pokud se při SUB převátí na záporné číslo, tak musí existovat i instrukce pro negaci.
Jak to tedy přesně je? Dík.
3. 4. 2008 12:22
Nový
Re: Odčítání
celé vlákno
Ve dvojkovém doplňku je v podstatě jedno, jestli se jedná o kladná nebo záporná čísla. Prostě mikroprocesor vždycky pracuje s plnými šestnácti bity a ono se to po součtu či rozdílu samo srovná - vygeneruje se výsledek, Carry a Zero flagy atd. Příklad je uveden například na http://cs.wikipedia.org/wiki/Dvojkov%C3%BD_dopln%C4%9Bk
Právě toto chování je největší výhodou dvojkového doplňku.
Právě toto chování je největší výhodou dvojkového doplňku.
3. 4. 2008 12:25
Nový
Re: Odčítání
celé vlákno
Ještě doplním, že mikroprocesor (ten náš učební) má instrukci COM, což je bitová negace. Doplněk se získá přičtením jedničky, což však ve sčítačce zařídí vhodné nastavení Carry na vstupu.
Sten (neregistrovaný)
3. 4. 2008 16:59
Nový
Re: Odčítání
celé vlákno
Procesoru je to jedno, výsledek je vždy stejný, tohle si řeší aplikace sama. Jen se musí dát pozor na to, že obě hodnoty musí být buď se znaménkem nebo bez, nelze je míchat.
Na některých architekturách (např. x86) existuje ještě tzv. sign (nebo negative) flag, který ale neurčuje, jestli se počítá se znaménkem nebo bez, ale jestli poslední matematická operace skončila tak, že ve výsledku byl nastaven nejvyšší bit (což u znaménkového typu znamená, že byl záporný).
Na některých architekturách (např. x86) existuje ještě tzv. sign (nebo negative) flag, který ale neurčuje, jestli se počítá se znaménkem nebo bez, ale jestli poslední matematická operace skončila tak, že ve výsledku byl nastaven nejvyšší bit (což u znaménkového typu znamená, že byl záporný).
czario (neregistrovaný)
4. 4. 2008 9:32
Nový
Re: Odčítání
celé vlákno
aha, takže pro sčítání a odčítání se používají různé obvody? Já myslel, že právě jeden, takže se všechno sčítá a odčítání se řeší tim doplňkem (a ten by se řešil před obvodem sčítání, že by házel číslo do doplňku a zpět..).. Ale to je asi blbost.. Takže pro každou operaci je vlastní obvod? Nebo jak to přesně funguje? (dvojkovej doplněk znám, zajímá mě jak to je řešené hardwarově)
Moje očekávání od tohoto seriálu je, aby po dokončení jsme byli schopni si sestavit vlastní počítač (schopni, ne že budeme). :-D
Moje očekávání od tohoto seriálu je, aby po dokončení jsme byli schopni si sestavit vlastní počítač (schopni, ne že budeme). :-D
4. 4. 2008 10:54
Nový
Re: Odčítání
celé vlákno
Vetsinou ne, pro scitani i odcitani se pouziva scitacka, ale druhy parametr je negovany (negator je tesne pred scitackou) a k prvnimu parametru je prictena jednicka (je jedno k jakemu, resi se to pres Carry vstup, ktery do scitacky musi chodit kvuli ADC a SBC/SBB).
Ale hlavni je, ze uz nezalezi na tom, jake ty parametry maji znamenka, ci jestli jsou signed nebo unsigned - to se vubec neresi, proste se pri odecitani druhy parametr zneguje a nekam se pricte jednicka.
Ja ty scitacky jeste rozvedu.
Ale hlavni je, ze uz nezalezi na tom, jake ty parametry maji znamenka, ci jestli jsou signed nebo unsigned - to se vubec neresi, proste se pri odecitani druhy parametr zneguje a nekam se pricte jednicka.
Ja ty scitacky jeste rozvedu.
pravda (neregistrovaný)
4. 4. 2008 0:30
Nový
Tolik prace a pritom je to takova blbost, co?
celé vlákno
Jsem zvedavej, kde se pan Tisnovskej zastavi. Ukaze treba, jak funguje takova scitacka/odcitacka (zde obecne jako cast ALU) nebo to vezme povrchneji jako u radicu? Necham se prekvapit.
4. 4. 2008 9:47
Nový
Re: Tolik prace a pritom je to takova blbost, co?
celé vlákno
Ako funguje binárna sčítačka ukazuje video/obrázky tu:
http://hackedgadgets.com/2007/06/28/binary-marble-adding-machine/
http://hackedgadgets.com/2007/06/28/binary-marble-adding-machine/
Clock (neregistrovaný)
6. 4. 2008 9:44
Nový
4004?
celé vlákno
Proc je na tom udajnem Inetl 4004 natisteno 8104 a zadne 4004? Na fotce z Wikipedie 4004 je: http://en.wikipedia.org/wiki/Image:Intel_4004.jpg
Pavel Tisnovsky (neregistrovaný)
6. 4. 2008 23:00
Nový
Re: 4004?
celé vlákno
To neni originalni Intel 4004 - jeho fotku uz jsem v jednom clanku pouzil, dalsi me Intel nedovolil publikovat :-( - ale cip delany v jine fabrice. Oznaceni je ruzne, dokonce jsem nekde videl 8037 a porad je to stara dobra 4004, akorat v plastu a ne v keramice.
Pavel Tisnovsky (neregistrovaný)
6. 4. 2008 23:08
Nový
Re: 4004?
celé vlákno
Jeste par fotek: http://www.cpu-galaxy.at/CPU/Intel CPU/4001-4003/MCS-4 Section.htm
Ho (neregistrovaný)
6. 4. 2008 10:49
Nový
Carry flag Zero flag
celé vlákno
Chtel bych se zeptat, na asi jasnou vec. Oba flagy maji v registru priznaku svou bunku? Tj pamatuje si oba naraz? Asi jo, ze? Je to takova dvoubitova pamet nebo je ten registr priznaku jeste na neco jineho? Diky za odpoved. Zatim serial stiham vstrebat, ale u toho jsem se zarazil.
Pavel Tisnovsky (neregistrovaný)
6. 4. 2008 23:05
Nový
Re: Carry flag Zero flag
celé vlákno
Ano, v tomto mikroprocesoru je registr priznaku pouze dvoubitovy, jeden bit je vyhrazen pro carry flag a druhy pro zero flag. V podstate je to dvoubitova pamet (jako vsechny dalsi registry), ovsem se specialnim vyznamem.
Jine mikroprocesory vetsinou obsahuji i vice priznaku (N-zaporne cislo, V-overflow) a nekdy se do priznakoveho registru pridavaji i ridici bity (I-povoleni preruseni, D-nastaveni BCD aritmetiky atd.).
Jine mikroprocesory vetsinou obsahuji i vice priznaku (N-zaporne cislo, V-overflow) a nekdy se do priznakoveho registru pridavaji i ridici bity (I-povoleni preruseni, D-nastaveni BCD aritmetiky atd.).
Hrady (neregistrovaný)
27. 6. 2008 12:54
Nový
Moc pěkný článek
celé vlákno
Opravdu moc pěkně zpracovaný článek, konečně na něm chápu principy, které mi jiné weby nedokázali vysvětlit. Děkuji.

