π ALU
ALU (Arithmetic Logic Unit) β ΠΌΠΎΠ΄ΡΠ»Ρ Π² ΡΠΎΡΡΠ°Π²Π΅ CPU, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΠΈΠΉ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ Π±ΠΈΠ½Π°ΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ.
π§ ΠΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ
ALU ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π΄Π²Π° ΠΎΠΏΠ΅ΡΠ°Π½Π΄Π° (ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠ· ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²) ΠΈ ΠΊΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΡ CU.
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π·Π°ΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² ΡΠ΅Π³ΠΈΡΡΡ, ΡΠ»Π°Π³ΠΈ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ².
ΠΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ:
- ΠΡΠΈΡΠΌΠ΅ΡΠΈΠΊΠ°: 
+,β,*,/ - ΠΠΎΠ³ΠΈΠΊΠ°: 
AND,OR,XOR,NOT - Π‘Π΄Π²ΠΈΠ³ΠΈ: 
SHL,SHR,ROL,ROR - Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΡΠ»Π°Π³ΠΎΠ²: zero, carry, sign, overflow ΠΈ Π΄Ρ.
 
βοΈ ΠΠ΄Π΅ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΡΡΡ
| ΠΠΎΠ½ΡΠ΅ΠΊΡΡ | ΠΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ | 
|---|---|
| CPU | Π―Π΄ΡΠΎ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ | 
| FPGA | ΠΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΡ Π±Π»ΠΎΠΊΠΎΠ² | 
| ΠΠΈΠΊΡΠΎΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ | ΠΡΠΎΡΡΡΠ΅ ALU Ρ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ | 
| GPU | ΠΠ΅ΠΊΡΠΎΡΠ½ΡΠ΅ ALU Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² | 
π» ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°
; ΠΡΠΈΠΌΠ΅Ρ Π½Π° x86 (NASM): ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΡΡ
 ΡΠΈΡΠ΅Π»
mov eax, 5
add eax, 7    ; ALU Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β EAX = 12π Π£ΠΏΡΠΎΡΡΠ½Π½Π°Ρ ΡΡΡΡΠΊΡΡΡΠ° ALU
      +---------+    +------------+
A --->|         |    |            |---> Π Π΅Π·ΡΠ»ΡΡΠ°Ρ
      |  ALU    |--> | Π€Π»Π°Π³ΠΈ (ZF, CF, OF...)
B --->|         |    |            |
      +---------+    +------------+
         β
     ΠΠΏΠ΅ΡΠ°ΡΠΈΡ (ΠΊΠΎΠ΄ ΠΈΠ· CU)
β ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°
- 
ΠΡΠΎΡΡΠΎΡΠ° ΠΈ ΡΠΊΠΎΡΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ
 - 
ΠΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ β ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΡΠ°ΠΊΡΠΎΠ²
 - 
Π―Π²Π»ΡΠ΅ΡΡΡ ΡΡΠ½Π΄Π°ΠΌΠ΅Π½ΡΠΎΠΌ Π²ΡΠ΅Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠΉ Π² CPU
 
β ΠΠ΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ
- 
ΠΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
 - 
ΠΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, Π²Π΅ΡΠ²Π»Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΏΠ°ΠΌΡΡΠΈ
 - 
Π‘Π»ΠΎΠΆΠ½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΈΠ³ΠΎΠ½ΠΎΠΌΠ΅ΡΡΠΈΡ) ΡΡΠ΅Π±ΡΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ Π±Π»ΠΎΠΊΠ° β FPU