ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° x64 ΡΡΠΎ ΡΡΠΎ
ΠΠ΅ΡΡΡΡ ΠΈΠΌΡΠ½ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ
ΠΠ° ΠΏΡΡΠ½ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΌΠΈΠ½Π°ΡΠ΅ ΡΡΠ΅Π±Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΠΈ ΠΠ€Π’Π-ΠΠ½ΡΠ΅Π» ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΡΡΡΠ΄Π΅Π½ΡΠΎΠ² Π·Π°Π΄Π°Π» ΠΌΠ½Π΅ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ: Π° ΠΏΠΎΡΠ΅ΠΌΡ 64-Π±ΠΈΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Intel Π½Π°Π·ΡΠ²Π°Π΅ΡΡΡ x64, Π° 32-Π±ΠΈΡΠ½ΡΠΉ β x86? Π― Π½Π°ΡΠ°Π» ΠΎΠ±ΡΡΡΠ½ΡΡΡ, ΡΡΠΎ Π½Π΅ Π²ΡΡ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ. ΠΠ°Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ Π½Π°ΡΠΈΡΠΎΠ²Π°ΡΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΡΡ ΠΊΠ°ΡΡΠΈΠ½Ρ. ΠΠ΅Π΄Ρ Π½Π° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ ΡΡΠΎ Π½Π΅ x64, ΠΈ Π΄Π°ΠΆΠ΅ Π½Π΅ x86.
386-ΡΠ΅, ΠΠ΅Π½ΡΠΈΡΠΌΡ ΠΈ ΠΠΎΡΡ
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠΉ Π΄Π»Ρ ΡΡΠΎΠ³ΠΎ ΡΠ΅Π½ΠΎΠΌΠ΅Π½Π°, ΠΎΠΊΠΎΠ»ΠΎ ΡΠΎΡΠΎΠΊΠ° Π»Π΅Ρ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ Π½Π° ΡΡΠ΅Π½Π΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΡ
ΡΠ΅Ρ
Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ, Π±ΡΠ»ΠΎ ΠΏΡΠΈΠ΄ΡΠΌΠ°Π½ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ. ΠΠ°ΠΆΠ΅ Π±ΠΎΠ»ΡΡΠ΅, ΡΠ΅ΠΌ Ρ
ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ. ΠΠ½ΠΈ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΠΈΠ· ΡΠ°Π·Π½ΡΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ² ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π² ΡΠ°Π·Π½ΡΡ
ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°Ρ
, ΡΠ°Π·Π½ΡΠΌΠΈ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΠΌΠΈ ΠΈ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°ΠΌΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΡΡΠΎ Π²Π½ΠΎΡΠΈΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ Π½Π΅ΡΠ°Π·Π±Π΅ΡΠΈΡ
Ρ.
Π― ΠΏΠΎΡΡΠ°ΡΠ°Π»ΡΡ Π·Π΄Π΅ΡΡ ΡΠΎΠ±ΡΠ°ΡΡ Π²ΡΠ΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΌΠ½Π΅ Π½Π°Π·Π²Π°Π½ΠΈΡ. ΠΠ΅ Ρ
ΠΎΡΡ ΠΏΡΡΠ°ΡΡΡΡ Π΄ΠΎΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ ΠΎΠ΄Π½Π° Π³ΡΡΠΏΠΏΠ° ΠΈΠΌΡΠ½ Π»ΡΡΡΠ΅ Π΄ΡΡΠ³ΠΎΠΉ, β ΠΌΠ΅Π½ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ
Π½Π΅ ΡΡΠ°Π½ΡΡ.
8086 ΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²ΠΎ
Π 1978 Π³ΠΎΠ΄Ρ Π±ΡΠ» Π²ΡΠΏΡΡΠ΅Π½ 16-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Intel, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΠΌΠ΅Π» Β«ΠΈΠΌΡΒ» 8086. ΠΠ° Π½ΠΈΠΌ Π±ΡΠ»ΠΈ 8088, 80186, 80286, 80386 (ΠΏΠ»ΡΡ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ), 80486 (ΠΏΠ»ΡΡ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ). ΠΠ΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, ΡΡΠΎ (ΠΏΠΎΡΡΠΈ) Π²ΡΠ΅ ΡΡΠΈ ΡΠΈΡΠ»ΠΎΠ²ΡΠ΅ ΠΈΠΌΠ΅Π½Π° ΠΎΠΊΠ°Π½ΡΠΈΠ²Π°ΡΡΡΡ Π½Π° Π΄Π²Π΅ ΡΠΈΡΡΡ 86, ΡΡΠΎ Π΄Π°Π»ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π²ΡΠ΅ΠΉ ΡΠ΅ΡΠΈΠΈ x86. ΠΠ½ΠΎ ΡΠΊΡΠ΅ΠΏΠΈΠ»ΠΎΡΡ, Π΅Π³ΠΎ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ ΠΏΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π»ΠΈ Π΄Π°Π²Π°ΡΡ ΡΠΈΡΡΠΎΠ²ΡΠ΅ ΠΈΠΌΠ΅Π½Π°, Π° ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ Intel Pentium, Celeron, Xeon, Core, Atom ΠΈ Ρ.Π΄. Π‘ΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠ΅ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π΄ΡΡΠ³ΠΈΡ
Π²Π΅Π½Π΄ΠΎΡΠΎΠ², ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ IBM, AMD, Cyrix, VIA ΠΈ Ρ.Π΄., ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ x86.
ΠΠΎ ΠΌΠΎΠΈΠΌ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡΠΌ, x86 β ΡΠ°ΠΌΡΠΉ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ Π΄Π»Ρ ΠΈΠΌΠ΅Π½ΠΈ ΡΡΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Π² ΠΠ½ΡΠ΅ΡΠ½Π΅ΡΠ΅, ΡΡΠ°ΡΡΡΡ
ΠΈ ΠΏΡΠΎΡΠ΅ΠΉ Π»ΠΈΡΠ΅ΡΠ°ΡΡΡΠ΅, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ, ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΡΠΎΠΈΡ Π·Π°Π΄Π°ΡΠΈ ΡΠΎΡΠ½ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·ΡΡΠ΄Π½ΠΎΡΡΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈΠ»ΠΈ ΡΠ΅ΡΡ ΡΠ²Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ΄ΡΡ ΠΎ 32-Π±ΠΈΡΠ½ΠΎΠΌ Π²Π°ΡΠΈΠ°Π½ΡΠ΅.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠ°ΠΊΠΆΠ΅ Π²Π°ΡΠΈΠ°ΡΠΈΠΈ ΡΡΠΎΠ³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ Π΄Π»Ρ 32-Π±ΠΈΡΠ½ΡΡ
Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΠ½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ: i386, i486, i586, i686, β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ°Π·Π»ΠΈΡΠ΅Π½ΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΡΠ±ΠΎΡΠΎΠΊ Π±ΠΈΠ½Π°ΡΠ½ΡΡ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²ΠΎΠ² Linux.
ΠΡΠΈΡΠ΅ΡΡΠ²ΠΈΠ΅ 64 Π±ΠΈΡ
Π‘Π²ΠΎΠΈΠΌΠΈ ΡΡΠ°ΡΠ°Π½ΠΈΡΠΌΠΈ Intel ΡΠ°ΡΡΠΈΡΠΈΠ»Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ΅ ΡΠ»ΠΎΠ²ΠΎ Π² ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠΉ ΡΠ°Π½Π΅Π΅ ΡΠ΅ΡΠΈΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Ρ 16 Π΄ΠΎ 32 Π±ΠΈΡ. ΠΠΎΡΡΠΈΠ³Π½ΡΡΡ ΡΡΠΎΠΉ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ 64 Π±ΠΈΡ ΠΏΠΎΠΌΠΎΠ³Π»Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ AMD, Π² 2003 Π³ΠΎΠ΄Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ²ΡΠ°Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ Π½ΠΎΠ²ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΠΈ ΡΠ΅Π³ΠΈΡΡΡΡ ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΡΡΡΠΈΠΉ AMD64.
ΠΠ»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠ²Π½ΠΎ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΠΎΠ²ΡΡΠ΅Π½Π½ΡΡ Π±ΠΈΡΠ½ΠΎΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°/ΠΊΠΎΠ΄Π°/ΠΏΠ°ΠΊΠ΅ΡΠ°, ΠΈΠΌΡ x86 ΡΡΠ°Π»ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½ΠΎΠ²ΡΠΉ ΡΡΡΡΠΈΠΊΡ Β«64Β». ΠΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΠ΅Π· ΠΊΠ°ΠΊΠΎΠΉ Π·Π½Π°ΠΊ Π΅Π³ΠΎ ΠΏΡΠΈΠΏΠΈΡΡΠ²Π°ΡΡ Π½Π΅ Π΄ΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈΡΡ, ΠΈ ΠΈΠ½ΠΎΠ³Π΄Π° Π²ΠΈΠ΄ΠΈΡΡ x86_64, Π° ΠΏΠΎΡΠΎΠΉ x86-64. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΡΠ²ΠΎΠ΄ ΠΊΠΎΠΌΠ°Π½Π΄Ρ uname Π² Linux ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊ. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Ρ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΈ ΡΡΡΡΠΈΠΊΡ amd64 ΡΡΡΠΎΡΠ½ΡΠΌΠΈ Π±ΡΠΊΠ²Π°ΠΌΠΈ.
Intel ΠΆΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π»Π° ΡΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΡΠΏΠ΅ΡΠ²Π° IA-32e, Π·Π°ΡΠ΅ΠΌ EM64T. Π Π½Π°ΡΡΠΎΡΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡΡΠ΅ΡΠΈΡΡ ΠΎΠ±Π° Π²Π°ΡΠΈΠ°Π½ΡΠ° Π² ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΈΠΌΠ΅Π½Π°Ρ
ΠΏΠ°ΠΊΠ΅ΡΠΎΠ², Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΈ ΠΏΡΠΎΡΠ΅ΠΌ. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΅ΡΡΡ ΠΈ ΡΡΠ΅ΡΡΠ΅ Π²Π²Π΅Π΄ΡΠ½Π½ΠΎΠ΅ Intel Π½Π°Π·Π²Π°Π½ΠΈΠ΅β¦
ΠΠ°ΠΊ ΡΡΠΎ Π½Π°Π·ΡΠ²Π°Π΅Ρ Intel
Π ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ 32-Π±ΠΈΡΠ½Π°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΈΠΌΠ΅Π΅Ρ ΠΈΠΌΡ IA-32; Π΅Ρ 64-Π±ΠΈΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ ΠΏΠΎΠ»ΡΡΠΈΠ» Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π½ΠΎΠ΅ Ρ ΠΌΠΎΠ΅ΠΉ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΠΌΡ Intel 64. ΠΠΎΡΠ΅ΠΌΡ ΡΡΡΠ°Π½Π½ΠΎΠ΅ β ΠΎΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π» Π΄Π»Ρ ΠΏΡΡΠ°Π½ΠΈΡΡ, ΠΊΠ°ΠΊ ΠΌΡ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π±Π»ΠΈΠΆΠ΅ ΠΊ ΠΊΠΎΠ½ΡΡ ΡΡΠ°ΡΡΠΈ.
ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΈ-ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠΈ ΡΠΎΡΡΠ°
ΠΡΡ Π²ΠΌΠ΅ΡΡΠ΅
ΠΠΎΠΆΠ½ΡΠ΅ ΠΈΠΌΠ΅Π½Π°
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π·Π° ΡΠ²ΠΎΡ ΡΠΎΡΠΎΠΊΠ°Π»Π΅ΡΠ½ΡΡ ΠΈΡΡΠΎΡΠΈΡ Intel Π²ΡΠΏΡΡΠΊΠ°Π»Π° (ΠΈ Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅ΠΉΡΠ°Ρ) Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ IA-32. ΠΡΠ»ΠΈ ΠΈ Π΄ΠΎ ΡΠΈΡ ΠΏΠΎΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ ΠΏΡΠΎΠ΄ΡΠΊΡΡ Π΄ΡΡΠ³ΠΈΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡ. ΠΠ½ΠΈ ΡΠΎΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΡΠ²ΠΎΠΈ ΠΈΠΌΠ΅Π½Π°, ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΎΠ·Π²ΡΡΠ½ΡΠ΅. ΠΡΠΈ ΡΡΠΎΠΌ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΡΡΠ°Π½ΠΈΡΠ°, ΠΎΡ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΠΎΡΠ΅Π»ΠΎΡΡ Π±Ρ ΠΏΡΠ΅Π΄ΠΎΡΡΠ΅ΡΠ΅ΡΡ.
Intel IA-64. Π―Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΌ ΡΠΈΠ½ΠΎΠ½ΠΈΠΌΠΎΠΌ ΡΠ΅ΡΠΌΠΈΠ½Π° Β«Intel ItaniumΒ». ΠΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΡ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ, Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠΉ Π½ΠΈ Ρ IA-32, Π½ΠΈ Ρ 64-Π±ΠΈΡΠ½ΡΠΌ Π΅Ρ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠΌ Π½ΠΈ ΠΏΠΎ Π½Π°Π±ΠΎΡΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π½ΠΈ ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ°ΠΌ ΡΠ°Π±ΠΎΡΡ. ΠΠ°, ΡΡΡΠ΅ΡΡΠ²ΡΡΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΡΠ΅ ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠ΅ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° IA-32 ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΠΡΠ°Π½ΠΈΡΠΌΠ΅, Π½ΠΎ ΡΡΠΎ β ΡΠ΅ΠΌΠ° Π΄Π»Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ°ΡΡΠΊΠ°Π·Π°. ΠΡΡΠ°ΡΠΈ, ΠΈ Π΄Π»Ρ Itanium Π΅ΡΡΡ Π΅ΡΡ ΠΎΠ΄Π½ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β IPF, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΠ΅ ΠΈΠ·ΡΠ΅Π΄ΠΊΠ° ΠΊΠ°ΠΊ ΡΡΡΡΠΈΠΊΡ.
Π ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ ΡΠ°ΠΊΠΈΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Intel, ΠΊΠ°ΠΊ i432, i860, i960 ΠΈΠ»ΠΈ Π½Π΅ Π΄ΠΎΠΆΠΈΠ»ΠΈ Π΄ΠΎ Π½Π°ΡΠΈΡ Π΄Π½Π΅ΠΉ, ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΈΠΌΠ΅ΡΡ ΠΊΡΠ°ΠΉΠ½Π΅ ΡΠ·ΠΊΡΡ Π½ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ. Π ΡΠΎ Π³Π»ΡΠ΄ΠΈΡΡ β ΠΏΡΠΈΡΠ»ΠΎΡΡ Π±Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡΡ Π΅ΡΡ ΠΏΠΎ Π΄Π΅ΡΡΡΠΊΡ ΠΈΠΌΡΠ½.
Π£ΡΠΎΠΊ 1. Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ 64-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΠ° ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΡΡΡΠ°, Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ Π΄Π²Π΅ 64-Π±ΠΈΡΠ½ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ²: IA64 ΠΈ Intel 64.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Intel 64
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΡΠΎ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ, ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π‘ΠΠΠ ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈΠ³ΡΡ. Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΎΡ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². ΠΠ°Π»ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ Π² ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ x86 Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ . Π£Π²Π΅Π»ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
ΠΠΎΠ΄ΡΠ΅ΡΠΊΠ½Π΅ΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ Π΄ΠΎΡΡΠΎΠΈΠ½ΡΡΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86-64:
64-Π±ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠΌΠ΅ΡΡ Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Intel 64. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Microsoft ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Windows XP x64. ΠΡΡΠΏΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ UNIX ΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠ°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Linux Debian 3.5 x86-64. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌ. Π§Π°ΡΡΡ ΠΊΠΎΠ΄Π° ΠΠ‘ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ 32-Π±ΠΈΡΠ½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Intel 64 ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ. Π’Π°ΠΊ, 64-Π±ΠΈΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Windows ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ WoW64 (Windows-on-Windows 64), ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²Ρ 32-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ 64-Π±ΠΈΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ
Π₯ΠΎΡΡ 64-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡ 16 ΡΠΊΠ·Π°Π±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ (2^64), Win64 Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ 16 ΡΠ΅ΡΠ°Π±Π°ΠΉΡ (2^44). ΠΡΠΎΠΌΡ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½. Π’Π΅ΠΊΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ Π»ΠΈΡΡ ΠΊ 1 ΡΠ΅ΡΠ°Π±Π°ΠΉΡΡ (2^40) ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (Π½ΠΎ Π½Π΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΡΠ°ΡΡΡ) ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄ΠΎ 4 ΠΏΠ΅ΡΠ°Π±Π°ΠΉΡ (2^52). ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ 64-Π±ΠΈΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows, Π·Π°Π²ΠΈΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft. Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ Windows ΠΈΠΌΠ΅ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ, ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΡΠ΅ Π² ΡΠ°Π±Π»ΠΈΡΠ΅.
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Win64
Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² Win32, ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡ Π² Win64 ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 4ΠΠ±. ΠΠ΅ΡΠ²ΡΠ΅ 64ΠΠ± Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ, ΡΠΎ Π΅ΡΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ- ΡΡΠΎ 0x10000. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Win32, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ DLL Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π²ΡΡΠ΅ 4ΠΠ±.
ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠ² Π΄Π»Ρ Intel 64 Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ΅Π³ΠΈΡΡΡΡ Π΄Π»Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² Π² ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΠΌΠ΅ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ΅ΠΊΠ°. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ Win64 Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΈΠ·Π±Π°Π²ΠΈΡΡΡΡ ΠΎΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΡΡΠΈΡ, ΠΊΠ°ΠΊ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π²ΡΠ·ΠΎΠ²Π°Ρ (calling convention). Π Win32 ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ: __stdcall, __cdecl, __fastcall ΠΈ ΡΠ°ΠΊ Π΄Π°Π»Π΅Π΅. Π Win64 Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΎ Π²ΡΠ·ΠΎΠ²Π°Ρ . Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΠΊ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ°Ρ ΡΠ΅ΡΡΡΠ΅ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠ° ΡΠΈΠΏΠ° integer:
ΠΡΠ³ΡΠΌΠ΅Π½ΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΡΡ ΡΠ΅ΡΡΡΠ΅Ρ integer ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ Π½Π° ΡΡΠ΅ΠΊΠ΅. ΠΠ»Ρ float Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ XMM0-XMM3 ΡΠ΅Π³ΠΈΡΡΡΡ, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ΅ΠΊ.
Π Π°Π·Π½ΠΈΡΠ° Π² ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΡ ΠΎ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ 64-Π±ΠΈΡΠ½ΡΠΉ, ΠΈ 32-Π±ΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, ΡΠΎ Π²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (DLL) ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΎΠ²ΡΠ΅ΡΡΠ², Π΄Π΅Π»Π°ΡΡΠΈΡ 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ, ΡΠ΅ΠΌ 32-Π±ΠΈΡΠ½ΡΠ΅. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠΈΠ³ΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΎ ΡΠ΅ΠΌ Π±ΡΠ΄Π΅Ρ ΡΠ°ΡΡΠΊΠ°Π·Π°Π½ΠΎ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅ΠΌ ΡΡΠΎΠΊΠ΅.
Π Π°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΡ Π² ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΊΠΎΠ΄Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x64
Β«ΠΠ°ΠΊΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΊΠΎΠ΄Π° ΠΌΠ½Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ?Β» β ΡΠ°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡΠΈΠΉ, Π½ΠΎ Π½Π΅ΡΠ°ΡΡΠΎ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΠΌΡΠΉ Π²ΠΎΠΏΡΠΎΡ ΠΏΡΠΈ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Ρ 64. Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°, ΠΈ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ Π³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°ΠΌΠΈ ΠΌΠ°ΡΠΈΠ½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Ρ 64 ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΎ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΊΠΎΠ΄Π°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π΄Π»Ρ ΡΠ΅Ρ , ΠΊΡΠΎ Π±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡΡΡ ΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²ΠΏΠ»ΠΎΡΡ Π΄ΠΎ ΠΌΠ΅Π»ΡΡΠ°ΠΉΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄, Π²ΡΠ±ΠΎΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° Π²Π»ΠΈΡΠ΅Ρ ΠΈ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ.
ΠΠ°ΠΆΠ½ΠΎΠ΅ Π·Π°ΠΌΠ΅ΡΠ°Π½ΠΈΠ΅: ΡΡΠ° ΡΡΠ°ΡΡΡ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ±ΡΡΠ°ΡΡΠΈΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠΌ Π΄Π»Ρ Π½Π°ΡΠΈΠ½Π°ΡΡΠΈΡ . ΠΠ΅ΡΠ΅Π΄ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠ»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Π½ΠΎΠ΅ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ C ΠΈ Π°ΡΡΠ΅ΠΌΠ±Π»Π΅ΡΠΎΠΌ, Π° ΡΠ°ΠΊ ΠΆΠ΅ Π±Π°Π·ΠΎΠ²ΠΎΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ Ρ 64.
Π’Π°ΠΊΠΆΠ΅ ΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π°ΡΡ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΡΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΡΡ ΠΎΠΆΡΡ ΡΠ΅ΠΌΡ: ΠΠ°ΠΊ x86_x64 Π°Π΄ΡΠ΅ΡΡΠ΅Ρ ΠΏΠ°ΠΌΡΡΡ
ΠΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π°. ΠΠΎΡΠΈΠ²Π°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠ°ΡΡΡ
Π Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Ρ 64 ΠΎΡΡΡΠ»ΠΊΠΈ ΠΈ Π½Π° ΠΊΠΎΠ΄, ΠΈ Π½Π° Π΄Π°Π½Π½ΡΠ΅ Π²Π΅Π΄ΡΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎ-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ (ΠΈΠ»ΠΈ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΠΆΠ°ΡΠ³ΠΎΠ½ Ρ 64, RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠ΅) ΠΌΠΎΠ΄Π΅Π»ΠΈ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ. Π ΡΡΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ ΡΠ΄Π²ΠΈΠ³ ΠΎΡ RIP ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ 32 Π±ΠΈΡΠ°ΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅ ΠΏΡΠΈ ΠΏΠΎΠΏΡΡΠΊΠ΅ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΡ ΠΏΠ°ΠΌΡΡΠΈ ΠΈΠ»ΠΈ Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠΏΡΠΎΡΡΡ Π½Π΅ Ρ Π²Π°ΡΠΈΡ ΡΠ΄Π²ΠΈΠ³Π° Π² 32 Π±ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°ΠΌΠΈ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π²ΡΡ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ.
ΠΠ΄ΠΈΠ½ ΠΈΠ· ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ β ΠΏΠΎΠ»Π½ΡΠΉ ΠΎΡΠΊΠ°Π· ΠΎΡ RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ° Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Π² ΠΏΠΎΠ»ΡΠ·Ρ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΠ»ΠΎΠΊ Π½Π° Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΊΠΎΠ΄. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎΡ ΡΠ°Π³ ΠΎΠ±ΠΎΠΉΠ΄Π΅ΡΡΡ ΠΎΡΠ΅Π½Ρ Π΄ΠΎΡΠΎΠ³ΠΎ: Π΄Π»Ρ ΠΏΠΎΠΊΡΡΡΠΈΡ (Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ΅Π΄ΠΊΠΎΠ³ΠΎ) ΡΠ»ΡΡΠ°Ρ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, Π΄Π°ΠΆΠ΅ ΠΏΡΠΎΡΡΠ΅ΠΉΡΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π² ΡΠ°ΠΌΠΊΠ°Ρ Π²ΠΎΠΎΠ±ΡΠ΅ Π²ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΠΎΡΡΠ΅Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅Π³ΠΎ ΡΠ΅ΠΌ ΠΎΠ±ΡΡΠ½ΠΎ ΡΠΈΡΠ»Π° ΠΊΠΎΠΌΠ°Π½Π΄.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠΌ ΡΡΠ°Π½ΠΎΠ²ΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π°. [1] ΠΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π° ΡΡΠΎ ΡΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ ΡΠ²ΠΎΠΈ Π½Π°ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ (ΠΈΠ»ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ), Π² ΠΊΠΎΡΠΎΡΡΡ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΠ΅ΠΌΡΠΉ Π² Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ. [2] ΠΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° Π½ΡΠΆΠ½Ρ Π΄Π»Ρ ΡΠΎΠ³ΠΎ ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡ ΠΌΠΎΠ³ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ: Β«Π½Π΅ Π²ΠΎΠ»Π½ΡΠΉΡΡ, ΡΡΠΎΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΠΏΠΎΠΉΠ΄Π΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½Π΅Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π±ΡΡΡΡΡΠΌΠΈ RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ ΡΠ΅ΠΆΠΈΠΌΠ°ΠΌΠΈ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈΒ». Π‘ Π΄ΡΡΠ³ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅: Β«ΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΠΌΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°ΡΡ ΡΡΠΎΡ ΠΌΠΎΠ΄ΡΠ»Ρ Π² Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉ Π½Π΅ΡΠΎΡΠΎΠΏΠ»ΠΈΠ²ΡΠ΅ ΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΠ΅ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠ»Π½ΡΠΌ 64-Π±ΠΈΡΠ½ΡΠΌ ΡΠ΄Π²ΠΈΠ³ΠΎΠΌΒ».
Π ΡΠ΅ΠΌ ΡΠ°ΡΡΠΊΠ°ΠΆΠ΅Ρ ΡΡΠ° ΡΡΠ°ΡΡΡ
ΠΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΎ Π΄Π²ΡΡ ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ Π²ΡΡΠ΅ ΡΡΠ΅Π½Π°ΡΠΈΡΡ , ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π°: ΠΏΠ΅ΡΠ²Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΡ, ΡΡΠΎ 32-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ Π²Π°ΡΠΈΡΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΡΡΠ»ΠΎΠΊ Π½Π° ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΠΎΠΌ ΠΌΠΎΠ΄ΡΠ»Π΅; Π²ΡΠΎΡΠ°Ρ Π½Π°ΡΡΠ°ΠΈΠ²Π°Π΅Ρ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠΎΠΌ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΡ 64-Π±ΠΈΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠΎΠ² Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π΅ΡΠ΅ ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ Π²Π°ΡΠΈΠ°Π½Ρ, ΡΠ°ΠΊ Π½Π°Π·ΡΠ²Π°Π΅ΠΌΠ°Ρ ΡΡΠ΅Π΄Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°.
ΠΠ°ΠΆΠ΄Π°Ρ ΠΈΠ· ΡΡΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² Π½Π΅Π·Π°Π²ΠΈΡΡΡΠΈΡ Π΄ΡΡΠ³ ΠΎΡ Π΄ΡΡΠ³Π° PIC ΠΈ Π½Π΅-PIC Π²Π°ΡΠΈΠ°ΡΠΈΡΡ , ΠΈ ΠΌΡ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΠΊΠ°ΠΆΠ΄ΡΡ ΠΈΠ· ΡΠ΅ΡΡΠΈ.
ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ Π½Π° Π‘
ΠΠ»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ ΠΎΠ±ΡΡΠΆΠ΄Π°Π΅ΠΌΡΡ Π² ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΎΠ² Ρ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π½ΠΎΠΉ Π½ΠΈΠΆΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ Π½Π° Π‘ ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΡΡ Π΅Π΅ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΊΠΎΠ΄Π°. ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, ΡΡΠ½ΠΊΡΠΈΡ main ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΠ΅ΠΌ ΡΠ°Π·Π½ΡΠΌ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠΈ. ΠΠ°ΡΡΠΈΠ²Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ Π΄Π²ΡΠΌΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ: ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ ΠΈ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡΡ. Π Π°Π·ΠΌΠ΅Ρ Π²Π°ΠΆΠ΅Π½ Π΄Π»Ρ ΠΎΠ±ΡΡΡΠ½Π΅Π½ΠΈΡ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° ΠΈ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ Π² ΡΠ°Π±ΠΎΡΠ΅ Ρ ΠΌΠ°Π»ΠΎΠΉ ΠΈ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ. ΠΠΈΠ΄ΠΈΠΌΠΎΡΡΡ Π²Π°ΠΆΠ½Π° Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ PIC-ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΊΠΎΠ΄Π° ΠΈ Π±ΡΠ²Π°Π΅Ρ Π»ΠΈΠ±ΠΎ ΡΡΠ°ΡΠΈΡΠ½ΠΎΠΉ (Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΈΡΡ ΠΎΠ΄Π½ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅), Π»ΠΈΠ±ΠΎ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎΠΉ (Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΡ Π²ΡΠ΅ΠΌ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½Π½ΡΠΌ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ).
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ Π² ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ΅ΡΠ΅Π· Π±ΠΎΠ»ΡΡΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π° Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PIC:
ΠΠ°Π»Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠΈΡΠ°ΡΡ ΠΈΠ· man gcc Π½Π° ΡΠ΅ΠΌΡ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π°:
-mcmodel=small
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ: ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ° ΠΈ Π΅Π΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½Ρ Π² Π½ΠΈΠΆΠ½ΠΈΡ Π΄Π²ΡΡ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°Ρ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°. Π Π°Π·ΠΌΠ΅Ρ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΉ β 64 Π±ΠΈΡ. ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½Ρ ΠΈ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ, ΠΈ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ. ΠΡΠΎ ΠΎΡΠ½ΠΎΠ²Π½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°.
ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ ΠΌΠΎΠΆΠ΅Ρ ΡΠΏΠΎΠΊΠΎΠΉΠ½ΠΎ ΡΡΠΈΡΠ°ΡΡ, ΡΡΠΎ ΠΊΠΎΠ΄ ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ ΡΠ΅ΡΠ΅Π· 32-Π±ΠΈΡΠ½ΡΠΉ RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠ΄Π²ΠΈΠ³ ΠΈΠ· Π»ΡΠ±ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΊΠΎΠ΄Π΅. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π½Π° Π‘, ΠΊΠΎΡΠΎΡΡΡ ΠΌΡ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π»ΠΈ ΡΠ΅ΡΠ΅Π· Π½Π΅-PIC ΠΌΠ°Π»ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°:
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ β Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π² ΠΊΠΎΠ΄Π΅ ΡΠ΄Π²ΠΈΠ³ ΡΠ°Π²Π΅Π½ 0, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ Π·Π½Π°Π΅Ρ, Π³Π΄Π΅ Π±ΡΠ΄Π΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ ΡΠ΅Π³ΠΌΠ΅Π½Ρ Π΄Π°Π½Π½ΡΡ , ΠΏΠΎΡΡΠΎΠΌΡ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ°ΠΊΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΎΠ½ ΡΠΎΠ·Π΄Π°Π΅Ρ ΡΠ΅Π»ΠΎΠΊΠ°ΡΠΈΡ:
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΎΡΡΡΠ»ΠΊΡ ΠΊ global_func :
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΎΠΏΠ΅ΡΠ°Π½Π΄ callq ΡΠΎΠΆΠ΅ RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»Π΅Π½, ΡΠ΅Π»ΠΎΠΊΠ°ΡΠΈΡ R_X86_64_PC32 ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π·Π΄Π΅ΡΡ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° ΠΊ global_func Π² ΠΎΠΏΠ΅ΡΠ°Π½Π΄.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΌΠ΅ΡΠΈΠΌ, ΡΡΠΎ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π²ΠΎΡΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π²ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΈ ΠΊΠΎΠ΄ Π±ΡΠ΄ΡΡΠ΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΊΠ°ΠΊ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΡΠ΅ΡΠ΅Π· 32-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΄Π²ΠΈΠ³, ΠΈ ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π²ΡΠ΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΌ ΠΎΠ±ΡΠ΅ΠΊΡΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠΎΠ»ΡΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°
ΠΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠΈΡΠ°ΡΡ ΠΈΠ· man gcc Π½Π° ΡΠ΅ΠΌΡ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π°:
-mcmodel=large
ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ΄Π° Π΄Π»Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ: ΠΡΠ° ΠΌΠΎΠ΄Π΅Π»Ρ Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ Π°Π΄ΡΠ΅ΡΠΎΠ² ΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΠ΅ΠΊΡΠΈΠΉ.
Π Π²Π½ΠΎΠ²Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° ΡΠ΅Π»ΠΎΠΊΠ°ΡΠΈΠΈ:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π½Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ Π΄Π΅Π»Π°ΡΡ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠ² ΡΠ΅ΠΊΡΠΈΠΉ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½ΡΡ , Π±ΠΎΠ»ΡΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠ½ΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Π° ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΊΠΎ Π²ΡΠ΅ΠΌ Π΄Π°Π½Π½ΡΠΌ. ΠΠ°Π²Π°ΠΉΡΠ΅ Π²Π½ΠΎΠ²Ρ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° global_arr :
Π ΡΡΠΎ Π½Π°ΡΡΠ΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ Π²ΡΠ·ΠΎΠ²Π°?
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ, Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° Π½Π΅Ρ ΠΊΠ°ΠΊΠΈΡ -Π»ΠΈΠ±ΠΎ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ ΡΠ΅ΠΊΡΠΈΠΉ ΠΊΠΎΠ΄Π° ΠΈ Π΄Π°Π½Π½ΡΡ , ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΊ ΠΈ ΠΎ ΡΠΈΠ½Π°Π»ΡΠ½ΠΎΠΌ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ², ΠΎΠ½Π° ΠΏΠΎΠΏΡΠΎΡΡΡ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΡΠΈΠΌΠ²ΠΎΠ»Ρ ΡΠ΅ΡΠ΅Π· Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠ΅ 64-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ°Π³ΠΈ, ΡΠ²ΠΎΠ΅Π³ΠΎ ΡΠΎΠ΄Π° Β«Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΡΡ Π΄ΠΎΡΠΎΠΆΠΊΡΒ». ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ, ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΊΠΎΠ΄Π°, Π±ΠΎΠ»ΡΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΈ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΈ ΠΊ ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡ ΡΠΈΠΌΠ²ΠΎΠ»Ρ. Π’Π°ΠΊΠΎΠ²Π°Ρ ΡΠ΅Π½Π° Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΡΠ°ΠΊ, ΠΌΡ Ρ Π²Π°ΠΌΠΈ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΠΈΡΡ Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΏΡΠΎΡΠΈΠ²ΠΎΠΏΠΎΠ»ΠΎΠΆΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ: Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ ΠΌΠ°Π»Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π²ΡΠ΅ Π²ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π² Π½ΠΈΠΆΠ½ΠΈΠ΅ Π΄Π²Π° Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ° ΠΏΠ°ΠΌΡΡΠΈ, Π±ΠΎΠ»ΡΡΠ°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ, ΡΡΠΎ Π½Π΅Ρ Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠ³ΠΎ ΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ» ΠΌΠΎΠΆΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡΡ Π³Π΄Π΅ ΡΠ³ΠΎΠ΄Π½ΠΎ Π²ΠΎ Π²ΡΠ΅ΠΉ ΠΏΠΎΠ»Π½ΠΎΡΠ΅ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π°. ΠΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡΠΎΠΌ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΈΠΌΠΈ Π΄Π²ΡΠΌΡ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΡΡΠ΅Π΄Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°.
Π‘ΡΠ΅Π΄Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°
ΠΠ°ΠΊ ΠΈ ΡΠ°Π½Π΅Π΅, Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠΈΡΠ°ΡΡ ΠΈΠ· man gcc :
ΠΠ½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π°, ΡΡΠ΅Π΄Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΡΡΠΎ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½ Π² Π΄Π²ΡΡ Π½ΠΈΠΆΠ½ΠΈΡ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°Ρ . Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, Π΄Π°Π½Π½ΡΠ΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½Ρ Π½Π° ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌΠΎ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² Π½ΠΈΠΆΠ½ΠΈΡ Π΄Π²ΡΡ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°Ρ Β«ΠΌΠ°Π»ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅Β» ΠΈ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΏΠ°ΠΌΡΡΠΈ Β«Π±ΠΎΠ»ΡΡΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅Β». ΠΠ°Π½Π½ΡΠ΅ ΠΏΠΎΠΏΠ°Π΄Π°ΡΡ Π² ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ ΠΏΡΠΈ ΠΏΡΠ΅Π²ΡΡΠ΅Π½ΠΈΠΈ ΠΈΠΌΠΈ ΠΏΡΠ΅Π΄Π΅Π»Π°, ΠΏΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΡ ΡΠ°Π²Π½ΠΎΠ³ΠΎ 64 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡΠ°ΠΌ.
Π’Π΅ΠΏΠ΅ΡΡ ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠΎΠ½ΡΡΠ½ΠΎ, ΠΏΠΎΡΠ΅ΠΌΡ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΏΠΎΡΠ²ΠΈΠ»ΠΈΡΡ ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ _big : ΠΎΠ½ΠΈ Π½ΡΠΆΠ½Ρ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π»Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΠΈ Β«Π±ΠΎΠ»ΡΡΠΈΡ Π΄Π°Π½Π½ΡΡ Β», ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΎΠ½ΠΈ, ΠΏΡΠΈ ΡΠ°Π·ΠΌΠ΅ΡΠ΅ Π² 200 ΠΊΠΈΠ»ΠΎΠ±Π°ΠΉΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ, ΠΈ ΡΠ²Π»ΡΡΡΡΡ. ΠΠΈΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠΌ Π΄ΠΈΠ·Π°ΡΡΠ΅ΠΌΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠΎ, ΠΊΠ°ΠΊ Π²Π΅Π΄Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ: ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ _big ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π°, ΡΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΠΎΡΡΠ°Π»ΡΠ½ΡΠΌ ΠΌΠ°ΡΡΠΈΠ²Π°ΠΌ ΠΈΠ΄Π΅Ρ ΡΠ΅ΡΠ΅Π· ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ ΡΡΠ½ΠΊΡΠΈΠΈ ΡΠΎΠΆΠ΅ Π²Π΅Π΄Π΅ΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π°, Π° ΡΠ΅Π»ΠΎΠΊΠ°ΡΠΈΠΈ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Ρ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌ, ΡΡΠΎ Ρ Π΄Π°ΠΆΠ΅ Π½Π΅ Π±ΡΠ΄Ρ ΠΈΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°ΡΡ.
Π‘ΡΠ΅Π΄Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π° ΡΡΠΎ ΡΠΌΠ΅Π»ΡΠΉ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ. ΠΠ°Π²ΡΡΠ΄ Π»ΠΈ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ ΡΠ»ΠΈΡΠΊΠΎΠΌ Π²Π΅Π»ΠΈΠΊ [4], ΡΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ΄Π²ΠΈΠ½ΡΡΡ Π΅Π³ΠΎ ΡΠ²Π΅ΡΡ Π»ΠΈΠΌΠΈΡΠ° Π² Π΄Π²Π° Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ° ΠΌΠΎΠ³ΡΡ ΡΠ°Π·Π²Π΅ ΡΡΠΎ ΡΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Π°Π½Π½ΡΠ΅ Π² Π½Π΅Π³ΠΎ Π±ΠΎΠ»ΡΡΠΈΠ΅ ΠΊΡΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ , Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΊΠ°ΠΊ ΡΠ°ΡΡΡ Π½Π΅ΠΊΠΎΠ΅Π³ΠΎ ΠΎΠ±ΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ°Π±Π»ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠΈΡΠΊΠ°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠ΅Π΄Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π° ΠΎΡΡΠ΅ΠΈΠ²Π°Π΅Ρ ΡΠ°ΠΊΠΈΠ΅ ΠΎΠ±ΡΠ΅ΠΌΠ½ΡΠ΅ ΠΊΡΡΠΊΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΎΡΠΎΠ±ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ, ΡΠΎ Π²ΡΠ·ΠΎΠ²Ρ ΠΊΠΎΠ΄ΠΎΠΌ ΡΡΠ½ΠΊΡΠΈΠΉ ΠΈ ΠΌΠ°Π»ΡΡ ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² Π±ΡΠ΄ΡΡ ΡΠ°ΠΊ ΠΆΠ΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ, ΠΊΠ°ΠΊ ΠΈ Π² ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π°. Π’ΠΎΠ»ΡΠΊΠΎ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ Π±ΠΎΠ»ΡΡΠΈΠΌ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ, ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ, ΠΏΠΎΡΡΠ΅Π±ΡΡΡ ΠΎΡ ΠΊΠΎΠ΄Π° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»Π½ΡΠΌ 64-Π±ΠΈΡΠ½ΡΠΌ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠΌ Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ.
ΠΠ°Π»Π°Ρ PIC-ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° PIC Π²Π°ΡΠΈΠ°Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΊΠΎΠ΄Π°, ΠΈ ΠΊΠ°ΠΊ ΠΈ ΡΠ°Π½ΡΡΠ΅ ΠΌΡ Π½Π°ΡΠ½Π΅ΠΌ Ρ ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ. [5] ΠΠΈΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΠΊΠΎΠ΄Π°, ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π· ΠΌΠ°Π»ΡΡ PIC-ΠΌΠΎΠ΄Π΅Π»Ρ:
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° ΡΠ°Π·Π»ΠΈΡΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ ΠΈ ΠΌΠ°Π»ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ Π½Π΅ ΠΈΠ³ΡΠ°ΡΡ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠΎΠ»ΠΈ, ΠΌΡ ΡΡΠΎΠΊΡΡΠΈΡΡΠ΅ΠΌΡΡ Π½Π° Π²Π°ΠΆΠ½ΡΡ ΠΏΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ΄Π° ΡΠ΅ΡΠ΅Π· PIC ΠΌΠΎΠΌΠ΅Π½ΡΠ°Ρ : ΡΠ°Π·Π»ΠΈΡΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ Π»ΠΎΠΊΠ°Π»ΡΠ½ΡΠΌΠΈ (ΡΡΠ°ΡΠΈΡΠ½ΡΠΌΠΈ) ΠΈ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΌΠΈ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌΠΈ.
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅ΡΠΈΡΡ, Π½Π΅Ρ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ Π΄Π»Ρ ΡΡΠ°ΡΠΈΡΠ½ΡΡ ΠΌΠ°ΡΡΠΈΠ²ΠΎΠ² ΠΊΠΎΠ΄ΠΎΠΌ ΠΈ ΠΊΠΎΠ΄ΠΎΠΌ Π² Π½Π΅-PIC ΡΠ»ΡΡΠ°Π΅. ΠΡΠΎ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΏΠ»ΡΡΠΎΠ² Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x64: Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ IP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΌΡ Π΄ΠΎΡΡΡΠΏΡ ΠΊ Π΄Π°Π½Π½ΡΠΌ, ΠΌΡ Π±ΠΎΠ½ΡΡΠΎΠΌ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ PIC, ΠΏΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ ΠΏΠΎΠΊΠ° Π½Π΅ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π²Π½Π΅ΡΠ½ΠΈΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠΈΠΌΠ²ΠΎΠ»Π°ΠΌ. ΠΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΈ ΡΠ΅Π»ΠΎΠΊΠ°ΡΠΈΠΈ ΠΎΡΡΠ°ΡΡΡΡ ΡΠ΅ΠΌΠΈ ΠΆΠ΅, ΡΠ°ΠΊ ΡΡΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ ΠΈΡ Π»ΠΈΡΠ½ΠΈΠΉ ΡΠ°Π· Π½Π΅ Π½ΡΠΆΠ½ΠΎ.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ ΠΌΠ°ΡΡΠΈΠ²Ρ: ΡΡΠΎΠΈΡ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ Π² PIC Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΎΡ ΠΎΠ΄ΠΈΡΡ ΡΠ΅ΡΠ΅Π· GOT, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π² ΠΊΠ°ΠΊΠΎΠΉ-ΡΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΈΡ ΠΌΠΎΠ³ΡΡ Ρ ΡΠ°Π½ΠΈΡΡ, ΠΈΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΈΠΌΠΈ, ΠΎΠ±ΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ [6]. ΠΠΈΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅ΡΡ ΠΊΠΎΠ΄ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ global_arr :
Π’Π΅ΠΏΠ΅ΡΡ Π΄Π°Π²Π°ΠΉΡΠ΅ Π²Π·Π³Π»ΡΠ½Π΅ΠΌ Π½Π° Π²ΡΠ·ΠΎΠ² ΡΡΠ½ΠΊΡΠΈΠΈ:
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΠΊΠ°ΠΊΠΈΠ΅ Π½Π΅ΡΠ²Π½ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠΎΠ²Π΅ΡΡΠ°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ: ΡΡΠΎ ΠΊ GOT ΠΈ PLT ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠ΅ΡΠ΅Π· RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ. ΠΡΠΎ Π±ΡΠ΄Π΅Ρ Π²Π°ΠΆΠ½ΠΎ ΠΏΡΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ PIC-Π²Π°ΡΠΈΠ°Π½ΡΠ°ΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΊΠΎΠ΄Π°.
ΠΠΎΠ»ΡΡΠ°Ρ PIC-ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°
ΠΠΈΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ ΡΡΠΈΠΌ ΡΠΈΡΠ°ΡΡ ΠΈΠ· ABI:
Π ΠΌΠ°Π»ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° ΠΊΠΎ Π²ΡΠ΅ΠΌ Π°Π΄ΡΠ΅ΡΠ°ΠΌ (Π²ΠΊΠ»ΡΡΠ°Ρ GOT) ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ AMD64 IP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΡΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΡ. ΠΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎΡΡΠΎΠΌΡ Π½Π΅Ρ Π½ΡΠΆΠ΄Ρ Π² ΡΠ²Π½ΠΎΠΌ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ GOT ΠΈ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅Ρ Π½ΡΠΆΠ΄Ρ Π² ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΠ΅ΠΌ Π΅Π³ΠΎ ΠΏΡΠΎΠ»ΠΎΠ³Π΅ Π² ΡΡΠ½ΠΊΡΠΈΠΈ. Π Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΈ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΡΡ ΠΊΠΎΠ΄Π° Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ ΡΠ΅Π³ΠΈΡΡΡ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π°Π΄ΡΠ΅ΡΠ° GOT Π² Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡΡ ΠΎΡ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΠ±ΡΠ΅ΠΊΡΠ°Ρ , ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ AMD64 ISA Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠΎΠΌ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΠΌ 32 Π±ΠΈΡ.
ΠΠ°ΡΠ΅ΠΌ ΠΆΠ΅ ΠΌΡΡΠΈΡΡΡΡ Ρ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅ΠΌ Π°Π΄ΡΠ΅ΡΠ° GOT? ΠΠΎ-ΠΏΠ΅ΡΠ²ΡΡ , ΠΊΠ°ΠΊ ΠΎΡΠΌΠ΅ΡΠ΅Π½ΠΎ Π² ΡΠΈΡΠ°ΡΠ΅, Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ 32-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΠ΄Π²ΠΈΠ³Π° Π±ΡΠ΄Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π΄Π»Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ GOT, ΠΈΠ·-Π·Π° ΡΠ΅Π³ΠΎ Π½Π°ΠΌ ΠΈ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ 64-Π±ΠΈΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ. ΠΠΎ-Π²ΡΠΎΡΡΡ , ΠΌΡ Π²ΡΠ΅ Π΅ΡΠ΅ Ρ ΠΎΡΠΈΠΌ ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ PIC-Π²Π°ΡΠΈΠ°ΡΠΈΠ΅ΠΉ, ΡΠ°ΠΊ ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΡΡΡ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ Π² ΡΠ΅Π³ΠΈΡΡΡ. Π‘ΠΊΠΎΡΠ΅Π΅ ΡΠ°ΠΌ Π°Π΄ΡΠ΅Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ Π²ΡΡΠΈΡΠ»Π΅Π½ ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎ RIP. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΈ Π½ΡΠΆΠ΅Π½ ΠΏΡΠΎΠ»ΠΎΠ³: ΠΎΠ½ ΡΠΎΠ²Π΅ΡΡΠ°Π΅Ρ 64-Π±ΠΈΡΠ½ΠΎΠ΅ RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΠ΅.
Π Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅, ΡΠ°Π· Ρ Π½Π°Ρ Π² rbx ΡΠ΅ΠΏΠ΅ΡΡ Π΅ΡΡΡ Π°Π΄ΡΠ΅Ρ GOT, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠΎ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ static_arr :
ΠΠ±ΡΠ°ΡΠΈΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΡΠΎ Π²Π½ΠΎΠ²Ρ GOT ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΊΠ°ΠΊ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠ°, Π½Π° ΡΡΠΎΡ ΡΠ°Π· Π΄Π»Ρ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅Π·Π°Π²ΠΈΡΡΡΠ΅ΠΉ ΠΎΡ Π°Π΄ΡΠ΅ΡΠ° ΠΎΡΡΡΠ»ΠΊΠΈ ΠΊ ΡΠ΄Π²ΠΈΠ³Ρ PLT Π²Ρ ΠΎΠ΄Π°.
Π‘ΡΠ΅Π΄Π½ΡΡ PIC-ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°
ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π΄Π»Ρ ΡΡΠ΅Π΄Π½Π΅ΠΉ PIC-ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄:
ΠΡΠ·ΡΠ²Π°Π΅Ρ ΠΈΠ½ΡΠ΅ΡΠ΅Ρ ΡΠΎΡ ΡΠ°ΠΊΡ, ΡΡΠΎ ΠΊΠΎΠ΄ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ global_arr_big ΠΏΠΎΡ ΠΎΠΆ Π½Π° ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠ΄ Π² ΠΌΠ°Π»ΠΎΠΉ PIC-ΠΌΠΎΠ΄Π΅Π»ΠΈ. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΠΏΠΎ ΡΠΎΠΉ ΠΆΠ΅ ΠΏΡΠΈΡΠΈΠ½Π΅, ΠΏΠΎΡΠ΅ΠΌΡ ΠΏΡΠΎΠ»ΠΎΠ³ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΡΠΎΡΠ΅ ΠΏΡΠΎΠ»ΠΎΠ³Π° Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ: ΠΌΡ ΠΏΠΎΠ»Π°Π³Π°Π΅ΠΌ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ GOT Π² ΡΠ°ΠΌΠΊΠ°Ρ 32-Π±ΠΈΡΠ½ΠΎΠΉ RIP-ΠΎΡΠ½ΠΎΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ. ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, ΠΊ ΡΠ°ΠΌΠΎΠΌΡ global_arr_big Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ°ΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏ, Π½ΠΎ ΡΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΏΠΎΠΊΡΡΠ²Π°Π΅Ρ GOT, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ global_arr_big Π² Π½Π΅ΠΌ ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ, ΠΏΡΠΈΡΠ΅ΠΌ Π² Π²ΠΈΠ΄Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ°.
Π‘ΠΈΡΡΠ°ΡΠΈΡ, ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΡΠ»ΠΈΡΠ°Π΅ΡΡΡ Π΄Π»Ρ static_arr_big :
ΠΡΠΎΡ ΡΠ»ΡΡΠ°ΠΉ ΠΏΠΎΡ ΠΎΠΆ Π½Π° Π±ΠΎΠ»ΡΡΡΡ PIC-ΠΌΠΎΠ΄Π΅Π»Ρ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΡ ΠΌΡ Π²ΡΠ΅ ΠΆΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π°Π±ΡΠΎΠ»ΡΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°, ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π½Π΅Ρ Π² ΡΠ°ΠΌΠΎΠΌ GOT. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ Π±ΠΎΠ»ΡΡΠΎΠΉ ΡΠΈΠΌΠ²ΠΎΠ», ΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌ Π½Π΅Π»ΡΠ·Ρ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΡΡ Π΅Π³ΠΎ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ Π² Π½ΠΈΠΆΠ½ΠΈΡ Π΄Π²ΡΡ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°Ρ , Π½Π°ΠΌ, ΠΊΠ°ΠΊ ΠΈ Π² Π±ΠΎΠ»ΡΡΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ, ΡΡΠ΅Π±ΡΠ΅ΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΉ PIC ΡΠ΄Π²ΠΈΠ³.
ΠΡΠΈΠΌΠ΅ΡΠ°Π½ΠΈΡ:
[1] ΠΠ΅ ΡΡΠΎΠΈΡ ΠΏΡΡΠ°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° Ρ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΏΠ°ΠΌΡΡΠΈ Intel, Π²ΡΠ΅ ΡΡΠΎ ΡΠ°Π·Π½ΡΠ΅ ΡΠ΅ΠΌΡ.
[2] ΠΠ°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡΡ: ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ, ΠΈ ΡΠ΅ΠΆΠΈΠΌΡ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ ΡΠΈΠΊΡΠΈΡΡΡΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΡΠΎΠΌ ΡΠ°Π³Π΅. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ Π·Π½Π°ΡΡ Π² ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΈΠ»ΠΈ ΠΎΠ±ΡΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΏΠΎΠΏΠ°Π΄Π΅Ρ ΠΎΠ±ΡΠ΅ΠΊΡΠ½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ, ΠΎΠ΄Π½ΠΈ ΠΌΠΎΠ³ΡΡ ΠΎΠΊΠ°Π·Π°ΡΡΡΡ ΠΌΠ°Π»ΡΠΌΠΈ, Π° Π΄ΡΡΠ³ΠΈΠ΅ Π±ΠΎΠ»ΡΡΠΈΠΌΠΈ. ΠΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊΡ ΠΈΠ·Π²Π΅ΡΡΠ΅Π½ ΡΠ°Π·ΠΌΠ΅Ρ ΠΈΡΠΎΠ³ΠΎΠ²ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, Π½ΠΎ ΡΠΆΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΏΠΎΠ·Π΄Π½ΠΎ: ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈΡΡ ΠΏΠ°ΡΡΠΈΡΡ ΡΠ΄Π²ΠΈΠ³ ΠΊΠΎΠΌΠ°Π½Π΄ ΡΠ΅Π»ΠΎΠΊΠ°ΡΠΈΠ΅ΠΉ, Π° Π½Π΅ ΠΌΠ΅Π½ΡΡΡ ΡΠ°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Β«ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΠ΅Β» ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠΎΠ΄Π° Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ Β«ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ΠΎΒ» ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠΌ Π½Π° ΡΡΠ°ΠΏΠ΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
[3] ΠΡΠ»ΠΈ ΡΡΠΎ-ΡΠΎ ΠΎΡΡΠ°Π»ΠΎΡΡ Π½Π΅ΠΏΠΎΠ½ΡΡΠ½ΡΠΌ, ΠΎΠ·Π½Π°ΠΊΠΎΠΌΡΡΠ΅ΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΡΠ°ΡΡΠ΅ΠΉ.
[4] Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΎΠ±ΡΠ΅ΠΌΡ ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎ ΡΠ°ΡΡΡΡ. ΠΠΎΠ³Π΄Π° Ρ Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΡΠ°Π· ΠΏΡΠΎΠ²Π΅ΡΡΠ» Debug+Asserts Π±ΠΈΠ»Π΄ Clang, ΠΎΠ½ ΠΏΠΎΡΡΠΈ Π΄ΠΎΡΡΠΈΠ³Π°Π» ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π³ΠΈΠ³Π°Π±Π°ΠΉΡΠ°, Π·Π° ΡΡΠΎ Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ ΡΠΏΠ°ΡΠΈΠ±ΠΎ Π°Π²ΡΠΎΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌΠΎΠΌΡ ΠΊΠΎΠ΄Ρ.
[5] ΠΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ PIC (ΠΊΠ°ΠΊ Π² ΡΠ΅Π»ΠΎΠΌ, ΡΠ°ΠΊ ΠΈ Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x64), ΡΠ°ΠΌΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ ΡΠΎ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌΠΈ ΡΡΠ°ΡΡΡΠΌΠΈ ΠΏΠΎ ΡΠ΅ΠΌΠ΅: ΡΠ°Π· ΠΈ Π΄Π²Π°.
[6] Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΡΠΈΠΊ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΠΌΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎ ΡΠ°Π·ΡΠ΅ΡΠΈΡΡ ΡΡΡΠ»ΠΊΠΈ, ΠΈ Π²ΡΠ½ΡΠΆΠ΄Π΅Π½ ΠΏΠ΅ΡΠ΅Π»ΠΎΠΆΠΈΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ GOT Π½Π° Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈΠΉ Π·Π°Π³ΡΡΠ·ΡΠΈΠΊ.
64 Π±ΠΈΡΠ°
Π‘ΡΠ°ΡΡΡ ΡΠ°ΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠΌΡΡΠ» ΡΠ΅ΡΠΌΠΈΠ½Π° Β«64 Π±ΠΈΡΠ°Β». Π ΡΡΠ°ΡΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π° ΠΈΡΡΠΎΡΠΈΡ ΡΠ°Π·Π²ΠΈΡΠΈΡ 64-Π±ΠΈΡΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ, ΠΎΠΏΠΈΡΠ°Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½ΡΠ΅ Π½Π° Π΄Π°Π½Π½ΡΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ Intel 64 ΠΈ 64-Π±ΠΈΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Windows.
ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅
Π ΡΠ°ΠΌΠΊΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΡΠ΅Ρ Π½ΠΈΠΊΠΈ ΠΏΠΎΠ΄ ΡΠ΅ΡΠΌΠΈΠ½ΠΎΠΌ Β«64-Π±ΠΈΡΠ½ΡΠΉΒ» ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ΅Π»ΡΠ΅ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ , ΠΈΠΌΠ΅ΡΡΠΈΡ ΡΠ°Π·ΠΌΠ΅Ρ 64 Π±ΠΈΡΠ°. ΠΠΎΠ΄ Β«64-Π±ΠΈΡΠ½ΡΠΌΠΈΒ» ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, EM64T, IA-64) ΠΈΠ»ΠΈ 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Windows XP Professional x64 Edition). ΠΠΎΠΆΠ½ΠΎ Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΎΡΠ°Ρ , Π³Π΅Π½Π΅ΡΠΈΡΡΡΡΠΈΡ 64-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄.
Π Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠΎΠΌΠ΅Π½ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ. Π‘ΡΠ°ΡΡΡ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ², ΠΆΠ΅Π»Π°ΡΡΠΈΡ Π½Π°ΡΠ°ΡΡ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ, ΠΈ ΠΎΡΠΈΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π° Π½Π° Windows-ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ², ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π»Ρ Π½ΠΈΡ Π²ΠΎΠΏΡΠΎΡ Π·Π½Π°ΠΊΠΎΠΌΡΡΠ²Π° Ρ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΡΠ°Π»Π΅Π½.
ΠΡΡΠΎΡΠΈΡ 64-Π±ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ
64-Π±ΠΈΡΠ½ΠΎΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅Π΄Π°Π²Π½ΠΎ Π²ΠΎΡΠ»Π° Π² ΠΆΠΈΠ·Π½Ρ Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΠΏΡΠΈΠΊΠ»Π°Π΄Π½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠΎΠ². ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π±ΠΎΡΠ° Ρ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ Π΄Π°Π½Π½ΡΠΌΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠΆΠ΅ Π΄Π»ΠΈΠ½Π½ΡΡ ΠΈΡΡΠΎΡΠΈΡ.
1961: IBM Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ IBM 7030 Stretch, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π΄Π°Π½Π½ΡΡ , 32-Π±ΠΈΡΠ½ΡΠ΅ ΠΈΠ»ΠΈ 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΌΠ°ΡΠΈΠ½Π½ΡΠ΅ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ.
1974: Control Data Corporation Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π²Π΅ΠΊΡΠΎΡΠ½ΡΠΉ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ CDC Star-100, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° 64-Π±ΠΈΡΠ½ΡΡ ΡΠ»ΠΎΠ² (ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ CDC ΠΈΠΌΠ΅Π»ΠΈ 60-Π±ΠΈΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ).
1976: Cray Research Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ Cray-1, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° 64-Π±ΠΈΡΠ½ΡΡ ΡΠ»ΠΎΠ² ΠΈ ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΡΠ»ΡΠΆΠΈΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²Π΅ΠΊΡΠΎΡΠ½ΡΡ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² Cray.
1985: Cray Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ UNICOS β ΠΏΠ΅ΡΠ²ΡΡ 64-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Unix.
1991: MIPS Technologies ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ ΠΏΠ΅ΡΠ²ΡΠΉ 64-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ, R4000, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΡΡΠ΅ΡΡΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠΉ Π² ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ MIPS. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π² Π³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΡΡ SGI Π½Π°ΡΠΈΠ½Π°Ρ Ρ ΠΌΠΎΠ΄Π΅Π»ΠΈ IRIS Crimson. Kendall Square Research Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ ΡΡΠΏΠ΅ΡΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ KSR1, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ ΠΈΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π·Π°ΠΏΠ°ΡΠ΅Π½ΡΠΎΠ²Π°Π½Π½ΠΎΠΉ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ RISC ΠΏΠΎΠ΄ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ OSF/1.
1992: Digital Equipment Corporation (DEC) ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΡ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Alpha β Π΄Π΅ΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ° PRISM.
1993: DEC Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ 64-Π±ΠΈΡΠ½ΡΡ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ DEC OSF/1 AXP (ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½ΡΡ Π² Tru64 UNIX) Π΄Π»Ρ ΡΠ²ΠΎΠΈΡ ΡΠΈΡΡΠ΅ΠΌ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΡ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Alpha.
1994: Intel ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΎ ΡΠ²ΠΎΠΈΡ ΠΏΠ»Π°Π½Π°Ρ ΠΏΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ IA-64 (ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ Hewlett-Packard) β ΠΏΡΠ΅Π΅ΠΌΠ½ΠΈΠΊΠ° ΠΈΡ 32-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² IA-32. ΠΠ°ΡΠ° Π²ΡΠΏΡΡΠΊΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π½Π° 1998-1999 Π³ΠΎΠ΄Ρ. SGI Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ IRIX 6.0 Ρ 64-Π±ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΠΈΠΏΡΠ΅ΡΠ° R8000.
1995: Sun Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ 64-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° SPARC UltraSPARC. HAL Computer Systems, ΠΏΠΎΠ΄ΡΠΈΠ½Π΅Π½Π½Π°Ρ Fujitsu, Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ°Π±ΠΎΡΠΈΠ΅ ΡΡΠ°Π½ΡΠΈΠΈ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° SPARC64 ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠΎΠ»Π΅Π½ΠΈΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠ΅ΠΉ HAL. IBM Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ A10 ΠΈ A30, Π° ΡΠ°ΠΊΠΆΠ΅ 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ PowerPC AS. IBM ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ 64-Π±ΠΈΡΠ½ΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΈΡΡΠ΅ΠΌΡ AS/400, ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²ΡΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ, Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
1996: Nintendo ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΈΠ³ΡΠΎΠ²ΡΡ ΠΊΠΎΠ½ΡΠΎΠ»Ρ Nintendo 64, ΡΠΎΠ·Π΄Π°Π½Π½ΡΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΠ° MIPS R4000. HP Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ 64-Π±ΠΈΡΠ½ΠΎΠΉ 2.0 Π²Π΅ΡΡΠΈΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ PA-RISC PA-8000.
1997: IBM Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π»ΠΈΠ½Π΅ΠΉΠΊΡ RS64 64-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² PowerPC/PowerPC AS.
1998: Sun Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ Solaris 7 Ρ ΠΏΠΎΠ»Π½ΠΎΠΉ 64-Π±ΠΈΡΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ UltraSPARC.
1999: Intel Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ Π½Π°Π±ΠΎΡ ΠΊΠΎΠΌΠ°Π½Π΄ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ IA-64. AMD ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ ΠΎΠ±ΡΡΠ²Π»ΡΠ΅Ρ ΠΎ ΡΠ²ΠΎΠ΅ΠΌ Π½Π°Π±ΠΎΡΠ΅ 64-Π±ΠΈΡΠ½ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ Π΄Π»Ρ IA-32, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ» Π½Π°Π·Π²Π°Π½ x86-64 (ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² AMD64).
2000: IBM Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ²ΠΎΠΉ ΠΏΠ΅ΡΠ²ΡΠΉ 64-Π±ΠΈΡΠ½ΡΠΉ ΠΌΡΠΉΠ½ΡΡΠ΅ΠΉΠΌ zSeries z900, ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΠΉ Ρ ESA/390, Π° ΡΠ°ΠΊΠΆΠ΅ Π½ΠΎΠ²ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌΡ z/OS.
2001: Intel Π½Π°ΠΊΠΎΠ½Π΅Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ Π»ΠΈΠ½Π΅ΠΉΠΊΡ 64-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΠΏΠ΅ΡΡ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Itanium ΠΈ ΡΠ°ΡΡΡΠΈΡΠ°Π½Ρ Π½Π° Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ. ΠΡΠΎΠ΅ΠΊΡ Π½Π΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡΠΌ ΠΈΠ·-Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ Π·Π°Π΄Π΅ΡΠΆΠ΅ΠΊ ΠΏΡΠΈ Π²ΡΠΏΡΡΠΊΠ΅ IA-64 Π½Π° ΡΡΠ½ΠΎΠΊ. NetBSD ΡΡΠ°Π½ΠΎΠ²ΠΈΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π½Π° ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅ Intel Itanium ΠΏΠΎΡΠ»Π΅ Π΅Π³ΠΎ Π²ΡΡ ΠΎΠ΄Π°. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Microsoft ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ Windows XP 64-Bit Edition Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ IA-64 ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Itanium, Ρ ΠΎΡΡ Π² Π½Π΅ΠΉ ΡΠΎΡ ΡΠ°Π½ΡΠ΅ΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ 32-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ WoW64.
2003: AMD ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Opteron ΠΈ Athlon 64, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ AMD64, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ²ΠΎΠΉ 64-Π±ΠΈΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΎΠΉ, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ x86. Apple Π½Π°ΡΠΈΠ½Π°Π΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ 64-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Β«G5Β» PowerPC 970 ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΡΡΠ²Π° IBM. Intel ΡΡΠ²Π΅ΡΠΆΠ΄Π°Π΅Ρ, ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ½ΡΠ΅ ΡΠΈΠΏΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Itanium ΠΎΡΡΠ°Π½ΡΡΡΡ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΌΠΈ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ°ΠΌΠΈ, ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΌΠΈ Π² ΠΈΡ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
2004: Π ΠΎΡΠ²Π΅Ρ Π½Π° ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠΏΠ΅Ρ AMD, Intel ΠΏΡΠΈΠ·Π½Π°Π΅ΡΡΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ°Π·ΡΠ°Π±Π°ΡΡΠ²Π°Π»ΠΈ ΠΊΠ»ΠΎΠ½ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ AMD64, ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π΄Π°Π»ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ IA-32e (ΠΏΠΎΠ·ΠΆΠ΅ ΠΏΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ Π² EM64T, ΠΈ Π·Π°ΡΠ΅ΠΌ Π΅ΡΠ΅ ΡΠ°Π· Π² Intel 64). Intel ΡΠ°ΠΊΠΆΠ΅ Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ² ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² Xeon ΠΈ Pentium 4 Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄.
2004: VIA Technologies ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ²ΠΎΠΉ 64-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Isaiah.
2005: 31 ΡΠ½Π²Π°ΡΡ Sun Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ Solaris 10 Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AMD64 / Intel 64. 30 Π°ΠΏΡΠ΅Π»Ρ Microsoft Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ Windows XP Professional x64 Edition Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AMD64 / Intel 64.
2006: Sony, IBM ΠΈ Toshiba Π½Π°ΡΠΈΠ½Π°ΡΡ Π²ΡΠΏΡΡΠΊ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ° Cell Π΄Π»Ρ PlayStation 3, ΡΠ΅ΡΠ²Π΅ΡΠΎΠ², ΡΠ°Π±ΠΎΡΠΈΡ ΡΡΠ°Π½ΡΠΈΠΉ ΠΈ Π΄ΡΡΠ³ΠΈΡ ΡΡΡΡΠΎΠΉΡΡΠ². Microsoft Π²ΡΠΏΡΡΠΊΠ°Π΅Ρ Windows Vista Ρ Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΠΎΠΉ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠ΅ΠΉ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AMD64 / Intel 64, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ 32-Π±ΠΈΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ. ΠΡΠ΅ Windows-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΡΠ²Π»ΡΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· Π½ΠΈΡ ΠΈΠΌΠ΅ΡΡ 32-Π±ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, Π²ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π² Π²ΠΈΠ΄Π΅ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π² ΡΠ΅Π»ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ.
2009: ΠΠ°ΠΊ ΠΈ Windows Vista, Windows 7 ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΠΏΠΎΠ»Π½ΡΡ 64-Π±ΠΈΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡ Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AMD64 / Intel 64, ΠΈ Π½Π° Π±ΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ Π½ΠΎΠ²ΡΡ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ 64-Π±ΠΈΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ. ΠΡΡ ΠΎΠ΄ΠΈΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Apple Mac OS X 10.6, Β«Snow LeopardΒ» ΠΊΠΎΡΠΎΡΠ°Ρ ΠΈΠΌΠ΅Π΅Ρ 64-Π±ΠΈΡΠ½ΠΎΠ΅ ΡΠ΄ΡΠΎ ΠΈ ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½Π° Π΄Π»Ρ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠΎΠ² AMD64 / Intel 64, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Apple. ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΏΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Ρ Mac OS X 10.6, ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π»ΡΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ.
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ Ρ ΠΈΡΡΠΎΡΠΈΠ΅ΠΉ ΡΠ°Π·Π²ΠΈΡΠΈΡ 64-Π±ΠΈΡΠ½ΡΡ ΡΠΈΡΡΠ΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π² ΡΡΠ°ΡΡΠ΅ ΠΠΆΠΎΠ½Π° ΠΠ°ΡΠ΅ΠΉ «ΠΠΎΠ»Π³Π°Ρ Π΄ΠΎΡΠΎΠ³Π° ΠΊ 64 Π±ΠΈΡΠ°ΠΌ» [1] ΠΈ Π² ΡΠ½ΡΠΈΠΊΠ»ΠΎΠΏΠ΅Π΄ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Π² Wikipedia «64-bit» [2].
ΠΡΠΈΠΊΠ»Π°Π΄Π½ΠΎΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ 64-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Intel 64 (AMD64)
Π Π°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅ΠΌΠ°Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Intel 64 ΠΏΡΠΎΡΡΠΎΠ΅, Π½ΠΎ Π² ΡΠΎ ΠΆΠ΅ Π²ΡΠ΅ΠΌΡ ΠΌΠΎΡΠ½ΠΎΠ΅ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΠ΅ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ ΠΏΡΠΎΠΌΡΡΠ»Π΅Π½Π½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ x86. ΠΠ½Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ 64-Π±ΠΈΡΠ½ΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈ ΡΠ°ΡΡΠΈΡΡΠ΅Ρ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π΄Π»Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π±ΠΎΠ»ΡΡΠ΅ΠΉ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ 64-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅Π³ΠΎ 16-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΈ 32-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠΈΡΡΠ΅ΠΌ Π±Π΅Π· ΠΈΡ ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΡΠ»ΠΈΡΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΡ Intel 64 ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠ΅ΡΡΠ½Π°Π΄ΡΠ°ΡΠΈ 64-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Π² x86-32 ΠΈΠΌΠ΅Π»ΠΎΡΡ Π²ΠΎΡΠ΅ΠΌΡ 32-Π±ΠΈΡΠ½ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ²). ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ Π°ΡΠΈΡΠΌΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π½Π°Π΄ ΡΠ΅Π»ΡΠΌΠΈ ΡΠΈΡΠ»Π°ΠΌΠΈ. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠ΅ Π°Π΄ΡΠ΅ΡΠ°. ΠΠ»Ρ Π°Π΄ΡΠ΅ΡΠ°ΡΠΈΠΈ Π½ΠΎΠ²ΡΡ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ Π²Π²Π΅Π΄Π΅Π½Ρ Β«ΠΏΡΠ΅ΡΠΈΠΊΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ°Β», Π΄Π»Ρ ΠΊΠΎΡΠΎΡΡΡ Π±ΡΠ» Π²ΡΠ±ΡΠ°Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΊΠΎΠ΄ΠΎΠ² 40h-4Fh, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΡ ΡΡ Π΄Π»Ρ ΠΊΠΎΠΌΠ°Π½Π΄ INC ΠΈ DEC Π² 32- ΠΈ 16-Π±ΠΈΡΠ½ΡΡ ΡΠ΅ΠΆΠΈΠΌΠ°Ρ . ΠΠΎΠΌΠ°Π½Π΄Ρ INC ΠΈ DEC Π² 64-Π±ΠΈΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°ΡΡΡΡ Π² Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅ΠΉ, Π΄Π²ΡΡ Π±Π°ΠΉΡΠΎΠ²ΠΎΠΉ ΡΠΎΡΠΌΠ΅.
16 ΡΠ΅Π»ΠΎΡΠΈΡΠ»Π΅Π½Π½ΡΡ
64-Π±ΠΈΡΠ½ΡΡ
ΡΠ΅Π³ΠΈΡΡΡΠ° ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 β R15),
8 80-Π±ΠΈΡΠ½ΡΡ
ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Ρ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΡΠΎΡΠΊΠΎΠΉ (ST0 β ST7),
8 64-Π±ΠΈΡΠ½ΡΡ
ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² Multimedia Extensions (MM0 β MM7, ΠΈΠΌΠ΅ΡΡ ΠΎΠ±ΡΠ΅Π΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΠΌΠΈ ST0 β ST7),
16 128-Π±ΠΈΡΠ½ΡΡ
ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² SSE (XMM0 β XMM15),
64-Π±ΠΈΡΠ½ΡΠΉ ΡΠΊΠ°Π·Π°ΡΠ΅Π»Ρ RIP ΠΈ 64-Π±ΠΈΡΠ½ΡΠΉ ΡΠ΅Π³ΠΈΡΡΡ ΡΠ»Π°Π³ΠΎΠ² RFLAGS.
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ 64-Π±ΠΈΡΠ½ΠΎΠΉ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΡΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π±ΠΎΠ»ΡΡΠΎΠ΅ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π ΠΏΠ΅ΡΠ²ΡΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΡΡΠΎ Π²ΡΡΠΎΠΊΠΎΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²Π΅ΡΡ, ΡΠΈΡΡΠ΅ΠΌΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ , Π‘ΠΠΠ ΠΈ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈΠ³ΡΡ. Π’Π°ΠΊΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠ°Ρ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΎΡ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° ΠΈ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ². ΠΠ°Π»ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠ΅ Π² ΡΡΡΠ°ΡΠ΅Π²ΡΠ΅ΠΉ x86 Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅, ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π² Π²ΡΡΠΈΡΠ»ΠΈΡΠ΅Π»ΡΠ½ΡΡ Π·Π°Π΄Π°ΡΠ°Ρ . Π£Π²Π΅Π»ΠΈΡΠ΅Π½Π½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π΄Π»Ρ ΠΌΠ½ΠΎΠ³ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
64-Π±ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ
ΠΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΅ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΠΌΠ΅ΡΡ Π²Π΅ΡΡΠΈΠΈ Π΄Π»Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Intel 64. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Microsoft ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Windows XP x64. ΠΡΡΠΏΠ½Π΅ΠΉΡΠΈΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ UNIX ΡΠΈΡΡΠ΅ΠΌ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΠ°Π²Π»ΡΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, ΠΊΠ°ΠΊ Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ Linux Debian 3.5 x86-64. ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ Π²Π΅ΡΡ ΠΊΠΎΠ΄ ΡΠ°ΠΊΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌ. Π§Π°ΡΡΡ ΠΊΠΎΠ΄Π° ΠΠ‘ ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΠΏΠΎΠ»Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΡΡΠ°Π²Π°ΡΡΡΡ 32-Π±ΠΈΡΠ½ΡΠΌΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ Intel 64 ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ½ΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ Ρ 32-Π±ΠΈΡΠ½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, 64-Π±ΠΈΡΠ½Π°Ρ Π²Π΅ΡΡΠΈΡ Windows ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΠΆΠΈΠΌ WoW64 (Windows-on-Windows 64), ΠΊΠΎΡΠΎΡΡΠΉ ΡΡΠ°Π½ΡΠ»ΠΈΡΡΠ΅Ρ Π²ΡΠ·ΠΎΠ²Ρ 32-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ 64-Π±ΠΈΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ°Π»Π΅Π΅ Π² ΡΡΠ°ΡΡΠ΅ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΠΌΠ΅ΠΉΡΡΠ²Π° Windows.
WoW64
Windows-on-Windows 64-bit (WoW64) β ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Windows, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ 32-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π²ΡΠ΅Ρ 64-Π±ΠΈΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡΡ Windows.
WoW64 Π½Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Intel 64 (AMD64 / x64) Π½Π΅ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΉ. ΠΠ΄Π΅ΡΡ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° WoW64 ΡΠΌΡΠ»ΠΈΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ 32-Π±ΠΈΡΠ½ΠΎΠ΅ ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠ΅, Π·Π° ΡΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ 32-Π±ΠΈΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ 64-Π±ΠΈΡΠ½ΡΠΌ Windows API. ΠΠ΄Π΅-ΡΠΎ ΡΡΠ° ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠ° ΡΠΎΠ½ΠΊΠ°Ρ, Π³Π΄Π΅-ΡΠΎ Π½Π΅ ΠΎΡΠ΅Π½Ρ. ΠΠ»Ρ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΏΠΎΡΠ΅ΡΠΈ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΈΠ·-Π·Π° Π½Π°Π»ΠΈΡΠΈΡ ΡΠ°ΠΊΠΎΠΉ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ ΡΠΎΡΡΠ°Π²ΡΡ ΠΎΠΊΠΎΠ»ΠΎ 2%. ΠΠ»Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅. ΠΠ²Π° ΠΏΡΠΎΡΠ΅Π½ΡΠ° ΡΡΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ, Π½ΠΎ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΡΠΈΡΡΠ²Π°ΡΡ, ΡΡΠΎ 32-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΏΠΎΠ΄ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ 64-Π±ΠΈΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Windows, ΡΠ΅ΠΌ Π² 32-Π±ΠΈΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅.
ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΊΠ»ΡΡΠ°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ Π² WoW64, Π½ΠΎ ΠΈ Π΄Π°Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΏΡΠΈΡΠΎΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ. ΠΡΠΎ ΡΠ²ΡΠ·Π°Π½ΠΎ Ρ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΌΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡΠΌΠΈ Π² ΠΌΠΈΠΊΡΠΎΠΏΡΠΎΡΠ΅ΡΡΠΎΡΠ΅, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠ΅Π³ΠΈΡΡΡΠΎΠ² ΠΎΠ±ΡΠ΅Π³ΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠ΅Π΄Π½Π΅ΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΆΠΈΠ΄Π°ΡΡ Π² ΠΏΡΠ΅Π΄Π΅Π»Π°Ρ 5-15% ΠΏΡΠΈΡΠΎΡΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΡ ΠΏΡΠΎΡΡΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΠΈ.
ΠΠ·-Π·Π° Π½Π°Π»ΠΈΡΠΈΡ ΠΏΡΠΎΡΠ»ΠΎΠΉΠΊΠΈ WoW64 32-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ΅Π½Π΅Π΅ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ Π² 64-Π±ΠΈΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅, ΡΠ΅ΠΌ Π² 32-Π±ΠΈΡΠ½ΠΎΠΉ. ΠΠΎ Π²ΡΠ΅-ΡΠ°ΠΊΠΈ, ΠΏΡΠΎΡΡΡΠ΅ 32-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΠ΄Π½ΠΎ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎ ΠΎΡ ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ° Π² 64-Π±ΠΈΡΠ½ΠΎΠΉ ΡΡΠ΅Π΄Π΅. ΠΡ, Π½Π°Π²Π΅ΡΠ½ΠΎΠ΅, Π·Π½Π°Π΅ΡΠ΅, ΡΡΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, ΡΠΎΠ±ΡΠ°Π½Π½Π°Ρ Ρ ΠΊΠ»ΡΡΠΎΠΌ /LARGEADDRESSAWARE:YES ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π΅Π»ΡΡΡ Π΄ΠΎ 3-Ρ Π³ΠΈΠ³Π°Π±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ, Π΅ΡΠ»ΠΈ 32-Π±ΠΈΡΠ½Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°Ρ ΡΠΈΡΡΠ΅ΠΌΠ° Windows Π·Π°ΠΏΡΡΠ΅Π½Π° Ρ ΠΊΠ»ΡΡΠΎΠΌ /3gb. Π’Π°ΠΊ Π²ΠΎΡ, ΡΡΠ° ΠΆΠ΅ 32-Π±ΠΈΡΠ½Π°Ρ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°, Π·Π°ΠΏΡΡΠ΅Π½Π½Π°Ρ Π½Π° 64-Π±ΠΈΡΠ½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅, ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΏΠΎΡΡΠΈ 4 GB ΠΏΠ°ΠΌΡΡΠΈ (Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅ ΠΎΠΊΠΎΠ»ΠΎ 3.5 GB).
ΠΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° WoW64 ΠΈΠ·ΠΎΠ»ΠΈΡΡΠ΅Ρ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ ΠΎΡ 64-ΡΠ°Π·ΡΡΠ΄Π½ΡΡ ΠΏΡΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠΉ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ ΠΈ ΡΠ΅Π΅ΡΡΡΡ. ΠΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠ°Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ Π΄ΠΎΡΡΡΠΏ 32-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌ ΠΊ Π΄Π°Π½Π½ΡΠΌ 64-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, 32-Π±ΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΡΠ°ΠΉΠ» DLL ΠΈΠ· ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° %systemroot%\System32, ΠΌΠΎΠΆΠ΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ 64-ΡΠ°Π·ΡΡΠ΄Π½ΠΎΠΌΡ ΡΠ°ΠΉΠ»Ρ DLL, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ 32-Π±ΠΈΡΠ½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΎΠΉ. ΠΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° WoW64 ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π΄ΠΎΡΡΡΠΏ ΠΈΠ· ΠΏΠ°ΠΏΠΊΠΈ %systemroot%\System32 Π² ΠΏΠ°ΠΏΠΊΡ %systemroot%\SysWOW64. ΠΡΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΏΡΠΈ ΡΡΠΎΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ°ΠΉΠ» DLL, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ 32-ΡΠ°Π·ΡΡΠ΄Π½ΡΠΌΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Ρ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ ΡΠ΅Π΅ΡΡΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ Π² ΡΠ°Π·Π΄Π΅Π»Π΅ MSDN «Running 32-bit Applications».
ΠΡΠΎΠ³ΡΠ°ΠΌΠΌΠ½Π°Ρ ΠΌΠΎΠ΄Π΅Π»Ρ Win64
Π’Π°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² Win32 ΡΠ°Π·ΠΌΠ΅Ρ ΡΡΡΠ°Π½ΠΈΡ Π² Win64 ΡΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ 4ΠΠ±. ΠΠ΅ΡΠ²ΡΠ΅ 64ΠΠ± Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π° Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ, ΡΠΎ Π΅ΡΡΡ Π½Π°ΠΈΠΌΠ΅Π½ΡΡΠΈΠΉ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΡΠΉ Π°Π΄ΡΠ΅Ρ ΡΡΠΎ 0x10000. Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Win32, ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠ΅ DLL Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ Π²ΡΡΠ΅ 4ΠΠ±.
Π Π°Π·Π½ΠΈΡΠ° Π² ΡΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡΡ ΠΎ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ΅ Π½Π΅Π»ΡΠ·Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ 64-Π±ΠΈΡΠ½ΡΠΉ, ΠΈ 32-Π±ΠΈΡΠ½ΡΠΉ ΠΊΠΎΠ΄. ΠΡΡΠ³ΠΈΠΌΠΈ ΡΠ»ΠΎΠ²Π°ΠΌΠΈ, Π΅ΡΠ»ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΎ Π΄Π»Ρ 64-Π±ΠΈΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΠΆΠΈΠΌΠ°, ΡΠΎ Π²ΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ (DLL) ΡΠ°ΠΊΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ 64-Π±ΠΈΡΠ½ΡΠΌΠΈ.
ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΡΠ΅ΡΠ΅Π· ΡΠ΅Π³ΠΈΡΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½ΠΎΠ²ΡΠ΅ΡΡΠ², Π΄Π΅Π»Π°ΡΡΠΈΡ 64-Π±ΠΈΡΠ½ΡΠ΅ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΡΠΌΠΈ, ΡΠ΅ΠΌ 32-Π±ΠΈΡΠ½ΡΠ΅. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ Π²ΡΠΈΠ³ΡΡΡ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ 64-Π±ΠΈΡΠ½ΡΠ΅ ΡΠΈΠΏΡ Π΄Π°Π½Π½ΡΡ .
ΠΠ΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ
Π₯ΠΎΡΡ 64-Π±ΠΈΡΠ½ΡΠΉ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ Π°Π΄ΡΠ΅ΡΠΎΠ²Π°ΡΡ 16 ΡΠΊΠ·Π°Π±Π°ΠΉΡ ΠΏΠ°ΠΌΡΡΠΈ (2^64), Win64 Π² Π½Π°ΡΡΠΎΡΡΠΈΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ 16 ΡΠ΅ΡΠ°Π±Π°ΠΉΡ (2^44). ΠΡΠΎΠΌΡ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈΡΠΈΠ½. Π’Π΅ΠΊΡΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡΠΎΡΡ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏ Π»ΠΈΡΡ ΠΊ 1 ΡΠ΅ΡΠ°Π±Π°ΠΉΡΡ (2^40) ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΏΠ°ΠΌΡΡΠΈ. ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° (Π½ΠΎ Π½Π΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½Π°Ρ ΡΠ°ΡΡΡ) ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΈΡΠΈΡΡ ΡΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π΄ΠΎ 4 ΠΏΠ΅ΡΠ°Π±Π°ΠΉΡ (2^52). ΠΠ΄Π½Π°ΠΊΠΎ Π² ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΎΠ³ΡΠΎΠΌΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠ°ΠΌΡΡΠΈ Π΄Π»Ρ ΡΡΡΠ°Π½ΠΈΡΠ½ΡΡ ΡΠ°Π±Π»ΠΈΡ, ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΠΈΡ ΠΏΠ°ΠΌΡΡΡ.
ΠΠΎΠΌΠΈΠΌΠΎ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Π½ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠΉ, ΠΎΠ±ΡΠ΅ΠΌ ΠΏΠ°ΠΌΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π² ΡΠΎΠΉ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ 64-Π±ΠΈΡΠ½ΠΎΠΉ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΠ΅ Windows Π·Π°Π²ΠΈΡΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΠΎΡ ΠΊΠΎΠΌΠΌΠ΅ΡΡΠ΅ΡΠΊΠΈΡ ΡΠΎΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Microsoft. ΠΠΈΠΆΠ΅ ΠΏΡΠΈΠ²Π΅Π΄Π΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΏΠΎ ΠΎΠ±ΡΠ΅ΠΌΡ ΠΏΠ°ΠΌΡΡΠΈ, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΠΎΠΉ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ 64-Π±ΠΈΠ½ΡΠΌΠΈ Π²Π΅ΡΡΠΈΡΠΌΠΈ Windows:
Windows XP Professional β 128 Gbyte;
Windows Server 2003, Standard β 32 Gbyte;
Windows Server 2003, Enterprise β 1 Tbyte;
Windows Server 2003, Datacenter β 1 Tbyte;
Windows Server 2008, Datacenter β 2 Tbyte;
Windows Server 2008, Enterprise β 2 Tbyte;
Windows Server 2008, Standard β 32 Gbyte;
Windows Server 2008, Web Server β 32 Gbyte;
Vista Home Basic β 8 Gbyte;
Vista Home Premium β 16 Gbyte;
Vista Business β 128 Gbyte;
Vista Enterprise β 128 Gbyte;
Vista Ultimate β 128 Gbyte;
Windows 7 Home Basic β 8 Gbyte;
Windows 7 Home Premium β 16 Gbyte;
Windows 7 Professional β 192 Gbyte;
Windows 7 Enterprise β 192 Gbyte;
Windows 7 Ultimate β 192 Gbyte;
Π Π°Π·ΡΠ°Π±ΠΎΡΠΊΠ° 64-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ
ΠΠ°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎ Π²ΠΎΠΏΡΠΎΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ 64-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Ρ Π² ΠΊΡΡΡΠ΅ «Π£ΡΠΎΠΊΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ 64-Π±ΠΈΡΠ½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π½Π° ΡΠ·ΡΠΊΠ΅ Π‘ΠΈ/Π‘ΠΈ++». Π‘ΠΎΠ΄Π΅ΡΠΆΠ°Π½ΠΈΠ΅:
Π’Π°ΠΊΠΆΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΡΠ°Π·Π΄Π΅Π» Ρ ΠΎΠ±Π·ΠΎΡΠ°ΠΌΠΈ ΡΡΠ°ΡΠ΅ΠΉ ΠΏΠΎ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠΉ Ρ 64-Π±ΠΈΡΠ½ΠΌΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΡΠΌΠΈ.