ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

Из Π’ΠΈΠΊΠΈΠΏΠ΅Π΄ΠΈΠΈ β€” свободной энциклопСдии

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. im224 335px %D0%A6%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9 %D0%BA%D0%BE%D0%B4 %D0%AD%D0%92%D0%9C %C2%AB%D0%9C%D0%B8%D0%BD%D1%81%D0%BA 22%C2%BB. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-im224 335px %D0%A6%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9 %D0%BA%D0%BE%D0%B4 %D0%AD%D0%92%D0%9C %C2%AB%D0%9C%D0%B8%D0%BD%D1%81%D0%BA 22%C2%BB. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° im224 335px %D0%A6%D0%B8%D1%84%D1%80%D0%BE%D0%B2%D0%BE%D0%B9 %D0%BA%D0%BE%D0%B4 %D0%AD%D0%92%D0%9C %C2%AB%D0%9C%D0%B8%D0%BD%D1%81%D0%BA 22%C2%BB. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. [1]

ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, записанная Π½Π° машинном языкС, состоит ΠΈΠ· ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… инструкций, каТдая ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… прСдставлСна Π² машинном ΠΊΠΎΠ΄Π΅ Π² Π²ΠΈΠ΄Π΅ Ρ‚. Π½. ΠΎΠΏΠΊΠΎΠ΄Π° β€” Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈΠ· систСмы ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Для удобства программирования вмСсто числовых ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ процСссор, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΈΡ… условныС Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊΠΈ. Набор Ρ‚Π°ΠΊΠΈΡ… ΠΌΠ½Π΅ΠΌΠΎΠ½ΠΈΠΊ, вмСстС с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ), называСтся языком ассСмблСра.

КаТдая модСль процСссора ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, хотя Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… модСлях эти Π½Π°Π±ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ сильно ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Говорят, Ρ‡Ρ‚ΠΎ процСссор A совмСстим с процСссором B, Ссли процСссор A ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Β«ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Β» ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ процСссора B. Если процСссоры A ΠΈ B ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ подмноТСство инструкций, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎ совмСстимы, Ρ‚ΠΎ говорят, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Β«Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹Β» (ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠΠ°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈΠΌ. Н. Π­. Π‘Π°ΡƒΠΌΠ°Π½Π°
Bauman National Library

ΠŸΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ инструмСнты

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ»ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык прСдставляСт собой Π½Π°Π±ΠΎΡ€ инструкций, выполняСмых нСпосрСдствСнно Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΌ процСссором ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° (CPU). КаТдая ΠΊΠΎΠΌΠ°Π½Π΄Π° выполняСт ΠΎΡ‡Π΅Π½ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ (load), ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (jump) ΠΈΠ»ΠΈ элСмСнтарной арифмСтичСской ΠΈΠ»ΠΈ логичСской ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ для Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π² рСгистрС процСссора ΠΈΠ»ΠΈ памяти. КаТдая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° выполняСтся нСпосрСдствСнно процСссором ΠΈ состоит ΠΈΠ· ряда Ρ‚Π°ΠΊΠΈΡ… инструкций.

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ самоС Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠ΅ прСдставлСниС скомпилированной ΠΈΠ»ΠΈ собранной ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Π² качСствС ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΈ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎ-зависимого языка программирования. ΠŸΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ нСпосрСдствСнно Π² машинном ΠΊΠΎΠ΄Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΎΠ΄Π½Π°ΠΊΠΎ это ΡƒΡ‚ΠΎΠΌΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ΠΎ ошибкам, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Π±ΠΈΡ‚Π°ΠΌΠΈ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΡΡ‚ΡŒ числовыС адрСса ΠΈ константы Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ практичСски Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠŸΠΎΡ‡Ρ‚ΠΈ всС практичСскиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ сСгодня написаны Π½Π° языках Π±ΠΎΠ»Π΅Π΅ высокого уровня ΠΈΠ»ΠΈ ассСмблСрС. Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π·Π°Ρ‚Π΅ΠΌ транслируСтся Π² исполняСмый ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊΠΈΡ… ΡƒΡ‚ΠΈΠ»ΠΈΡ‚, ΠΊΠ°ΠΊ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹, компиляторы, ассСмблСры, ΠΈ/ΠΈΠ»ΠΈ Π»ΠΈΠ½ΠΊΠ΅Ρ€Ρ‹. [Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ 1]

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ машинного ΠΊΠΎΠ΄Π° (ISA)

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ процСссор ΠΈΠ»ΠΈ сСмСйство процСссоров ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный Π½Π°Π±ΠΎΡ€ инструкций машинного ΠΊΠΎΠ΄Π°. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Π°ΠΌΠΈ Π±ΠΈΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² силу физичСского устройства ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. Говорят, Ρ‡Ρ‚ΠΎ процСссор A совмСстим с процСссором B, Ссли процСссор A ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Β«ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Β» ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ процСссора B. Если процСссоры A ΠΈ B ΠΈΠΌΠ΅ΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ подмноТСство инструкций, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΎΠ½ΠΈ Π²Π·Π°ΠΈΠΌΠ½ΠΎ совмСстимы, Ρ‚ΠΎ говорят, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄ являСтся спСцифичСским для ΠΎΠ΄Π½ΠΎΠ³ΠΎ класса процСссоров. НовыС процСссоры ΠΎΠ΄Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ часто Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π² сСбя всС инструкции ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠ° ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅. Иногда Π½ΠΎΠ²Ρ‹Π΅ процСссоры ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°ΡŽΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠ΄Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ для Π½ΠΎΠ²Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ), влияя Π½Π° ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π° Π΄ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ стСпСни; Π΄Π°ΠΆΠ΅ ΠΏΠΎΡ‡Ρ‚ΠΈ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимыС процСссоры ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, Π½ΠΎ это Ρ€Π΅Π΄ΠΊΠΎ являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ.

БистСмы Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… дСталях, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ располоТСниС памяти, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ систСмы ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€ΠΈΡ„Π΅Ρ€ΠΈΠΉΠ½Ρ‹Π΅ устройства. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ зависит ΠΎΡ‚ Ρ‚Π°ΠΊΠΈΡ… Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ², Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ систСмы, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, Π½Π΅ запустят ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π΄Π°ΠΆΠ΅ Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Ρ‚ΠΈΠΏ процСссора. [Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ 2]

Π’ΠΈΠ΄Ρ‹ ISA

x86 всСгда Π±Ρ‹Π» Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ с инструкциями ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈΡˆΠ»Π° 64-битная эра, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ x64 Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ сильно повлияли Π½Π° ISA. ARM это RISC-процСссор Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ инструкций ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ прСимущСством Π² ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π² самом Π½Π°Ρ‡Π°Π»Π΅ всС инструкции ARM ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π»ΠΈΡΡŒ 4-мя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. Π­Ρ‚ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сСйчас называСтся Β«Ρ€Π΅ΠΆΠΈΠΌ ARMΒ».

На самом Π΄Π΅Π»Π΅, самыС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ инструкции процСссора Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ c использованиСм мСньшСго количСства ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Π’Π°ΠΊ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ISA с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Thumb, Π³Π΄Π΅ каТдая инструкция кодируСтся всСго лишь 2-мя Π±Π°ΠΉΡ‚Π°ΠΌΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ это называСтся Β«Ρ€Π΅ΠΆΠΈΠΌ ThumbΒ». Но Π½Π΅ всС инструкции ARM ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π² Π΄Π²ΡƒΡ… Π±Π°ΠΉΡ‚Π°Ρ…, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Π½Π°Π±ΠΎΡ€ инструкций Thumb ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ. Код, скомпилированный для Ρ€Π΅ΠΆΠΈΠΌΠ° ARM ΠΈ Thumb ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π—Π°Ρ‚Π΅ΠΌ создатСли ARM Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ Thumb ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡˆΠΈΡ€ΠΈΡ‚ΡŒ: Ρ‚Π°ΠΊ появился Thumb-2 (Π² ARMv7). Thumb-2 это всё Π΅Ρ‰Ρ‘ Π΄Π²ΡƒΡ…Π±Π°ΠΉΡ‚Π½Ρ‹Π΅ инструкции, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΎΠ²Ρ‹Π΅ инструкции ΠΈΠΌΠ΅ΡŽΡ‚ Π΄Π»ΠΈΠ½Ρƒ 4 Π±Π°ΠΉΡ‚Π°. РаспространСно Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Thumb-2 β€” это смСсь ARM ΠΈ Thumb. Π­Ρ‚ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ. Π Π΅ΠΆΠΈΠΌ Thumb-2 Π±Ρ‹Π» Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ»Π½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ возмоТностСй процСссора ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π»Π΅Π³ΠΊΠΎ ΠΊΠΎΠ½ΠΊΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π΅ΠΆΠΈΠΌΠΎΠΌ ARM. ОсновноС количСство ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для iPod/iPhone/iPad скомпилировано для Π½Π°Π±ΠΎΡ€Π° инструкций Thumb-2, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Xcode Π΄Π΅Π»Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ. ΠŸΠΎΡ‚ΠΎΠΌ появился 64-Π±ΠΈΡ‚Π½Ρ‹ΠΉ ARM. Π­Ρ‚ΠΎ ISA снова с 4-Π±Π°ΠΉΡ‚Π½Ρ‹ΠΌΠΈ инструкциями, Π±Π΅Π· Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° Thumb. Но 64-Π±ΠΈΡ‚Π½Ρ‹Π΅ трСбования повлияли Π½Π° ISA, Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ нас 3 Π½Π°Π±ΠΎΡ€Π° инструкций ARM: Ρ€Π΅ΠΆΠΈΠΌ ARM, Ρ€Π΅ΠΆΠΈΠΌ Thumb (Π²ΠΊΠ»ΡŽΡ‡Π°Ρ Thumb-2) ΠΈ ARM64. Π­Ρ‚ΠΈ Π½Π°Π±ΠΎΡ€Ρ‹ инструкций частично ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, это скорСС Ρ€Π°Π·Π½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹, Π½Π΅ΠΆΠ΅Π»ΠΈ Π²Π°Ρ€ΠΈΠ°Ρ†ΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ. БущСствуСт Π΅Ρ‰Ρ‘ ΠΌΠ½ΠΎΠ³ΠΎ RISC ISA с инструкциями фиксированной 32-Π±ΠΈΡ‚Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ β€” это ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ MIPS, PowerPC ΠΈ Alpha AXP. [Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ 3]

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ инструкций

ΠšΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° прСдставляСт собой ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ процСссором. Π’ Ρ‚ΠΎ врСмя ΠΊΠ°ΠΊ простыС процСссоры Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ инструкции ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, супСрскалярныС процСссоры способны Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ инструкции, Π½Π΅ ΠΈΠ΄ΡƒΡ‰Π΅ΠΉ ΠΏΠΎ порядку вслСд Π·Π° ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ. УсловныС ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ продолТаСтся ΠΏΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ адрСсу) ΠΈΠ»ΠΈ Π½Π΅Ρ‚ (Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ продолТаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ инструкции) Π² зависимости ΠΎΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… условий.

ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимый ΠΊΠΎΠ΄

ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимый ΠΊΠΎΠ΄ β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° Π² любой области памяти, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС ссылки Π½Π° ячСйки памяти Π² Π½Π΅ΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ счётчика ΠΊΠΎΠΌΠ°Π½Π΄). Π’Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая хотя ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° Π² Π»ΡŽΠ±ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π½ΠΎ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимого ΠΊΠΎΠ΄Π° зависит ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ систСмы ΠΊΠΎΠΌΠ°Π½Π΄ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. НапримСр, Ссли Π²ΠΎ всСх инструкциях ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² систСмС ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ адрСса, Ρ‚ΠΎ ΠΊΠΎΠ΄, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ², практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимым. Π’ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ x86 нСпосрСдствСнная адрСсация Π² инструкциях Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ прСдставлСна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌΠΈ адрСсами, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ адрСса Π΄Π°Π½Π½Ρ‹Ρ… ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сСгмСнтного рСгистра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, это позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимый ΠΊΠΎΠ΄ со своими ячСйками памяти для Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ°ΠΌΠΎΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ инструкций.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² памяти

Гарвардская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° прСдставляСт собой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ с физичСски Ρ€Π°Π·Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ΠΌ ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΡƒΡ‚Π΅ΠΉ для инструкций ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. На сСгодняшний дСнь, Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ процСссоров Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡΠΈΠ³Π½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡƒΡ‚ΠΈ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ. ΠœΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Π°Ρ Гарвардская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠ΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ· дисковой памяти Π² качСствС Π΄Π°Π½Π½Ρ‹Ρ…, Π° Π·Π°Ρ‚Π΅ΠΌ Π΅Ρ‘ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. Гарвардская Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° контрастируСт с Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ Ρ„ΠΎΠ½ НСймана, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΊΠΎΠ΄ хранятся Π² памяти вмСстС, ΠΈ ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ процСссором, позволяя ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния процСсса, ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ пространство являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ Π΅Π³ΠΎ адрСсного пространства, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΊΠΎΠ΄ сохраняСтся Π²ΠΎ врСмя исполнСния. Π’ ΠΌΠ½ΠΎΠ³ΠΎΠ·Π°Π΄Π°Ρ‡Π½Ρ‹Ρ… систСмах ΠΎΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя сСгмСнт ΠΊΠΎΠ΄Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, совмСстно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ. Π’ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΡ‚ΠΎΡ‡Π½ΠΎΠΉ срСдС Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ процСсса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ΅ пространство ΠΈ пространство Π΄Π°Π½Π½Ρ‹Ρ… совмСстно, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΠΎΡ‚ΠΎΠΊΠ°.

Бвязь с языками программирования

АссСмблСрныС языки

Π“ΠΎΡ€Π°Π·Π΄ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡ΠΈΡ‚Π°Π΅ΠΌΡ‹ΠΌ прСдставлСниСм машинного языка называСтся язык ассСмблСра, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠΉ мнСмоничСскиС ΠΊΠΎΠ΄Ρ‹ для обозначСния инструкций машинного ΠΊΠΎΠ΄Π°, Π° Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ числовых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. НапримСр, Π½Π° процСссорС Zilog Z80, ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ 00000101, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π°Π΅Ρ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ процСссору Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ рСгистр процСссора B, Π±ΡƒΠ΄Π΅Ρ‚ прСдставлСн Π½Π° языкС ассСмблСра ΠΊΠ°ΠΊ DEC B.

Бвязь с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄ΠΎΠΌ

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ…, ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ рСализуСтся с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π±ΠΎΠ»Π΅Π΅ Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ слоя ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΠ±Ρ‰ΠΈΠΉ интСрфСйс машинного языка для Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² с самыми Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΠΎΡ‚ΠΎΠΊΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ дСлаСтся для облСгчСния портирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° машинном языкС ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ модСлями. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ Ρ‚Π°ΠΊΠΎΠ³ΠΎ использования ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ IBM System/360 ΠΈ ΠΈΡ… наслСдники. НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡˆΠΈΡ€ΠΈΠ½Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ… разнится ΠΎΡ‚ 8 Π΄ΠΎ 64 Π±ΠΈΡ‚ ΠΈ Π±ΠΎΠ»Π΅Π΅, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΎΠ±Ρ‰ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ машинного языка ΠΏΠΎ всСй Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅.

ИспользованиС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ эмулятора позволяСт ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΡΠΈΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΡƒΡŽ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ. БСмСйство System / 360 использовало это для портирования ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… машин IBM Π½Π° Π½ΠΎΠ²Ρ‹Π΅ сСмСйства ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π½Π° IBM 1401/1440/1460.

Бвязь с Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ΠΎΠΌ

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, отличаСтся ΠΎΡ‚ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° (Ρ‚Π°ΠΊΠΆΠ΅ извСстного ΠΊΠ°ΠΊ Ρ€-ΠΊΠΎΠ΄), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π»ΠΈΠ±ΠΎ выполняСтся ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, ΠΈΠ»ΠΈ сам компилируСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ для Π±ΠΎΠ»Π΅Π΅ быстрого исполнСния. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся ситуация, ΠΊΠΎΠ³Π΄Π° процСссор ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для использования ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄Π° ΠΊΠ°ΠΊ машинного, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ Π² случаС с процСссорами Java. ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΈ ассСмблСрный ΠΊΠΎΠ΄ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ собствСнным (Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌ) ΠΊΠΎΠ΄ΠΎΠΌ Π­Π’Πœ, ΠΊΠΎΠ³Π΄Π° ΡΡΡ‹Π»Π°ΡŽΡ‚ΡΡ Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΎ-зависимыС части свойств ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ языка. [Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ 4]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ MIPS 32-bit инструкции

Набор инструкций MIPS – ΠΏΡ€ΠΈΠΌΠ΅Ρ€ машинного ΠΊΠΎΠ΄Π° с инструкциями фиксированной Π΄Π»ΠΈΠ½Ρ‹ – 32 Π±ΠΈΡ‚Π°. Π’ΠΈΠΏ инструкции содСрТится Π² ΠΏΠΎΠ»Π΅ op (ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ) – ΠΏΠ΅Ρ€Π²Ρ‹Π΅ 6 Π±ΠΈΡ‚. НапримСр Ρ‚ΠΈΠΏΡ‹ инструкций ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈΠ»ΠΈ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ этим ΠΏΠΎΠ»Π΅ΠΌ. Π˜Π½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈ рСгистров Π²ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ funct, для опрСдСлСния ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. ВсС поля, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ‰ΠΈΠ΅ΡΡ Π² Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ°Ρ… инструкций:

Rs,rt ΠΈ rd – ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ задСйствования рСгистров, shamt – ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ сдвига,Π° ΠΏΠΎΠ»Π΅ address/immediate явно содСрТит ΠΎΠΏΠ΅Ρ€Π°Π½Π΄.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: слоТСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² рСгистрах 1 ΠΈ 2 ΠΈ запись Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² рСгистр 6:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° значСния Π² рСгистр 8, взятоС ΠΈΠ· ячСйки памяти, находящСйся Π½Π° 68 ячССк дальшС, Ρ‡Π΅ΠΌ адрСс, находящийся Π² рСгистрС 3:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€: ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ адрСсу 1024:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для x86 (MS DOS) – β€œHello, World!”

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Β«Hello, world!Β» для процСссора Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86 (ОБ MS-DOS, Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ BIOS прСрывания int 10h) выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии):

BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π΅Ρ‘ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ 10016. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ инструкции Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ Ρ†Π²Π΅Ρ‚ΠΎΠΌ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ процСссор ΠΈ языки программирования

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. main. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-main. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° main. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»Π΅Π·Π½Π° всСм, ΠΊΡ‚ΠΎ ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Π½Π΅ Π·Π½Π°Π΅Ρ‚, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ процСссор, ΠΊΠ°ΠΊ ΠΈ Π·Π°Ρ‡Π΅ΠΌ появились языки программирования ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹.

ВсС описанноС Π½ΠΈΠΆΠ΅ ΠΊΠ°ΠΊ всСгда ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½ΠΎ для Π»ΡƒΡ‡ΡˆΠ΅Π³ΠΎ понимания.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΈ опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ

ВсС Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ процСссор Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ β€” это ΠΌΠΎΠ·Π³. Он управляСт всСми процСссами, происходящими Π²Π½ΡƒΡ‚Ρ€ΠΈ этой консСрвной Π±Π°Π½ΠΊΠΈ. Но Π·Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, ΠΊΠ°ΠΊ ΠΎΠ½ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. processor upravlyaet processamei. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-processor upravlyaet processamei. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° processor upravlyaet processamei. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

НачнСм Π²ΠΎΡ‚ с Ρ‡Π΅Π³ΠΎ. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ русский, английский ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ языки. Он ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ числа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ для Π½Π΅Π³ΠΎ простыми ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π²Π·ΡΡ‚ΡŒ ΠΈΠ· памяти ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Ρ‚ΠΎ Π΄Π°Π½Π½Ρ‹Π΅, ΡΠ»ΠΎΠΆΠΈΡ‚ΡŒ ΠΈ Ρ‚.Π΄.

ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Π·Π½Π°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ свой числовой ΠΊΠΎΠ΄, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. processor znaet mnogo chislovyh kodov. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-processor znaet mnogo chislovyh kodov. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° processor znaet mnogo chislovyh kodov. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Π‘ΠΎΠ²ΠΎΠΊΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ всСх ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΈΡ… числовых ΠΊΠΎΠ΄ΠΎΠ², Π·Π°Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Ρ… ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌΠΈ Π² процСссор, называСтся Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΎΠΉ процСссора. Π­Ρ‚ΠΎ Π½Π΅ аппаратная Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°, Π° программная. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ процСссоров Π·Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°Π΅Ρ‚ свою Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ρƒ ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ числовыС ΠΊΠΎΠ΄Ρ‹ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… процСссорах.

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. chislovye kody processora dlya raznyh arhitectur. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-chislovye kody processora dlya raznyh arhitectur. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° chislovye kody processora dlya raznyh arhitectur. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

ΠŸΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅ ΠΏΡ€ΠΈΠΊΠΎΠ»? Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ процСссора. Π–ΡƒΡ‚ΡŒ.

Π’Π°ΠΊ. ΠŸΠΎΠ½ΡΡ‚Π½ΠΎ. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ малСнькиС числовыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Но ΠΎΡ‚ΠΊΡƒΠ΄Π° ΠΎΠ½ ΠΈΡ… Π±Π΅Ρ€Π΅Ρ‚? Из ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти. Π”ΡƒΠΌΠ°ΠΉΡ‚Π΅ ΠΎΠ± ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΠ΅, ΠΊΠ°ΠΊ ΠΎ большом количСствС ΠΌΠ°Π»Π΅Π½ΡŒΠΊΠΈΡ… ячССк. КаТдая ячСйка ΠΈΠΌΠ΅Π΅Ρ‚ свой адрСс β€” это ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ число, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ 2001. По адрСсу ячСйки процСссор ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ опСративная ΠΏΠ°ΠΌΡΡ‚ΡŒ Π²Π΅Ρ€Π½Π΅Ρ‚ ΠΈΡ… Π΅ΠΌΡƒ. Π’Π°ΠΊΠΆΠ΅ Π² эту ячСйку процСссор ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅.

Как я ΡƒΠΆΠ΅ сказал, Π² ячСйках ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти хранятся ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для процСссора. Но Ρ‚Π°ΠΊΠΆΠ΅ Π² Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒΡΡ Π»ΡŽΠ±Ρ‹Π΅ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π² числовом Π²ΠΈΠ΄Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: Π±ΡƒΠΊΠ²Ρ‹, изобраТСния, ΠΌΡƒΠ·Ρ‹ΠΊΠ° ΠΈΠ»ΠΈ Π²ΠΈΠ΄Π΅ΠΎ.

ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ΡΡ такая ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Π°: процСссор обращаСтся ΠΊ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти ΠΏΠΎ адрСсу ячСйки, ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²ΠΊΠ° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π΅ΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ· этой ячСйки, процСссор выполняСт ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ. А Ρ‡Ρ‚ΠΎ дальшС? А дальшС процСссор ΠΎΠΏΡΡ‚ΡŒ обращаСтся ΠΊ памяти (ΡƒΠΆΠ΅ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ячСйку), ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, выполняСт Π΅Π΅ ΠΈ этот Ρ†ΠΈΠΊΠ» повторяСтся снова ΠΈ снова. Π’ΠΎ Π΅ΡΡ‚ΡŒ процСссор всС врСмя выполняСт ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ Π·Π°Π΄Π°Π½Π½ΡƒΡŽ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ (числовых ΠΊΠΎΠ΄ΠΎΠ²). Π­Ρ‚Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄ называСтся ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ.

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. processor i operativnaya pamyat. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-processor i operativnaya pamyat. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° processor i operativnaya pamyat. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

АссСмблСр

Как ΠΌΡ‹ ΠΏΠΎΠΌΠ½ΠΈΠΌ, процСссор спроСктирован Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ простыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹Π΅ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти.

Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ процСссор Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡƒΡ€Π°Π²Π½Π΅Π½ΠΈΠ΅ 2 + 2 * 2, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ простых числовых ΠΊΠΎΠΌΠ°Π½Π΄.

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. processor vypolnaed cepochku komand. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-processor vypolnaed cepochku komand. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° processor vypolnaed cepochku komand. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Π‘ΠΎΠ³Π»Π°ΡΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ слоТно ΠΈ Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΏΡƒΡ‚Π°Ρ‚ΡŒΡΡ. И это ΠΌΡ‹ всСго лишь написали ΠΊΠΎΠ΄ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ простого уравнСния. А Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΡŒΡ‚Π΅, ΠΊΠ°ΠΊ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π’ΠšΠΎΠ½Ρ‚Π°ΠΊΡ‚ΠΈΠΊ ΠΈΠ»ΠΈ Π˜Π½ΡΡ‚Π°Π³Ρ€Π°ΠΌ.

Для упрощСния ΠΆΠΈΠ·Π½ΠΈ люди ΠΏΡ€ΠΈΠ΄ΡƒΠΌΠ°Π»ΠΈ инструмСнт АссСмблСр ΠΈ язык программирования Π½Π° ассСмблСрС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ всС числовыС ΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ процСссора Π·Π°ΠΌΠ΅Π½ΠΈΠ»ΠΈ Π½Π° Π±ΡƒΠΊΠ²Π΅Π½Π½Ρ‹Π΅ Π°Π±Π±Ρ€Π΅Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стало Π»Π΅Π³Ρ‡Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΈ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π²Ρ‹ΡˆΠ΅? Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΎΠ½ΠΈ выглядят Ρ‚Π°ΠΊ:

