Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

EXTRN ΠΈ PUBLIC

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

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

Вторая функция ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° EXTRN состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚
ассСмблСру Ρ‚ΠΈΠΏ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ символичСского ΠΈΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ
ассСмблированиС являСтся ΠΎΡ‡Π΅Π½ΡŒ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ, Ρ‚ΠΎ ассСмблСр
Π΄ΠΎΠ»ΠΆΠ΅Π½ Π·Π½Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ прСдставляСт ΠΈΠ· сСбя ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ символ. Π­Ρ‚ΠΎ позволяСт
Π΅ΠΌΡƒ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π’ случаС Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ EXTRN
ΠΌΠΎΠΆΠ΅Ρ‚ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π±Π°ΠΉΡ‚, Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ слово ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ Ρ‚ΠΈΠΏΠΎΠ²ΠΎΠΉ элСмСнт.
Π’ΠΈΠΏ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈΠ»ΠΈ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ
NEAR, Π»ΠΈΠ±ΠΎ FAR, Π² зависимости ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ сСгмСнтС ΠΎΠ½Π°
находится. ΠžΡ‚ программиста трСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ EXTRN Ρ‚ΠΈΠΏ
символичСского ΠΈΠΌΠ΅Π½ΠΈ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΊΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ ассСмблСром осущСствляСтся
посСгмСнтная адрСсация ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ‚ΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ EXTERN ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π°
сСгмСнт, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ появляСтся Π΄Π°Π½Π½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€. Π­Ρ‚ΠΎ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π²
синтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° EXTRN, Π° опрСдСляСтся мСстополоТСниСм этого
ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. АссСмблСр считаСт, Ρ‡Ρ‚ΠΎ внСшнСС имя относится
ΠΊ Ρ‚ΠΎΠΌΡƒ ΠΆΠ΅ сСгмСнту, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ появляСтся ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ EXTERN для этого
символичСского ΠΈΠΌΠ΅Π½ΠΈ.

На Π€ΠΈΠ³. 5.13 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ассСмблСрной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹,
ΠΈΠ»Π»ΡŽΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‰Π΅ΠΉ использованиС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° EXTRN. Π—Π΄Π΅ΡΡŒ ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Π΄Π²Π°
ΠΈΠΌΠ΅Π½ΠΈ, ΡΠ²Π»ΡΡŽΡ‰ΠΈΠ΅ΡΡ внСшними для Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. OUTPUT_CHARACTER
ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ±Π°ΠΉΡ‚ΠΎΠ²ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΡƒΡŽ. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ этой ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ «:BYTE» указываСтся послС ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ NEAR
ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ OUTPUT_ROUTINE Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° находится Π²
Ρ‚ΠΎΠΌ ΠΆΠ΅ сСгмСнтС. Π₯отя привСдСнная Π½Π° Π€ΠΈΠ³. 5.13 ΠΏΡ€ΠΎΠ³Π³Ρ€Π°ΠΌΠΌΠ° содСрТит
ссылки Π½Π° эти символичСскиС ΠΈΠΌΠ΅Π½Π°, ΠΏΡ€ΠΈ трансляции ассСмблСр Π·Π½Π°Π΅Ρ‚,
ΠΊΠ°ΠΊ Π΅ΠΌΡƒ ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Если Π±Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ EXTRN
отсутствовал Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‚ΠΎ Π² этом случаС ассСмблСр
ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π» Π±Ρ‹ ошибки. Из ассСмблСрного листинга Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ
послС поля адрСса Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ…, ΡΡΡ‹Π»Π°ΡŽΡ‰ΠΈΡ…ΡΡ Π½Π° внСшниС ΠΈΠΌΠ΅Π½Π°, стоит
символ E.

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Бправочная систСма ΠΏΠΎ языку Assembler

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ассСмблСрС


Бинтаксис ассСмблСра

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 1. Π€ΠΎΡ€ΠΌΠ°Ρ‚ прСдлоТСния ассСмблСра

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 2. Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 3. Π€ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄

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

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с арифмСтичСскими, логичСскими, ΠΏΠΎΠ±ΠΈΡ‚ΠΎΠ²Ρ‹ΠΌΠΈ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈΠ²Π½Ρ‹ΠΌΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ для расчСта Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ значСния ΠΈΠ»ΠΈ опрСдСлСния ячСйки памяти, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ данная ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 4. Бинтаксис описания адрСсных ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ²

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ вычислСния выраТСния ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ адрСс Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ячСйки памяти ΠΈΠ»ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ константноС (Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½ΠΎΠ΅) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 7. Бинтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² сравнСния

Π’Π°Π±Π»ΠΈΡ†Π° 1. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ сравнСния

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 9. Бинтаксис индСксного ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π² Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Π΅ ΠΏΠΎ ассСмблСру принято ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΊΠΎΠ³Π΄Π° Π² тСкстС Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎ содСрТимом рСгистра, Ρ‚ΠΎ Π΅Π³ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ Π±Π΅Ρ€ΡƒΡ‚ Π² ΠΊΡ€ΡƒΠ³Π»Ρ‹Π΅ скобки. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒΡΡ этого обозначСния.
К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π² нашСм случаС запись Π² коммСнтариях послСднСго Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ mas + (si) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ вычислСниС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ выраТСния: Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ смСщСния символичСского ΠΈΠΌΠ΅Π½ΠΈ mas плюс содСрТимоС рСгистра si.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 13. Бинтаксис ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° получСния смСщСния

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

Π’Π°Π±Π»ΠΈΡ†Π° 2. ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΈΡ… ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ сСгмСнтации

БинтаксичСскоС описаниС сСгмСнта Π½Π° ассСмблСрС прСдставляСт собой ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° рис. 14:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 14. Бинтаксис описания сСгмСнта

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 15. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ASSUME

На ΡƒΡ€ΠΎΠΊΠ΅ 3 ΠΌΡ‹ рассматривали ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ сСгмСнтации. Π­Ρ‚ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈΠ·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ использовались для оформлСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² трансляторах MASM ΠΈ TASM. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΡ… Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ стандартными Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ сСгмСнтации.

Π’ листингС 1 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с использованиСм ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² сСгмСнтации:
Бинтаксис Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ MODEL ΠΏΠΎΠΊΠ°Π·Π°Π½ Π½Π° рис. 16.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Рис. 16. Бинтаксис Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ MODEL

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ MODEL являСтся модСль памяти. Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ опрСдСляСт модСль сСгмСнтации памяти для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ модуля. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ сСгмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ упомянутыми Π½Π°ΠΌΠΈ Ρ€Π°Π½Π΅Π΅ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ описания сСгмСнтов. Π­Ρ‚ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π». 3.

Π’Π°Π±Π»ΠΈΡ†Π° 3. Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ опрСдСлСния сСгмСнта

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹
(Ρ€Π΅ΠΆΠΈΠΌ MASM)
Π€ΠΎΡ€ΠΌΠ°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹
(Ρ€Π΅ΠΆΠΈΠΌ IDEAL)
НазначСниС
.CODE [имя]CODESEG[имя]Начало ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ сСгмСнта ΠΊΠΎΠ΄Π°
.DATADATASEGНачало ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ сСгмСнта ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° near
.CONSTCONSTНачало ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ сСгмСнта постоянных Π΄Π°Π½Π½Ρ‹Ρ… (констант) модуля
.DATA?UDATASEGНачало ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ сСгмСнта Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…. Π’Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для опрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° near
.STACK [Ρ€Π°Π·ΠΌΠ΅Ρ€]STACK [Ρ€Π°Π·ΠΌΠ΅Ρ€]Начало ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ сСгмСнта стСка модуля. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ [Ρ€Π°Π·ΠΌΠ΅Ρ€] Π·Π°Π΄Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ стСка
.FARDATA [имя]FARDATA [имя]Начало ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ сСгмСнта ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° far
.FARDATA? [имя]UFARDATA [имя]Начало ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ сСгмСнта Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° far
НаличиС Π² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° [имя] Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСгмСнтов этого Ρ‚ΠΈΠΏΠ°. Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Π²ΠΈΠ΄ΠΎΠ² сСгмСнтов Π΄Π°Π½Π½Ρ‹Ρ… обусловлСно Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ΡŒ с Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ компиляторами языков высокого уровня, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ сСгмСнты Π΄Π°Π½Π½Ρ‹Ρ… для ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΈ Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ…, Π° Ρ‚Π°ΠΊΠΆΠ΅ констант.

ΠŸΡ€ΠΈ использовании Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ MODEL транслятор Π΄Π΅Π»Π°Π΅Ρ‚ доступными нСсколько ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ², ΠΊ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚Π΅Ρ… ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Ρ… характСристиках Π΄Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти (см. Ρ‚Π°Π±Π». 5). ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌ эти ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΈ ΠΈΡ… значСния (Ρ‚Π°Π±Π». 4).

Π’Π°Π±Π»ΠΈΡ†Π° 4. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹, создаваСмыС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ MODEL

Имя ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ
@codeЀизичСский адрСс сСгмСнта ΠΊΠΎΠ΄Π°
@dataЀизичСский адрСс сСгмСнта Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° near
@fardataЀизичСский адрСс сСгмСнта Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° far
@fardata?ЀизичСский адрСс сСгмСнта Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° far
@cursegЀизичСский адрСс сСгмСнта Π½Π΅ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠ° far
@stackЀизичСский адрСс сСгмСнта стСка
Если Π²Ρ‹ посмотритС Π½Π° тСкст листинга 1, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ использования ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· этих ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ². Π­Ρ‚ΠΎ @data ; с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ физичСского адрСса сСгмСнта Π΄Π°Π½Π½Ρ‹Ρ… нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π’Π°Π±Π»ΠΈΡ†Π° 5. МодСли памяти

Π’Π°Π±Π»ΠΈΡ†Π° 6. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ модификатораНазначСниС
use16Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ 16-Π±ΠΈΡ‚Π½Ρ‹Π΅ (Ссли ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½ процСссор i80386 ΠΈΠ»ΠΈ i80486)
use32Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ 32-Π±ΠΈΡ‚Π½Ρ‹Π΅ (Ссли ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ ΡƒΠΊΠ°Π·Π°Π½ процСссор i80386 ΠΈΠ»ΠΈ i80486)
dosΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² MS-DOS
ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ язык ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ языка ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнности Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. ΠΠ΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ Π² использовании этих ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² появляСтся ΠΏΡ€ΠΈ написании ΠΈ связывании ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… языках программирования.

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

Π£ΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ цСлСсообразно ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для простых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Ρ… для связывания с ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌΠΈ модулями, написанными Π½Π° языках высокого уровня. Π­Ρ‚ΠΎ позволяСт ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΡƒ эффСктивно ΡΠ²ΡΠ·Ρ‹Π²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… языков Π·Π° счСт стандартизации связСй ΠΈ управлСния.

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

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ IBM PC


Π“Π»Π°Π²Π° ΠΈΠ· ΠΊΠ½ΠΈΠ³ΠΈ β€œΠ˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования Π½Π° АссСмблСрС”


Автор: Н. Π“ΠΎΠ»ΡƒΠ±ΡŒ
Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: Π˜ΡΠΊΡƒΡΡΡ‚Π²ΠΎ программирования Π½Π° АссСмблСрС
ΠœΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» прСдоставил: Π˜Π·Π΄Π°Ρ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ «ΠŸΠΈΡ‚Π΅Ρ€»

ΠžΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ: 24.06.2006
ВСрсия тСкста: 1.0

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΈ нСдостатки изучСния языка АссСмблСра с использованиСм извСстных алгоритмичСских языков Pascal ΠΈ C/C++

Π―Π·Ρ‹ΠΊ АссСмблСра ΠΌΠΎΠΆΠ½ΠΎ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ. МоТно Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒ ΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ язык сам ΠΏΠΎ сСбС, Π° Π·Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°ΠΌΠΈ ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ β€” это ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ, классичСский ΠΏΡƒΡ‚ΡŒ (см. ΠΏ. 5.1.1.3).

Достоинства этого ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°, ΠΏΠΎ мнСнию Π°Π²Ρ‚ΠΎΡ€Π°, Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ:

ИмСнно ΠΏΠΎ этому ΠΏΡƒΡ‚ΠΈ ΠΌΡ‹ ΠΈ ΠΏΠΎΠΉΠ΄Π΅ΠΌ с самого Π½Π°Ρ‡Π°Π»Π° (см. ΠΏ. 5.1.1.2). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ тонкости языка АссСмблСра Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒΡΡ постСпСнно, ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ усвоСния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΈ появлСния ΠΎΠΏΡ‹Ρ‚Π°, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΈ увСрСнности Π² своих силах.

Π Π°Π·Π½ΠΈΡ†Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ АссСмблСра

Имя Π² АссСмблСрС ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с любого допустимого символа, ΠΊΡ€ΠΎΠΌΠ΅ Ρ†ΠΈΡ„Ρ€Ρ‹. Если имя содСрТит символ Ρ‚ΠΎΡ‡ΠΊΠΈ ‘.’, Ρ‚ΠΎ ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠŸΠ•Π Π’Π«Πœ символом. Имя НЕ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΌ Π² АссСмблСрС словом (имя машинной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹).

Π‘ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌΠΈ ΠΌΡ‹ с Π²Π°ΠΌΠΈ ΡƒΠΆΠ΅ успСли ΠΈ ΠΏΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ β€” см. ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ 2.9 ΠΈ 2.10.

