Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názory k článku
Učíme trpaslíky počítat

Boris Porosin
3. 4. 2008 9:46 Nový

skvele

celé vlákno
skvely clanocek, hlavne obrazky su perfektne urobene.
michal
michal (neregistrovaný)
3. 4. 2008 10:49 Nový

luxusni

celé vlákno
luxusni clanek jen tak dal
czario
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.
Pavel Tišnovský aura:98
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.
Pavel Tišnovský aura:98
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
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ý).
czario
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
Pavel Tišnovský aura:98
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.
pravda
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.
Ghaan aura:100
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/
Clock
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
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
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
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
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.).
Hrady
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.
Zasílat nově přidané příspěvky e-mailem