Π’Π°ΠΊΠΆΠ΅ ΠΊ названию ΠΊΠΎΠΌΠ°Π½Π΄ Π±Ρ‹Π»ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ (ΠΎΠ΄ΠΈΠ½ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π°ΡŽΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. assembler. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-assembler. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° assembler. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Рассмотрим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ассСмблСрС, которая Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ„Ρ€Π°Π·Ρƒ Β«Hello, World!Β«. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ассСмблированного ΠΊΠΎΠ΄Π°:

Π§Ρ‚ΠΎ-Ρ‚ΠΎ слишком ΠΌΠ½ΠΎΠ³ΠΎ нСпонятного ΠΊΠΎΠ΄Π° для Ρ‚Π°ΠΊΠΎΠΉ пустяковой Π·Π°Π΄Π°Ρ‡ΠΈ, Π½Π΅ ΠΏΡ€Π°Π²Π΄Π° Π»ΠΈ?

Π―Π·Ρ‹ΠΊΠΈ программирования Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ Π² самом Π½Π°Ρ‡Π°Π»Π΅ я писал, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒ процСссоров Π΄Π΅Π»Π°Π΅Ρ‚ свою Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ? И Ρ‡Ρ‚ΠΎ Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ свои числовыС ΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄?

Π’Π°ΠΊ Π²ΠΎΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° ассСмблСрС Π²Π°ΠΌ придСтся Β«ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒΒ» ΠΏΠΎΠ΄ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ процСссора. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠ°Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ инструмСнт АссСмблСр ΠΈ ΠΏΡ€ΠΎΠ³ΠΎΠ½ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ свой ΠΊΠΎΠ΄.

Π­Ρ‚ΠΎ услоТняСт ΠΏΠΎΡ€Ρ‚Π°Ρ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ. Π”ΠΎΠ±Π°Π²ΠΈΠΌ сюда ΡΠ»ΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π² написании Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² создании Π½ΠΎΠ²Ρ‹Ρ… инструмСнтов.

Π’Π°ΠΊ стали ΠΏΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ языки программирования высокого уровня.

Π˜Ρ… ΡΡƒΡ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ассСмблСрС Π±Ρ‹Π»ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Ρ‹ Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π²Π°ΠΌ достаточно Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ сообщСниС Β«Hello, World!Β».

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

ΠŸΠ΅Ρ€Π²Ρ‹ΠΌΠΈ появились ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования. К Π½ΠΈΠΌ относится Π‘, Π‘++, Java ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΉ язык программирования ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ инструмСнт компилятор, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка Π² ΠΊΠΎΠ΄, понятный процСссору.

Рассмотрим Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅. НапримСр Π½Π° языкС Π‘ Π²Ρ‹Π²ΠΎΠ΄ Ρ„Ρ€Π°Π·Ρ‹ Β«Hello, World!Β» Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ: printf(Β«Hello, World!Β»). ΠŸΡ€ΠΎΡΡ‚ΠΎ ΠΈ понятно.

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. processor i kod vyshego poryadka. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-processor i kod vyshego poryadka. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° processor i kod vyshego poryadka. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Но процСссор Π½Π΅ ΠΏΠΎΠΉΠΌΠ΅Ρ‚ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Как ΠΌΡ‹ ΠΏΠΎΠΌΠ½ΠΈΠΌ, ΠΎΠ½ Π·Π½Π°Π΅Ρ‚ ΠΈ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ малСнькиС числовыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ компилятор языка C ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π² ассСмблированный ΠΊΠΎΠ΄, Π° Π·Π°Ρ‚Π΅ΠΌ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, понятный процСссору.

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. kompilator. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-kompilator. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° kompilator. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, написанная Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΌ языкС программирования, ΠΏΠ΅Ρ€Π΅Π΄ запуском всСгда ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ процСсс компиляции. Π’ΠΎ Π΅ΡΡ‚ΡŒ вСсь написанный ΠΊΠΎΠ΄ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка прСобразуСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, понятный процСссору.

Π—Π°Ρ‚Π΅ΠΌ компилятор Π΄Π΅Π»Π°Π΅Ρ‚ исполняСмый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠΈΠ½ΡƒΡ‚ΡŒ Π΄Ρ€ΡƒΠ³Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ запустил Π²Π°ΡˆΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π° своСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅.

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ispolnyaemyj fajl. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-ispolnyaemyj fajl. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ispolnyaemyj fajl. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Но Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… компиляторов Π΅ΡΡ‚ΡŒ свой ΠΏΡ€ΠΈΠΊΠΎΠ»: Ρ‡Ρ‚ΠΎΠ±Ρ‹ ваша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π»Π° Π½Π° всСх ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах ΠΈ всСх Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… процСссоров, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ для этих Π²Π΅Ρ‰Π΅ΠΉ. И это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ Ρ‚Π°ΠΊ ΡƒΠ΄ΠΎΠ±Π½ΠΎ.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки

ΠšΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки Π½Π°ΠΌΠ½ΠΎΠ³ΠΎ упростили Π·Π°Π΄Π°Ρ‡Ρƒ написания ΠΊΠΎΠ΄Π°. Но Ρ‡Ρ‚ΠΎ, Ссли я скаТу, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, которая Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π½Π° всСх Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… процСссоров ΠΈ любой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС?

Π’ΠΎΡ‚ Ρ‚ΡƒΡ‚ Π² Ρ…ΠΎΠ΄ ΠΈΠ΄ΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки программирования Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ: Python, PHP, Perl, Pascal ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅.

Π­Ρ‚ΠΎ Ρ‚ΠΎΠΆΠ΅ языки Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Π°ΠΊΠΆΠ΅ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ написаниС ΠΊΠΎΠ΄Π°. Но Ρƒ Π½ΠΈΡ… Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π΄Π²Π° прСимущСства ΠΏΠ΅Ρ€Π΅Π΄ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ языками:

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ компилятор, Π½ΠΎ с ΠΎΠ΄Π½ΠΎΠΉ малСнькой, Π½ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ: ΠΎΠ½ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΊΠΎΠ΄ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ порядка Π½Π΅ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π° Π΅Ρ‰Π΅ Π½ΠΈΠΆΠ΅ β€” Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄.

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. interpretator. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-interpretator. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° interpretator. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Π‘Π°ΠΉΡ‚ΠΊΠΎΠ΄ β€” это ΠΊΠΎΠ΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ всС процСссоры Π½Π΅ зависимо ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹.

ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π² этом Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ Π΅ΡΡ‚ΡŒ свой нСдостаток. Π’ силу своСй гибкости ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Π΅ языки ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½Ρ‹ Π½ΠΈΠ·ΠΊΠΎΠΉ скорости Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ·-Π·Π° большСго числа инструкций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€. Но это Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, насколько ΠΊΡ€ΡƒΡ‚ΠΎ написан ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€.

ΠŸΠΎΠ΄Ρ‹Ρ‚ΠΎΠΆΠΈΠΌ

Π‘Π°ΠΉΡ‚ΠΊΠΎΠ΄ β€” саааамый Π½ΠΈΠ·ΠΊΠΈΠΉ язык, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ процСссор.

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ β€” Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ° числовых ΠΊΠΎΠΌΠ°Π½Π΄. ВсС числовыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ процСссора ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ процСссора, Π·Π°Π»ΠΎΠΆΠ΅Π½Π½ΡƒΡŽ ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π°ΠΌΠΈ ΠΏΡ€ΠΈ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π£ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ процСссоров ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π½ΠΎΠΌΠ΅Ρ€Π° ΠΎΠ΄Π½ΠΈΡ… ΠΈ Ρ‚Π΅Ρ… ΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄.

АссСмблСр β€” инструмСнт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ассСмблированный ΠΊΠΎΠ΄ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ассСмблированном языкС ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, Π½ΠΎ всС Ρ€Π°Π²Π½ΠΎ Π³Π΅ΠΌΠΎΡ€.

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ ΠΈ Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ β€” инструмСнты, ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠ΄ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня Π² ΠΊΠΎΠ΄, понятный процСссору.

Π―Π·Ρ‹ΠΊ Π²Ρ‹ΡΡˆΠ΅Π³ΠΎ уровня β€” это сказка, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ большиС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ простых ΠΈ понятных Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π― надСюсь, Ρ‡Ρ‚ΠΎ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π²Ρ‹ Π»ΡƒΡ‡ΡˆΠ΅ прСдставляСтС, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ваш ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ ΠΈΠ»ΠΈ смартфон ΠΈ Π±ΡƒΠ΄Π΅Ρ‚Π΅ Ρ‚Π΅Ρ€ΠΏΠ΅Π»ΠΈΠ²Π΅Π΅ относится ΠΊ ΠΈΡ… Π·Π°Ρ‚ΡƒΠΏΠ°ΠΌ 🙂 Π’Π΅Π΄ΡŒ ΠΆΠ΅Π»Π΅Π·ΠΊΠ° Π½Π΅ Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚Π°, Ρ‡Ρ‚ΠΎ Ρ‚ΡƒΠΏΠΈΡ‚, Π° Π²ΠΈΠ½ΠΎΠ²Π°Ρ‚ Π³ΠΎΡ€Π΅-программист, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ написал ΠΏΠ»ΠΎΡ…ΠΎΠΉ ΠΊΠΎΠ΄.

Если Π²Ρ‹ с Ρ‡Π΅ΠΌ-Ρ‚ΠΎ Π½Π΅ согласны, Ρƒ вас Π΅ΡΡ‚ΡŒ вопросы ΠΈΠ»ΠΈ просто Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ спасибо β€” ΠΏΡ€ΠΎΡˆΡƒ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. ΠŸΠΎΠΎΠ±Ρ‰Π°Π΅ΠΌΡΡ 🙂

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. 220px W65C816S Machine Code Monitor. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ Ρ„ΠΎΡ‚ΠΎ. ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄-220px W65C816S Machine Code Monitor. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° 220px W65C816S Machine Code Monitor. ΠœΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (платфо́рмСнно-ориСнти́рованный ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΜΠ½Π½Ρ‹ΠΉ язы́к β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹.

Π‘ΠžΠ”Π•Π Π–ΠΠΠ˜Π•

Набор инструкций

Π’ Π½Π°Π±ΠΎΡ€Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ процСссора ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ всС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹ ΠΈΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ Π΄Π»ΠΈΠ½Ρ‹. Как ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹, зависит ΠΎΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ Ρ‚ΠΈΠΏΠ° обучСния. Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ инструкций ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΠ΄Π½ΠΎ ΠΈΠ»ΠΈ нСсколько ΠΏΠΎΠ»Π΅ΠΉ ΠΊΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ инструкции (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, арифмСтичСская, логичСская, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΈ Ρ‚. Π”.), ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слоТСниС ΠΈΠ»ΠΈ сравнСниС) ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ поля, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° (s ), Ρ€Π΅ΠΆΠΈΠΌ (Ρ‹) адрСсации, смСщСниС (я) адрСсации ΠΈΠ»ΠΈ индСкс, ΠΈΠ»ΠΈ само Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° (Ρ‚Π°ΠΊΠΈΠ΅ постоянныС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹, содСрТащиСся Π² инструкции, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ нСпосрСдствСнными ).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ

На Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π»ΠΈΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ инструкции Β«ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°Β», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° адрСс (ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π½Π° ΠΈΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ), ΠΎΡ‚Π»ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ числового ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ адрСса. Π’ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠ΅ этих условных ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² зависит ΠΎΡ‚ Ρ‚Π°ΠΊΠΎΠ³ΠΎ условия, ΠΊΠ°ΠΊ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ большС, мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ.

Π―Π·Ρ‹ΠΊΠΈ ассСмблСра

ΠŸΡ€ΠΈΠΌΠ΅Ρ€

НапримСр, слоТСниС рСгистров 1 ΠΈ 2 ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² рСгистр 6 кодируСтся:

Π—Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² рСгистр 8, взятоС ΠΈΠ· ячСйки памяти 68 ячССк послС ячСйки, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π² рСгистрС 3:

ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΏΠΎ адрСсу 1024:

Бвязь с ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄ΠΎΠΌ

ИспользованиС ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ эмулятора позволяСт ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Линия System / 360 использовала это, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€Π΅Π½ΠΎΡΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… машин IBM Π½Π° Π½ΠΎΠ²ΠΎΠ΅ сСмСйство ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, эмулятор IBM 1401/1440/1460 Π½Π° IBM S / 360 model 40.

Бвязь с Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄ΠΎΠΌ

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈ ассСмблСрный ΠΊΠΎΠ΄ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ собствСнным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-зависимых частях языковых Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ.

Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π² памяти

Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ людьми

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ (ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄), ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык β€” систСма ΠΊΠΎΠΌΠ°Π½Π΄ (Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ) ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, которая интСрпрСтируСтся нСпосрСдствСнно процСссором ΠΈΠ»ΠΈ ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ этой Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹. [1]

КаТдая инструкция выполняСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ элСмСнтарноС) дСйствиС, Ρ‚Π°ΠΊΠΎΠ΅ ΠΊΠ°ΠΊ опСрация с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, слоТСниС ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅; Π² рСгистрС ΠΈΠ»ΠΈ Π² памяти) ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΊ Π΄Ρ€ΡƒΠ³ΠΎΠΌΡƒ участку ΠΊΠΎΠ΄Π° (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ порядка исполнСния; ΠΏΡ€ΠΈ этом ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ бСзусловным ΠΈΠ»ΠΈ условным, зависящим ΠΎΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… инструкций). КаТдая исполнимая ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° состоит ΠΈΠ· ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ Ρ‚Π°ΠΊΠΈΡ… Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½Ρ‹Ρ… инструкций.

ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ язык программирования ΠΈΠ»ΠΈ ΠΊΠ°ΠΊ самый Π½ΠΈΠ·ΠΊΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ прСдставлСния скомпилированных ΠΈΠ»ΠΈ ассСмблированных ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. Π₯отя Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ прямо Π² машинном ΠΊΠΎΠ΄Π΅, сСйчас это дСлаСтся Ρ€Π΅Π΄ΠΊΠΎ Π² силу громоздкости ΠΊΠΎΠ΄Π° ΠΈ трудоёмкости управлСния рСсурсами процСссора, Π·Π° ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ΠΌ ситуаций, ΠΊΠΎΠ³Π΄Π° трСбуСтся ΡΠΊΡΡ‚Ρ€Π΅ΠΌΠ°Π»ΡŒΠ½Π°Ρ оптимизация. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΏΠΈΡˆΠ΅Ρ‚ΡΡ Π½Π° языках Π±ΠΎΠ»Π΅Π΅ высокого уровня ΠΈ транслируСтся Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ компиляторами. ΠœΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΈΠ½ΠΎΠ³Π΄Π° Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ (Ρ‚Π°ΠΊΠΆΠ΅ собствСнным ΠΈΠ»ΠΈ Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ β€” ΠΎΡ‚ Π°Π½Π³Π». native code ), ΠΊΠΎΠ³Π΄Π° говорят ΠΎ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅Π½Π½ΠΎ-зависимых частях языка ΠΈΠ»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ. [2]

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… языках (Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ БСйсик ΠΈΠ»ΠΈ Python) Π½Π΅ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄, вмСсто этого ΠΎΠ½ΠΈ Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ нСпосрСдствСнно ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ΠΎΠΌ, Π»ΠΈΠ±ΠΎ Ρ‚Ρ€Π°Π½ΡΠ»ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² псСвдокод (Π±Π°ΠΉΡ‚-ΠΊΠΎΠ΄). Однако ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€Ρ‹ этих языков (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ сами ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΊΠ°ΠΊ процСссоры) ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ прСдставлСны Π² машинном ΠΊΠΎΠ΄Π΅.