Команда АссСмблСра всСгда Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹ΠΉ синтаксис Π² Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… MASM (поддСрТиваСтся компиляторами Microsoft Assembler β€” masm ΠΈ Borland (Turbo) Assembler β€” tasm ) ΠΈ Ideal (поддСрТиваСтся компилятором tasm ) β€” см. ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 5.

ΠŸΡ€ΠΈ описании синтаксиса Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык, извСстный всСм ΠΏΡ€ΠΎΡ„Π΅ΡΡΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌ программистам, β€” язык Бэкуса-Наура (Π½Π°Π·Π²Π°Π½Π½Ρ‹ΠΉ Ρ‚Π°ΠΊ Π² Ρ‡Π΅ΡΡ‚ΡŒ этих Π΄Π²ΡƒΡ… достойных ΡƒΡ‡Π΅Π½Ρ‹Ρ…). ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² достаточно ΠΌΠ½ΠΎΠ³ΠΎ. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ каТдая вСрсия компилятора Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΈΠ· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² добавляСт ΠΈΠ»ΠΈ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ измСняСт синтаксис. Для опрСдСлСнности ΠΌΡ‹ Π² Π΄Π°Π½Π½ΠΎΠΉ Π³Π»Π°Π²Π΅ остановимся Π½Π° синтаксисС основных Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² Π² Π±ΠΎΠ»Π΅Π΅ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ MASM для компиляторов masm-6.12 (ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅) ΠΈ tasm-3.1 (ΠΈΠ»ΠΈ Π²Ρ‹ΡˆΠ΅). ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, извСстныС компиляторы с языка программирования Π‘/Π‘++ ( Borland C++, Visual C++ ) Π²Ρ‹Π΄Π°ΡŽΡ‚ ассСмблСрный листинг ΠΈΠΌΠ΅Π½Π½ΠΎ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ MASM. И ΠΎΡ‡Π΅Π½ΡŒ скоро ΠΌΡ‹ научимся Π΅Π³ΠΎ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒβ€¦

ОписаниС сСгмСнта β€” Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° SEGMENT

Из ΠΏ. 2.4.3 ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π»ΡŽΠ±Ρ‹Π΅ ассСмблСрныС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ содСрТат, ΠΏΠΎ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅Ρ€Π΅, ΠΎΠ΄ΠΈΠ½ сСгмСнт β€” сСгмСнт ΠΊΠΎΠ΄Π°. Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сСгмСнт для стСковой памяти ΠΈ сСгмСнт Π΄Π°Π½Π½Ρ‹Ρ… (основной ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ) для опрСдСлСния Π΄Π°Π½Π½Ρ‹Ρ….

Имя сСгмСнта ( имяБ ) Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, Π±Ρ‹Ρ‚ΡŒ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ соглашСниям для ΠΈΠΌΠ΅Π½ Π² АссСмблСрС ΠΈΠ»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ алгоритмичСском языкС, для стыковки с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ дСлаСтся ассСмблСрный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ. НапримСр, ΠΏΡ€ΠΈ стыковкС АссСмблСра с Turbo/Borland Pascal имяБ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π‘Π’Π ΠžΠ“Πž ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ:

Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ ΠΈ Π·Π°ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ сСгмСнт с ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Ρ‚Π΅ΠΌ ΠΆΠ΅ ΠΈΠΌΠ΅Π½Π΅ΠΌ имяБ нСсколько Ρ€Π°Π·, Π½ΠΎ ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°Ρ‚ΡŒΡΡ (Π²ΠΊΠ»Π°Π΄Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π΄Ρ€ΡƒΠ³ Π² Π΄Ρ€ΡƒΠ³Π°) Ρ€Π°Π·Π½Ρ‹Π΅ сСгмСнты НЕ Π΄ΠΎΠ»ΠΆΠ½Ρ‹. ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ просматриваСт ассСмблСрный ΠΌΠΎΠ΄ΡƒΠ»ΡŒ ΠΈ ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΠ΅Ρ‚ вмСстС всС части сСгмСнтов с ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ Π² Ρ‚ΠΎΠΌ порядкС, Π² ΠΊΠ°ΠΊΠΎΠΌ ΠΎΠ½ ΠΈΡ… ΠΎΠ±Π½Π°Ρ€ΡƒΠΆΠΈΠ²Π°Π΅Ρ‚ (свСрху-Π²Π½ΠΈΠ·).

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° SEGMENT ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ‚Ρ€ΠΈ основных Ρ‚ΠΈΠΏΠ° Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ², ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ( align ), объСдинСниС ( combine ) ΠΈ класс (‘ class’ ), ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ хотя Π±Ρ‹ ΠΎΠ΄ΠΈΠ½ ΠΏΡ€ΠΎΠ±Π΅Π» Π² качСствС раздСлитСля. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ смысл ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π‘ΠžΠ›Π¬Π¨Π˜Π₯ ассСмблСрных ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅
BYTEΠ’Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ НЕ выполняСтся. Π‘Π΅Π³ΠΌΠ΅Π½Ρ‚ размСщаСтся, начиная со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ Π±Π°ΠΉΡ‚Π°.
WORDНачало сСгмСнта выравниваСтся Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ слова (Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ адрСс, ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ 2)
DWORDНачало сСгмСнта выравниваСтся Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π΄Π²ΠΎΠΉΠ½ΠΎΠ³ΠΎ слова (Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ адрСс, ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ 4)
PARAНачало сСгмСнта выравниваСтся Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ ΠΏΠ°Ρ€Π°Π³Ρ€Π°Ρ„Π° (Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ адрСс, ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ 16, см.ΠΏ.3.4.3). Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ принято ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.
PAGEНачало сСгмСнта выравниваСтся Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ страницы (Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ адрСс, ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ 256)
MEMPAGEНачало сСгмСнта выравниваСтся Π½Π° Π³Ρ€Π°Π½ΠΈΡ†Ρƒ страницы памяти (Ρ‡Π΅Ρ‚Π½Ρ‹ΠΉ адрСс, ΠΊΡ€Π°Ρ‚Π½Ρ‹ΠΉ 4K)
Π’Π°Π±Π»ΠΈΡ†Π° 4.1. ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ выравнивания (align)

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° группирования сСгмСнтов Group

Π­Ρ‚Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для объСдинСния сСгмСнтов Π² Π³Ρ€ΡƒΠΏΠΏΡƒ. Она ΠΈΠΌΠ΅Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚:

Π“Ρ€ΡƒΠΏΠΏΠ° позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠ· всСх сСгмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ находятся Π² Π½Π΅ΠΉ, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΎΠ΄Π½ΠΎΠΉ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ адрСса Π³Ρ€ΡƒΠΏΠΏΡ‹ Π² сСгмСнтный рСгистр. Π­Ρ‚ΠΈΠΌ ΡˆΠΈΡ€ΠΎΠΊΠΎ ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ компиляторы Π‘/Π‘++.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Assume

