|
|
(56 medziľahlých úprav od jedného ďalšieho používateľa nie je zobrazených) |
Riadok 1: |
Riadok 1: |
| == Základné aritmeticko-logické operácie ==
| |
|
| |
|
|
| |
| == Elementárne aritmeticko-logické operácie ==
| |
|
| |
| Logické operácie sa uskutočňujú nad pamäťovými miestami obyčajne s registrami CPU, pričom operácia sa vykonávajú so všetkými dvojicami bitov (bitmi) pamäťových miest.
| |
| Pamäťové miesta (slová) môžu byť jedno a viacbajtové. Bity v tychto slovách označujeme indexom, ktorého počiatočná hodnota je 0 a index narastá zprava doľava :
| |
|
| |
| Označovanie bitov v 8-bitovom slove (v jednobajtovom slove)
| |
|
| |
| Označovanie bitov v 16-bitovom slove (v dvojbajtovom slove)
| |
|
| |
| LSB – Least Significant Bit ( bit s najmenšou váhou)
| |
| MSB – Most Significant Bit ( bit s najväčšou váhou)
| |
|
| |
|
| |
|
| |
| Operácie delíme ich na
| |
| - unárne – vykonávajú sa s jedným pamäťovým miestom
| |
| - binárne– vykonávajú sa s dvoma pamäťovými miestami
| |
| Medzi elementárne operácie, ktoré vykonávajú takmer všetky CPU sú :
| |
| * Negácia ('''NOT''')
| |
| Patrí medzi unárne operácie:
| |
| Pravidlá pre jednobitové operandy sú:
| |
| Pre viacbitové ( budeme uvádzať príklady pre 8-bitové operandy ( jeden bajt)
| |
|
| |
| * logický súčet ('''OR''')
| |
| Patrí medzi binárne operácie:
| |
| Pravidlá pre jednobitové operandy sú:
| |
|
| |
| Pre jednobajtové operandy:
| |
|
| |
| Použitie: Vnútenie logickej jednotky do ľubovolnej pozície v byte, v bytoch tzv. maskou.
| |
| Napr.: Vykonaním logického súčtu ľubovolného bytu s maskou, ktorá je reprezentovaná bytom s obsahom
| |
|
| |
| bude v uvedenom byte v bitoch s indexom 7,6 a 2 vždy logická jednotka bez ohľadu na predchádzajúci obsah bytu.
| |
|
| |
| kde X je obsah bitu pred vykonaním operácie.
| |
|
| |
|
| |
|
| |
| * logický súčin ('''AND''')
| |
| Patrí medzi binárne operácie.
| |
| Pravidlá pre jednobitové operandy sú:
| |
|
| |
| Pre jednobajtové operandy:
| |
|
| |
| Použitie: Vnútenie logickej nuly do ľubovolnej pozície v byte, v bytoch tzv. maskou.
| |
| Napr.: Vykonaním logického súčtu ľubovolného bytu s maskou, ktorá je reprezentovaná bytom s obsahom
| |
|
| |
|
| |
| bude v uvedenom byte v bitoch s indexom 7,6 a 2 vždy logická nula bez ohľadu na predchádzajúci obsah bytu.
| |
|
| |
| Pomocou masky môžeme testovať logickú hodnotu vybraného bitu, bitov, bajtu a bajtov.
| |
| Použitím, napríklad, masky
| |
|
| |
| po vykonaní logického súčinu s vybraným bajtom, bude výsledok operácie nulový, ak v bite s indexom 2 bola logická nula, a naopak nenulový, ako v danom bite bola logická jednotka.
| |
| Nulový výsledok znamená, že bajt (bajty), do ktorých sa zapíše výsledok aritmeticko-logickej operácie obsahuje vo všetkých bitoch binárnu hodnotu nula.
| |
|
| |
|
| |
|
| |
|
| |
| * neekvivalencia ('''XOR''')
| |
| Patrí medzi binárne operácie.
| |
| Nazýva sa tiež exluzívny súčet, súčet modulo 2, EOR.
| |
| Pravidlá pre jednobitové operandy sú:
| |
|
| |
| Pre jednobajtové operandy:
| |
|
| |
| Použitie: Inverovanie logickej hodnoty v ľubovolnej pozícii bajtu ( bajtoch) maskou.
| |
| Napríklad. Vykonaním logického súčtu ľubovolného bytu s maskou, ktorá je reprezentovaná bytom s obsahom
| |
|
| |
| bude výsledok operácie
| |
|
| |
|
| |
|
| |
|
| |
| == Posuny a rotácie ==
| |
|
| |
| Medzi najzákladnejšie operácie ALU patria posuny a rotácie obsahov pamäťových miest. Patria medzi unárne operátory. Operácie sa vykonávajú posúvaním obsahov bitov doľava, alebo doprava, prípadne n-tica pamäťových bitov sa doplní formálne o pomocný bit na (n+1) –ticu ( pomocným bitom bývajú príznakové (stavové) bity CPU, napr. Carry bit)
| |
|
| |
| '''Rotácie'''
| |
| Rotácia obsahu pamäťového miesta doprava
| |
|
| |
| Rotácia obsahu pamäťového miesta doľava
| |
|
| |
| Posuny obsahu pamaťového miesta môžu byť:
| |
| * logické
| |
| * aritmetické
| |
|
| |
| '''Logické posuny'''
| |
| Logický posun obsahu pamäťového miesta doprava
| |
|
| |
| Logický posun obsahu pamäťového miesta doľava
| |
|
| |
| '''Aritmetické posuny'''
| |
| Aritmetický posun obsahu pamäťového miesta doprava
| |
|
| |
| ale pre bajt
| |
|
| |
| Aritmetický posun obsahu pamäťového miesta doľava
| |
|
| |
| ale pre bajt
| |
|
| |
|
| |
| Použitie :
| |
| * cyklické testovanie obsahu bitov
| |
| * vytváranie slov pri kódovaní
| |
| * arimetické posuny
| |
| ** doprava
| |
| – je celočíselným delením číslom 2
| |
| – pri n posunoch ide o celočíselné delenie číslom 2n
| |