КаТдая модСль процСссора ΠΈΠΌΠ΅Π΅Ρ‚ свой собствСнный Π½Π°Π±ΠΎΡ€ ΠΊΠΎΠΌΠ°Π½Π΄, хотя Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… модСлях эти Π½Π°Π±ΠΎΡ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ сильно ΠΏΠ΅Ρ€Π΅ΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ. Говорят, Ρ‡Ρ‚ΠΎ процСссор A совмСстим с процСссором B, Ссли процСссор A ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Β«ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Β» ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄ процСссора B. Если процСссор A Π·Π½Π°Π΅Ρ‚ нСсколько ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚ процСссор B, Ρ‚ΠΎ B нСсовмСстим с A.

РаньшС процСссоры просто выполняли инструкции ΠΎΠ΄Π½Ρƒ Π·Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Π½ΠΎ Π½ΠΎΠ²Ρ‹Π΅ супСрскалярныС процСссоры способны Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ нСсколько инструкций Π·Π° Ρ€Π°Π·.

Π’Π°ΠΊΠΆΠ΅ инструкции Π±Ρ‹Π²Π°ΡŽΡ‚ постоянной Π΄Π»ΠΈΠ½Ρ‹ (Ρƒ RISC-, MISC-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€) ΠΈ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π½ΠΎΠΉ (Ρƒ CISC-Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86 ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π»ΠΈΠ½Ρƒ ΠΎΡ‚ 8 Π΄ΠΎ 120 Π±ΠΈΡ‚ΠΎΠ²).

Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅

ΠœΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ… ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° машинного ΠΊΠΎΠ΄Π° рСализуСтся Π΅Ρ‰Ρ‘ Π±ΠΎΠ»Π΅Π΅ Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΌ слоСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΌΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎ позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ интСрфСйс машинного языка Ρƒ всСй Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ ΠΈΠ»ΠΈ сСмСйства ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ структурныС ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ собой. Π­Ρ‚ΠΎ дСлаСтся для облСгчСния пСрСноса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² машинном ΠΊΠΎΠ΄Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ модСлями ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ этого являСтся сСмСйство ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² IBM System/360 ΠΈ ΠΈΡ… ΠΏΡ€Π΅Π΅ΠΌΠ½ΠΈΠΊΠΎΠ²: нСсмотря Π½Π° Ρ€Π°Π·Π½Ρ‹Π΅ ΡˆΠΈΠ½Ρ‹ ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ ΠΎΡ‚ 8 Π΄ΠΎ 64 Π±ΠΈΡ‚ ΠΈ Π²Ρ‹ΡˆΠ΅, Ρ‚Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρƒ Π½ΠΈΡ… общая Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ машинного языка.

ИспользованиС слоя ΠΌΠΈΠΊΡ€ΠΎΠΊΠΎΠ΄Π° для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ эмулятора позволяСт ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρƒ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρƒ ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π°. Π’ Π»ΠΈΠ½Π΅ΠΉΠΊΠ΅ System/360 это использовалось для пСрСноса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ с Π±ΠΎΠ»Π΅Π΅ Ρ€Π°Π½Π½ΠΈΡ… машин IBM Π½Π° Π½ΠΎΠ²ΠΎΠ΅ сСмСйство β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, эмулятор IBM 1401/1440/1460 Π½Π° IBM S/360 model 40.

ΠΠ±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΉ ΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимый ΠΊΠΎΠ΄

ΠŸΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимый ΠΊΠΎΠ΄ (Π°Π½Π³Π». position-independent code ) β€” ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π° Π² любой области памяти, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС ссылки Π½Π° ячСйки памяти Π² Π½Π΅ΠΉ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ счётчика ΠΊΠΎΠΌΠ°Π½Π΄). Π’Π°ΠΊΡƒΡŽ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π΄Ρ€ΡƒΠ³ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая хотя ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° Π² Π»ΡŽΠ±ΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, Π½ΠΎ послС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Π° ΠΎΡΡ‚Π°Π²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ мСстС. [1]

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимого ΠΊΠΎΠ΄Π° зависит ΠΎΡ‚ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ систСмы ΠΊΠΎΠΌΠ°Π½Π΄ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. НапримСр, Ссли Π²ΠΎ всСх инструкциях ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² систСмС ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ адрСса, Ρ‚ΠΎ ΠΊΠΎΠ΄, Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ², практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимым. Π’ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ x86 нСпосрСдствСнная адрСсация Π² инструкциях Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ прСдставлСна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹ΠΌΠΈ адрСсами, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ адрСса Π΄Π°Π½Π½Ρ‹Ρ… ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ сСгмСнтного рСгистра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Π½ΡΡ‚ΡŒ Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚, это позволяСт ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ-нСзависимый ΠΊΠΎΠ΄ со своими ячСйками памяти для Π΄Π°Π½Π½Ρ‹Ρ…. ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ограничСния Π½Π°Π±ΠΎΡ€Π° ΠΊΠΎΠΌΠ°Π½Π΄ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒΡΡ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ°ΠΌΠΎΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΊΠΎΠ΄Π° ΠΈΠ»ΠΈ Π½Π΅Ρ‚Ρ€ΠΈΠ²ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚Π΅ΠΉ инструкций.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Β«Hello, world!Β»

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Β«Hello, world!Β» для процСссора Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ x86 (ОБ DOS, Π²Ρ‹Π²ΠΎΠ΄ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ BIOS Int 10h (Π°Π½Π³Π».) выглядит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ прСдставлСнии ΠΏΠΎΠ±Π°ΠΉΡ‚Π½ΠΎ):

BB 11 01 B9 0D 00 B4 0E 8A 07 43 CD 10 E2 F9 CD 20 48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 21

Данная ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈ Π΅Ρ‘ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎ ΡΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ 10016. ΠžΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ инструкции Π²Ρ‹Π΄Π΅Π»Π΅Π½Ρ‹ Ρ†Π²Π΅Ρ‚ΠΎΠΌ:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *