5. Přednáška: Aritmetické operace v přímém a doplňkovém kódu
Opakování kódů pro zobrazení čísel se znaménkem, pevná a pohyblivá řádová čárka, realizace aritmetických operací (sčítání, odčítání, posuvy).
Prezentace (slajdy)
Video
- Nahrávka YouTube YT zde
Otázky z přednášky, které se mohou objevit v testech:
- Zaokrouhlete na 4 místa za řádovou čárkou dvojková čísla: 0,011001 a 110,01010 a) nahoru, b) dolů.
- Co je to výpůjčka, jaký má vztah k přenosu a kdy se používá?
- Nakreslete schema pro detekci overflow pro doplňkový kód.
- Jak poznáte nesprávný výsledek při sčítání čísel v přímém kódu?
- Jak poznáte nesprávný výsledek při odčítání čísel v přímém kódu?
- Jak realizujete odčítání pomocí sčítačky pro čísla nezáporná a jak pro čísla v doplňkovém kódu? Uvažujte i detekci nesprávného výsledku.
- Co musíte udělat při odčítání většího číslo (větší absolutní hodnoty čísla v přímém kódu) od menšího, abyste získali správný výsledek?
- Napište možné logické výrazy (formule) pro overflow v MNDF pro 8 bitovou sčítačku v doplňkovém kódu (nejnižší bity sčítanců jsou a0 a b0).
- Nakreslete schéma 4 bitové sčítačky odčítačky v doplňkovém kódu včetně detekce přeplnění (=overflow). Použijte hradla AND, OR, XOR, negace a hotové bloky jednobitové sčítačky. Pojmenujte všechny vstupy a výstupy a určete jejich počet.
- Napište výraz pro určení situace, kdy přenos v bloku sčítačky vzniká (G) a kdy se šíří dál (P).
- Napište výraz pro přenos z druhého bloku sčítačky, jestliže jsou k dispozici bloky s výstupy S (součet), P (přenos se přes blok šíří) a G (přenos v bloku vzniká). Do prvního bloku vstupuje přenos zvenku, ale druhý blok tento vstup nemá.
- Sečtěte dvě osmibitová celá čísla zapsaná šestnáctkově za předpokladu, že jsou zapsána v přímém kódu nebo doplňkovém kódu. Výsledek zapište také šestnáctkově a doplňte informace o hodnotách znamének sčítanců a výsledku a o zda je výsledek správně (hodnoty carry nebo overflow).
- Zapište postup (algoritmus) získání správného výsledku pro čísla 6B+C7 za předpokladu, že procesor sčítá dvě čísla v přímém kódu, a to vždy A+B kdy výsledek ukládá do A.