Π’ качСствС сСгмСнтных рСгистров для Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ АссСмблСра ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ ΡƒΠΆΠ΅ извСстныС Π½Π°ΠΌ рСгистры: CS, DS, ES ΠΈΠ»ΠΈ SS.

Для ΠžΠ’ΠœΠ•ΠΠ« назначСния для Π΄Π°Π½Π½ΠΎΠ³ΠΎ сСгмСнтного рСгистра ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π”Π Π£Π“ΠžΠ™ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹:

Π§Π°Ρ‰Π΅ всСго эта Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Π½Π°Ρ‡Π°Π»Π΅ модуля Π½Π° АссСмблСрС.

Рассмотрим Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ листинга ассСмблСрного Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Ρ‹Π» ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ компилятором Borland C++ 5.02 :

Ну, ΠΊΠ°ΠΊ? ВсС понятно? Π’ΠΎΡ‚ ΠΌΡ‹ ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π΄Π΅Π»Π°ΡŽΡ‚ компиляторы с алгоритмичСских языков…

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹Π΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ памяти


Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° MODEL

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° MODEL позволяСт Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ Π² ассСмблСрной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΎΠ΄Π½Ρƒ ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… стандартных ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ сСгмСнтации памяти ( модСль_памяти) β€” см. Ρ‚Π°Π±Π». 3.3. ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅ΠΌ Π΅Π΅ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² дальнСйшСм:

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ описания сСгмСнтов

ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ²ΡˆΠΈΡΡŒ с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ модСлью, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½Ρ‹Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ описания основных сСгмСнтов (рСгистр Π±ΡƒΠΊΠ² НЕБУЩЕБВВЕНЕН!):

ОписаниС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€

ΠœΠΎΠ΄ΡƒΠ»ΡŒ Π½Π° АссСмблСрС, ΠΊΠ°ΠΊ ΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° алгоритмичСских языках, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ состоит ΠΈΠ· ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€. Для описания ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Π²Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹. Π’ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎ ΠΎΠ½ΠΈ ΠΏΠΎΡ…ΠΎΠΆΠΈ Π½Π° ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ описания сСгмСнта β€” см. ΠΏ. 4.2:

ОписаниС Π²Π½Π΅ΡˆΠ½ΠΈΡ… ссылок

Как Π±Ρ‹Π»ΠΎ заявлСно Π² ΠΏ. 4.1, ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ алгоритмичСскиС языки Pascal ΠΈ C/C++ Π² качСствС ΠΏΠΎΠΌΠΎΡ‰Π½ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈ ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ АссСмблСра. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, сразу Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π ΠΠ—ΠΠ«ΠœΠ˜ модулями, Π΄Π° Π΅Ρ‰Π΅ ΠΈ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… языках! ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½Π°ΠΌ Π½Π΅ ΠΌΠΈΠ½ΠΎΠ²Π°Ρ‚ΡŒ Π’ΠΠ•Π¨ΠΠ˜Π₯ ссылок. Π§Ρ‚ΠΎ это Ρ‚Π°ΠΊΠΎΠ΅? Π­Ρ‚ΠΎ β€” использованиС Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅ ΠΈΠΌΠ΅Π½, описанных Π² Π΄Ρ€ΡƒΠ³ΠΈΡ… модулях.

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° описания ΠΎΠ±Ρ‰ΠΈΡ… ΠΈΠΌΠ΅Π½ PUBLIC

Π­Ρ‚Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ компилятору ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²Ρ‰ΠΈΠΊΡƒ, Ρ‡Ρ‚ΠΎ Π΄Π°Π½Π½ΠΎΠ΅ имя (Π΅Π³ΠΎ адрСс) Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ доступно для Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ИмСна ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠ°ΠΌΠΈ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

НапримСр, Ссли ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² языкС Π‘/Π‘++ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ с ΠΈΠΌΠ΅Π½Π΅ΠΌ Prim, Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ Π² АссСмблСрС, Ρ‚ΠΎ ΠΎΠ½Π° Π² ассСмблСрном ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ описана ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° описания Π²Π½Π΅ΡˆΠ½ΠΈΡ… ΠΈΠΌΠ΅Π½ EXTRN

НапримСр, Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ Π½Π° алгоритмичСском языкС Pascal ( Borland/Turbo Pascal-5.5/6.0/7.0Ρ… ) ΠΌΡ‹ описали ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

А ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… собираСмся Π² ассСмблСрном ΠΌΠΎΠ΄ΡƒΠ»Π΅. Π’ этом случаС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²ΠΈΠ΄:

Π―Π·Ρ‹ΠΊ Pascal НЕ Ρ€Π°Π·Π»ΠΈΡ‡Π°Π΅Ρ‚ рСгистр Π±ΡƒΠΊΠ² Π² ΠΈΠΌΠ΅Π½Π°Ρ…. А Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° EXTRN содСрТит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠžΠ”ΠΠ£ Π³Π»Π°ΡΠ½ΡƒΡŽ Π±ΡƒΠΊΠ²Ρƒ β€” Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠ΅ программисты часто Π½Π° этом ΡΠΏΠΎΡ‚Ρ‹ΠΊΠ°ΡŽΡ‚ΡΡβ€¦ Π‘ΡƒΠ΄ΡŒΡ‚Π΅ Π’ΠΠ˜ΠœΠΠ’Π•Π›Π¬ΠΠ«!

Вопросы

Если Π²Ρ‹ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΡ‚Π²Π΅Ρ‚ΠΈΠ»ΠΈ Π½Π° Π’Π‘Π• вопросы, Π·Π½Π°Ρ‡ΠΈΡ‚, Π²Ρ‹ Π₯ОРОШО Π£Π‘Π’ΠžΠ˜Π›Π˜ Π³Π»Π°Π²Ρƒ 2 (ΠΏ. 2.2) β€” ΠΏΠΎΠ·Π΄Ρ€Π°Π²Π»ΡΡŽ. Если НЕВ, Π½Π΅ Π±Π΅Π΄Π° β€” всС Ρƒ вас Π΅Ρ‰Π΅ Π²ΠΏΠ΅Ρ€Π΅Π΄ΠΈ (просто ΠΏΠΎΠΊΠ° ΠΌΠ°Π»ΠΎΠ²Π°Ρ‚ΠΎ ΠΎΠΏΡ‹Ρ‚Π°).

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

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

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

1. ΠœΠ΅Ρ‚ΠΊΠ° с Π΄Π²ΠΎΠ΅Ρ‚ΠΎΡ‡ΠΈΠ΅ΠΌ послС ΠΈΠΌΠ΅Π½ΠΈ опрСдСляСт адрСс ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π° ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

2. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° LABEL позволяСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ явно Ρ‚ΠΈΠΏ ΠΌΠ΅Ρ‚ΠΊΠΈ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ€Π°Π²Π½ΠΎ адрСсу ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, стоящих Π΄Π°Π»Π΅Π΅. НапримСр,
LABEL L1 DWORD.

3. Π’Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ИМЯ PROC опрСдСляСт ΠΌΠ΅Ρ‚ΠΊΡƒ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходит ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ CALL. Π‘Π»ΠΎΠΊ ΠΊΠΎΠ΄Π°, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΠΉΡΡ с Ρ‚Π°ΠΊΠΎΠΉ ΠΌΠ΅Ρ‚ΠΊΠΈ, Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Ρ‚Π°ΠΊΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ JMP, ΠΊΠ°ΠΊ, Π²ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ CALL ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ ΠΌΠ΅Ρ‚ΠΊΡƒ. Π’ этом, нСсомнСнно, состоит сила ΠΈ Π³ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ ассСмблСра.

6. ΠœΠ΅Ρ‚ΠΊΠ° «$» всСгда опрСдСляСт Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ адрСс.

7. Π’ MASM ΠΌΠ΅Ρ‚ΠΊΠΈ, стоящиС Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅, автоматичСски ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΈ, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΠΈΠΌΠ΅Π½Π° ΠΌΠ΅Ρ‚ΠΎΠΊ Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°Ρ… ΠΌΠΎΠ³ΡƒΡ‚ Π΄ΡƒΠ±Π»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ. Π’ TASM всС ΠΌΠ΅Ρ‚ΠΊΠΈ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΡ‡ΠΈΡ‚Π°ΡŽΡ‚ΡΡ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ. Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΊΠΈ, стоящиС Π² ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ, ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ прСфикс @@, Π° Π² Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ слСдуСт ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ LOCALS (см. ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΡƒΡŽ Π³Π»Π°Π²Ρƒ).

1. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° STRUC позволяСт ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ нСсколько Ρ€Π°Π·Π½ΠΎΡ€ΠΎΠ΄Π½Ρ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠ΄Π½ΠΎ Ρ†Π΅Π»ΠΎΠ΅. Π­Ρ‚ΠΈ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ полями. Π’Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ STRUC опрСдСляСтся шаблон структуры, Π·Π°Ρ‚Π΅ΠΌ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ любоС количСство структур. Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Доступ ΠΊ полям структуры осущСствляСтся посрСдством Ρ‚ΠΎΡ‡ΠΊΠΈ: COMP1.RE.

2. ОбъСдинСниС. ОбъСдинСниС опрСдСляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ³ΠΎ слова UNION. ΠžΡ‚ структуры объСдинСниС отличаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ всС поля Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°ΡŽΡ‚ΡΡ Π² структурС с Π½ΡƒΠ»Π΅Π²Ρ‹ΠΌ смСщСниСм, Ρ‚.Π΅. Π½Π°ΠΊΠ»Π°Π΄Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ Π½Π° Π΄Ρ€ΡƒΠ³Π°.

1. УсловноС ассСмблированиС Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΡ€ΠΈ трансляции ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠΉ участок ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. БущСствуСт Ρ‚Ρ€ΠΈ Π²ΠΈΠ΄Π° условного ассСмблирования.
УсловиС считаСтся Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌ, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 0 ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹ΠΌ, Ссли Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎ ΠΎΡ‚ нуля.

2. АссСмблСры MASM ΠΈ TASM ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Π°ΠΊΠΆΠ΅ нСсколько условных ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ², Π½Π°Π·ΠΎΠ²Π΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠ· Π½ΠΈΡ….

Π±) ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ IF1 ΠΈ IF2 ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ ΠΏΡ€ΠΈ ассСмблировании.

УсловноС ассСмблированиС понадобится Π½Π°ΠΌ Π² ΠΊΠΎΠ½Ρ†Π΅ Π³Π»Π°Π²Ρ‹ для написания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, транслируСмой ΠΊΠ°ΠΊ Π² MASM, Ρ‚Π°ΠΊ ΠΈ TASM.

1. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠ΅, Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΏΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ число Ρ€Π°Π·. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΌΠ°ΠΊΡ€ΠΎΠ΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° REPT. НапримСр:
Π‘ΡƒΠ΄Π΅Ρ‚ сгСнСрировано 100 Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² DB 10. Π‘ этой Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΎΠΉ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ «=», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ позволяСт ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ, Ρ‚.Π΅. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Ρ‚ΠΈΠΏΠ° А = А + 5.

2. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° IRP.
Π‘Π»ΠΎΠΊ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ€Π°Π·, сколько ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π² спискС. НапримСр:
ΠŸΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… строк:

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ эквивалСнтСн ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ:

ΠžΠ±Ρ‰ΠΈΠΉ Π²ΠΈΠ΄ макроопрСдСлСния. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ² Π±Π»ΠΎΠΊ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π² зависимости ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² замСняСмый участок ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹Π΅ значСния. Если Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ участок прСдполагаСтся ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π² Ρ†ΠΈΠΊΠ»Π΅, ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ нСсомнСнныС прСимущСства ΠΏΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ΠΎΠΉ, Ρ‚.ΠΊ. нСсколько убыстряСт Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. ΠŸΡ€ΠΈΠΌΠ΅Ρ€: Π”Π°Π½Π½ΠΎΠ΅ ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΠ±ΠΌΠ΅Π½Ρƒ содСрТимым ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.

Π’Π°ΠΆΠ½Ρ‹ΠΌ вопросом Π² связи с макроопрСдСлСниями являСтся ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° ΠΌΠ΅Ρ‚ΠΎΠΊ. Π”Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Ссли ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π² ΠΌΠ°ΠΊΡ€ΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ, Ρ‚ΠΎ ΠΏΡ€ΠΈ использовании Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π²ΠΎΠ·Π½ΠΈΠΊΠ½Π΅Ρ‚ коллизия. Коллизия эта Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ объявлСния Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΌΠ΅Ρ‚ΠΎΠΊ. Для этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ»ΡŽΡ‡Π΅Π²ΠΎΠ΅ слово LOCAL. НапримСр,

НСкоторыС Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ транслятора ассСмблСра

1. ΠšΡ€ΠΎΠΌΠ΅ объявлСний с использованиСм Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² PUBLIC ΠΈ EXTERN, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ объявлСниС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ GLOBAL, которая дСйствуСт, ΠΊΠ°ΠΊ PUBLIC ΠΈ EXTERN ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

38 Π’ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС MS DOS это Π±Ρ‹Π»ΠΎ сущСствСнно.

1. УсловныС конструкции.

Рассмотрим ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚, содСрТащий ΡƒΡΠ»ΠΎΠ²Π½ΡƒΡŽ ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡŽ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ Π΅ΠΉ ассСмблСрный ΠΊΠΎΠ΄. эквивалСнтСн ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ассСмблСрному ΠΊΠΎΠ΄Ρƒ: Π’Π΅ΡΡŒΠΌΠ° удобная ΡˆΡ‚ΡƒΠΊΠ°, Π½ΠΎ Π½Π΅ ΡƒΠ²Π»Π΅ΠΊΠ°ΠΉΡ‚Π΅ΡΡŒ: Π½Π° ΠΌΠΎΠΉ взгляд, это сильно расслабляСт.

На Рис. 2.6.1 прСдставлСна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, транслируСмая ΠΈ Π² MASM, ΠΈ TASM. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° вСсьма проста, Π½ΠΎ рассмотрСния Π΅Π΅ Π²ΠΏΠΎΠ»Π½Π΅ достаточно для создания Π±ΠΎΠ»Π΅Π΅ слоТных ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… совмСстимых ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ.

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

БимволичСскиС ΠΈΠΌΠ΅Π½Π° Π² языкС ассСмблСра

Π’ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… языках высокого уровня, Ρ‚Π°ΠΊΠΈΡ…, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΊ ЀОРВРАН, использованиС символичСского ΠΈΠΌΠ΅Π½ΠΈ (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ) Π² качСствС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° являСтся ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ компилятору ΠΎ нСобходимости рСзСрвирования мСста для значСния Π΄Π°Π½Π½ΠΎΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠ·Π΄Π½Π΅Π΅, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎ нСобходимости ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ адрСсом Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ области памяти ΠΈ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΈΠΌΠ΅Π½Π΅ΠΌ. Π’ языкС ассСмблСра всС обстоит ΠΈΠ½Π°Ρ‡Π΅. Π›ΡŽΠ±ΠΎΠ΅ символичСскоС имя, ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰Π΅Π΅ΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° языкС ассСмблСра, Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ Π΅Π³ΠΎ Π² ΠΏΠΎΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ΠœΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, присваиваниС ΠΈΠΌΠ΅Π½ΠΈ LOOP ΠΊΠΎΠΌΠ°Π½Π΄Π΅

позволяСт Π·Π°Ρ‚Π΅ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ

для осущСствлСния ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ AR. ΠŸΡ€ΠΈ рассмотрСнии ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΉ ситуации ассСмблСр просто связываСт имя LOOP с адрСсом Π½Π°Ρ‡Π°Π»Π° ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Π½ΠΎΠΉ этим ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π² Π΄Π°Π½Π½ΠΎΠΌ случаС AR. ΠžΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ Π² машинной ΠΊΠΎΠΌΠ°Π½Π΄Π΅ бСзусловного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ адрСс, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΈΠΌΠ΅Π½ΠΈ LOOP.

Для рСзСрвирования памяти ΠΈ установлСния связи ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΌΠΈ ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ адрСсами Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… для Π½ΠΈΡ… областСй памяти ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ псСвдокоманды DS ΠΈ DC. Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ псСвдокоманд EQU константам ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΈΠΌΠ΅Π½Π°.

Команда DS

Когда ΠΌΡ‹ составляСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, хранящСйся Π² памяти, Ρ‚ΠΎ Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ мСста для этой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ. Одним ΠΈΠ· способов рСзСрвирования памяти являСтся использованиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DS (Define Storage β€” ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ).

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

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° рассмотрим ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Π‘ΠΈΠΌΠ²ΠΎΠ» DS располагаСтся Π² ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ… ΠΏΠΎΠ»Π½Ρ‹Ρ… слов (3F) ΠΈ присвоСниС ΠΈΠΌΠ΅Π½ΠΈ WORDS адрСсу ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… 12 Π±Π°ΠΉΡ‚ΠΎΠ². ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти ΠΌΡ‹ запросили ΠΏΠΎΠ»Π½Ρ‹ΠΌΠΈ словами, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ слова, Ρ‚.Π΅. Π² качСствС адрСса WORDS Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ 4.

ΠŸΠ°ΠΌΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π° нСпосрСдствСнно Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° машинном языкС, начиная с Ρ‚ΠΎΠ³ΠΎ мСста, Π³Π΄Π΅ Π±Ρ‹Π»ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ΠΎ DS-ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠŸΡƒΡΡ‚ΡŒ DS-ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ встрСчаСтся Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ участкС тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

НСкотороС количСство памяти ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ ассСмблСром для осущСствлСния выравнивания. АссСмблированиС ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠΉ даст Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

Если ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π±Π°ΠΉΡ‚ являСтся ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π±Π°ΠΉΡ‚ΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ слова, Ρ‚ΠΎ ΠΏΠ°ΠΌΡΡ‚ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π° Ρ‚Π°ΠΊ:

18381А46Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС12 Π±Π°ΠΉΡ‚ΠΎΠ² Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС1Π‘26

Если ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ послС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ AR Π±Π°ΠΉΡ‚ Π½Π΅ являСтся Π±Π°ΠΉΡ‚ΠΎΠΌ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ слова, Ρ‚ΠΎ для выравнивания Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Ρ‹ 2 Π±Π°ΠΉΡ‚Π°:

18381А46 Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС2 Π±Π°ΠΉΡ‚Π° ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС12 Π±Π°ΠΉΡ‚ΠΎΠ² Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС1Π‘26

Π’ рассмотрСнном ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ для ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DS ассСмблСром ΠΎΠ½Π° Π±Ρ‹Π»Π° ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° ΠΌΠ΅ΠΆΠ΄Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. Но ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ написанной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ машина Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ внСсСно Π² ΠΏΠΎΠ»Π΅ WORDS, ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ со всСми Π²Ρ‹Ρ‚Π΅ΠΊΠ°ΡŽΡ‰ΠΈΠΌΠΈ ΠΎΡ‚ΡΡŽΠ΄Π° послСдствиями. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ слСдуСт Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ Ρ‚Π°ΠΌ, Π³Π΄Π΅ информация, записанная Π² Π½Π΅ΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ воспринята ΠΊΠ°ΠΊ Ρ‡Π°ΡΡ‚ΡŒ выполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. К вопросу ΠΎ Ρ‚ΠΎΠΌ, ΠΊΡƒΠ΄Π° ΠΆΠ΅ Π½Π° самом Π΄Π΅Π»Π΅ слСдуСт ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DS ΠΈ DC, ΠΌΡ‹ вСрнСмся ΠΏΠΎΠ·Π΄Π½Π΅Π΅.

ΠžΠ±Ρ‰Π΅ΠΉ Ρ„ΠΎΡ€ΠΌΠΎΠΉ DS-прСдлоТСния являСтся

ПолС ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ любоС имя, допустимоС Π² языкС ассСмблСра, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ оставлСно пустым. Π‘ΠΎΠΊΡ€Π°Ρ‰Π΅Π½ΠΈΠ΅ «Кол» (количСство) ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ коэффициСнт повторСния, Ρ‚. Π΅. число Π΅Π΄ΠΈΠ½ΠΈΡ† памяти ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΎ. ЗначСния Π² ΠΏΠΎΠ»Π΅ Β«Π’ΠΈΠΏΒ» ΠΌΠΎΠ³Ρƒ? Π±Ρ‹Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌΠΈ:

Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DS Π±ΡƒΠ΄Π΅Ρ‚:

1. Π Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ† памяти Ρ‚ΠΈΠΏΠ°, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΠΎΠ»Π΅ Β«Π’ΠΈΠΏΒ», сколько Π·Π°Π΄Π°Π½ΠΎ ΠΏΠΎΠ»Π΅ΠΌ «Кол» с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π³Ρ€Π°Π½ΠΈΡ†, Ссли это Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.

2. ΠŸΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΠ΅ символичСского ΠΈΠΌΠ΅Π½ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΠΎΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ

ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, адрСсу ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ области. НапримСр, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΡΡ‚ΡŒ полуслов ΠΈ присваиваСт имя HALVES ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌΡƒ Π±Π°ΠΉΡ‚Ρƒ. Аналогично ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅

Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠ΄Π½ΠΎ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ слово (Π΅Π΄ΠΈΠ½ΠΈΡ†Π°, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ поля «Кол», ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΠΏΡƒΡ‰Π΅Π½Π°), ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ имя DOUBLE.

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

Команда DC

Команда DC (Define Constant β€” ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ константу) Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ DS, Π½ΠΎ Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π½Π΅Π΅ позволяСт ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ значСния Π² Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅ΠΌΡƒΡŽ ΠΎΠ±Π»Π°ΡΡ‚ΡŒ нСпосрСдствСнно ΠΏΡ€ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΏΠ°ΠΌΡΡ‚ΡŒ, заказанная ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅DC, содСрТит Π²ΠΏΠΎΠ»Π½Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΊ Π½ΠΈΠΊΠΎΠ³Π΄Π° нСльзя с ΡƒΠ²Π΅Ρ€Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ содСрТит сСгмСнт памяти послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DS.

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ DC ΠΈΠΌΠ΅Π΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚

Имя DC КолВип’Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅’

«Кол» ΠΈ Β«Π’ΠΈΠΏΒ» ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚ΠΎΡ‚ ΠΆΠ΅ самый смысл, Ρ‡Ρ‚ΠΎ ΠΈ для ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DS. Пока для указания Ρ‚ΠΈΠΏΠ° Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ‚ΠΈΠΏΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ рассмотрим впослСдствии.

Π’ случаС использования Ρ‚ΠΈΠΏΠΎΠ² F, D ΠΈΠ»ΠΈ Н Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ любоС дСсятичноС число. ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ это число пСрСводится Π² Π΄Π²ΠΎΠΈΡ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΈ записываСтся Π½Π° Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ мСсто. Π£ΠΊΠ°Π·Π°Π½ΠΈΠ΅ дСсятичных чисСл Π² качСствС Β«Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉΒ» являСтся Π΅Ρ‰Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°: Ссли систСма счислСния Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½Π° явно, всС числа Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π½Π° языкС ассСмблСра Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ дСсятичныС.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DC

1. ΠŸΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚ΡΡ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ «Кол» Π΅Π΄ΠΈΠ½ΠΈΡ† памяти Ρ‚ΠΈΠΏΠ° Β«Π’ΠΈΠΏΒ», Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π³Ρ€Π°Π½ΠΈΡ†.

2. БимволичСскоС имя, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ Π² ΠΏΠΎΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ, присваиваСтся адрСсу ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ области.

3. Β«Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅Β» Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ заносится Π² эту ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти.

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² апострофы.

Рассмотрим, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊ Ρ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ прСдлоТСния

ИмСнСм Π² Π΄Π°Π½Π½ΠΎΠΌ случаС являСтся ONE, количСство ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π΅Π½ΠΈΠΉ Ρ€Π°Π²Π½ΠΎ 1 (Ρ‚Π°ΠΊ ΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ Π² случаС DS-прСдлоТСния, Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ), Ρ‚ΠΈΠΏ β€” F, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся 1. Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ прСдлоТСния ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Π²Ρ‹Ρ€ΠΎΠ²Π½Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ слова, ΠΏΡ€ΠΈΡΠ²ΠΎΠ΅Π½ΠΈΡŽ ΠΈΠΌΠ΅Π½ΠΈONE адрСсу ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ ΠΈΠ· Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ² ΠΈ записи Π½Π° Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ мСсто значСния 00000001.

Рассмотрим Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€,

Π—Π΄Π΅ΡΡŒ рСзСрвируСтся мСсто для Ρ‚Ρ€Π΅Ρ… полуслов, ΠΈ Π² ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΈΠ· Π½ΠΈΡ… записываСтся β€” 2 Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅, Ρ‚. Π΅. FFFE. Имя HALF Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ адрСс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ полуслова.

ΠŸΡƒΡΡ‚ΡŒ рассмотрСнноС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ (Π»ΡƒΡ‡ΡˆΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ DS ΠΈ DC Π² сСрСдину ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, сСйчас это дСлаСтся ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π² цСлях ΠΈΠ»Π»ΡŽΡΡ‚Ρ€Π°Ρ†ΠΈΠΈ):

Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ всС ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‡Π΅Ρ‚Π½ΡƒΡŽ Π΄Π»ΠΈΠ½Ρƒ, условия выравнивания Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅ΠΌΠΎΠΉ области ΠΏΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π΅ полуслова автоматичСски Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС. Π’ оттранслированном Π²ΠΈΠ΄Π΅ Π΄Π°Π½Π½Ρ‹ΠΉ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

НаконСц, ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ слово, снабдив Π΅Π³ΠΎ ΠΈΠΌΠ΅Π½Π΅ΠΌ DUB, ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π² Π½Π΅Π³ΠΎ 10010. НСобходимый Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ получится, Ссли ΠΌΡ‹ внСсСм Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅

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

ΠšΡƒΠ΄Π° ΠΆΠ΅ слСдуСт ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ прСдлоТСния DC ΠΈ DS?

Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ являСтся ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ. Π’ ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π° DC Π±Ρ‹Π»Π° ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½Π° Π² сСрСдину ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π±Ρ‹Π» Π·Π°Π΄Π°Π½ вопрос, ΠΊΠ°ΠΊ ΠΏΠΎΠΉΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС. ΠžΡ‚Π²Π΅Ρ‚ Ρ‚Π°ΠΊΠΎΠ²: ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ AR ΠΈ LR Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ Π½ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ, Π·Π°Ρ‚Π΅ΠΌ машина попытаСтся Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Β«ΠΊΠΎΠΌΠ°Π½Π΄ΡƒΒ» с ΠΈΠΌΠ΅Π½Π΅ΠΌ HALF. Π‘ΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΠΎΠ΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ полуслова (FFFE) Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Π°, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ являСтся FF. ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠΎΠ΄ΠΎΠΌ Π½Π΅ сущСствуСт, поэтому Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π²Π°Π½ΠΎ ΠΈ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½ особый случай, Π²Ρ‹Π·Π²Π°Π½Π½Ρ‹ΠΉ Π½Π΅Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ΄ΠΎΠΌ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»Π° ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½Π° ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° выполнСния Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. МоТно (ΠΈ часто приходится) Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² сСрСдину ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½ΠΎ Π² этом случаС Π² Π½Π΅Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ внСсСны ΠΈ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° для прСдотвращСния рассмотрСнных Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… послСдствий. На рис. 6.5 ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ сдСлано.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΎΠ±Ρ‰Π΅Π΅ имя Π² ассСмблСрС

Если Π½Π΅Ρ‚ особой нСобходимости Π΄Π΅Π»Π°Ρ‚ΡŒ это ΠΈΠ½Π°Ρ‡Π΅, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ послС послСднСй Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ выполняСмой машинной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Для нас это ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ ΠΏΠΎΠΊΠ°, Ρ‡Ρ‚ΠΎ прСдлоТСния DS ΠΈ DC ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ послСдним ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ EOJ ΠΈ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ END ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ EQU

Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° позволяСт ΡΠΎΠΏΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ символичСскиС ΠΈΠΌΠ΅Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠΌ, Π° Ρ‚Π°ΠΊΠΆΠ΅ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π° для обозначСния Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ констант. БимволичСскоС имя, находящССся Π² ΠΏΠΎΠ»Π΅ ΠΈΠΌΠ΅Π½ΠΈ, сопоставляСтся с Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π² ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ². Рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ присваиваСт ΠΈΠΌΠ΅Π½ΠΈ REGSIX числовоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 6, Π²Ρ‚ΠΎΡ€ΠΎΠ΅ β€” ΠΈΠΌΠ΅Π½ΠΈ R7 Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 7. Если ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½Ρ‹Π΅ прСдлоТСния Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Ρ‹ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ, ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ

Ρ‚ΠΎ Π΅Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ эквивалСнтно Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

БимволичСскиС ΠΈΠΌΠ΅Π½Π° Π² ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² просто Π·Π°ΠΌΠ΅Π½Π΅Π½Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ значСниями.

Рассмотрим Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

ΠŸΠ΅Ρ€Π²ΠΎΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΏΠΎΠ»Π½Ρ‹Ρ… слова ΠΈ присваиваСт имя А ΠΏΠ΅Ρ€Π²ΠΎΠΌΡƒ ΠΈΠ· Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Π±Π°ΠΉΡ‚ΠΎΠ². Π’Ρ‚ΠΎΡ€ΠΎΠ΅ сопоставляСт ΠΈΠΌΠ΅Π½ΠΈ Π’ имя А, Ρ‚. Π΅. Π΄Π΅Π»Π°Π΅Ρ‚ Π΄Π²Π° ΠΈΠΌΠ΅Π½ΠΈ взаимозамСняСмыми. Π‘ этого ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° использованиС Π’ Π² качСствС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° становится эквивалСнтным использованию А. Команда EQU Π½Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ нСпосрСдствСнного влияния Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½ΡƒΡŽ Ρ„ΠΎΡ€ΠΌΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° машинном языкС. Π’ частности, Π½Π΅ происходит Π΄Π°ΠΆΠ΅ рСзСрвирования памяти для Π’. Имя Π’ просто сопоставляСтся ΠΈΠΌΠ΅Π½ΠΈ А.

Π’Ρ€Π΅Ρ‚ΡŒΠ΅ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ дСмонстрируСт Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования символичСских ΠΈΠΌΠ΅Π½ для ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ адрСсов. А ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Π±Π°ΠΉΡ‚ области, Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ DS-ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. Π˜Π½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ ясно, Ρ‡Ρ‚ΠΎ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ А+8: адрСс, Ρ€Π°Π²Π½Ρ‹ΠΉ А+8, ΠΈΠ»ΠΈ Π±Π°ΠΉΡ‚, отстоящий ΠΎΡ‚ Π±Π°ΠΉΡ‚Π° А Π½Π° 8. ПослСднСС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ имя Π‘ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ присвоСно Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌΡƒ ΠΏΠΎΠ»Π½ΠΎΠΌΡƒ слову поля А.

НСсмотря Π½Π° Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ Π² ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ слоТныС выраТСния для обозначСния адрСсов ΠΈ констант, практичСски Ρ‡Π°Ρ‰Π΅ всСго ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ выраТСния Π²ΠΈΠ΄Π°

ΠžΠ±Ρ‰ΠΈΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»Π° составлСния ΠΈ записи Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ руководствС ΠΏΠΎ ассСмблСру.

НаконСц, рассмотрим Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ выполнСния ΠΏΠ°Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄

Π‘ΠΈΠΌΠ²ΠΎΠ» * Π² ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² прСдлоТСния языка ассСмблСра являСтся ссылкой Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ счСтчика размСщСния. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ EQU Π½Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… ΠΊΠΎΠ΄ΠΎΠ², Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ счСтчика размСщСния являСтся адрСс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ Π±Π°ΠΉΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ RWD.Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ ΠΏΠ°Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄ эквивалСнтно Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡŽ всСго лишь ΠΎΠ΄Π½ΠΎΠΉ:

Π­Ρ‚ΠΎΡ‚ способ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΌΠΈ программистами, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΈ этом облСгчаСтся Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ возмоТности внСсСния Π² Π½ΠΈΡ… Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.

На рис. 6.6 прСдставлСна ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, привСдСнная Ρ€Π°Π½Π΅Π΅ Π½Π° рис. 5.10, модифицированная ΠΏΡƒΡ‚Π΅ΠΌ внСсСния Π² Π½Π΅Π΅ ΠΊΠΎΠΌΠ°Π½Π΄ EQU, ΠΏΡ€ΠΈΡΠ²Π°ΠΈΠ²Π°ΡŽΡ‰ΠΈΡ… символичСскиС ΠΈΠΌΠ΅Π½Π° рСгистрам. ΠŸΡ€ΠΈ этом ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ обозначСния Π±Π»ΠΎΠΊ-схСмы рис. 5.5.

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

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

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