ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

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

Π Π΅Ρ„Π΅Ρ€Π°Ρ‚ ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Π£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠœΡ‹ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ исполняСмый Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ понятСн ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. Поясним, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ этим подразумСваСтся. ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ опСрационная систСма ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ срСдством, ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ. Π’ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» с Π΄ΠΈΡΠΊΠ°, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, раздСляя Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄, ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ рСгистры (Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π―Π·Ρ‹ΠΊ АссамблСр (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ часто, ΠΆΠ΅Π»Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ эффСктивноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ†ΠΈΠΊΠ»ΠΎΠΌ.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ†ΠΈΠΊΠ»Π° LOOP ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ рСгистр CX Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ счСтчика Ρ†ΠΈΠΊΠ»Π°. ВсС эти ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ нСявно Ρ€Π°ΡΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°ΡŽΡ‚ рСгистр CX ΠΊΠ°ΠΊ счСтчик ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΉ Ρ†ΠΈΠΊΠ»Π°. ΠŸΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π° срСди Π½ΠΈΡ… — ΠΊΠΎΠΌΠ°Π½Π΄Π° LOOP. Команда LOOP ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ рСгистр CX ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Π΅Ρ‚ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΌΠ΅Ρ‚ΠΊΡƒ, Ссли содСрТимоС рСгистра CX Π½Π΅ Ρ€Π°Π²Π½ΠΎ 0. Если Π²Ρ‹Ρ‡ΠΈΡ‚Π°Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈΠ· Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π° CX Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π»ΠΎ ΠΊ Π½ΡƒΠ»Π΅Π²ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ, ΠΊΠΎΠΌΠ°Π½Π΄Π° LOOP Π½Π΅ Π΄Π΅Π»Π°Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅Ρ‚ся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°.

3.1 Π‘Π•Π“ΠœΠ•ΠΠ’Π« И .EXE-ΠŸΠ ΠžΠ“Π ΠΠœΠœ ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСр ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ компилятора прСобразуСтся Π² ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ ΠΊΠΎΠ΄. Однако Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° наша ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° смоТСт Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ процСссором, Π΅Ρ‰Π΅ Π΄Π°Π»Π΅ΠΊΠΎ. Для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ± это ΠΌΠΎΠ³Π»ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π»ΠΈΠ½ΠΊΠΎΠ²Ρ‰ΠΈΠΊΠ° наши ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ куски исполняСмого Π² ΠΊΠΎΠ΄Π° исполняСмый Ρ„Π°ΠΉΠ», понятный ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. Π’ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСмах ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠΎΠ½Π²Π΅Π½Ρ†ΠΈΠΈ ΠΈ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ для исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ². НапримСр, Π² ΠžΠ‘ MS DOS ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ² .com, .exe, .sys. Π­Ρ‚ΠΈ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊΠΎΠ² Ρ‚ΠΈΠΏ исполняСмой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π’Π°ΠΊ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, .exe ΠΈ .com ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ собой ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ исполняСмыС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки DOS, ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΠ΅ явно Π·Π°Π΄Π°Π½Π½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ Π½Π°Ρ‡Π°Π»Π° ΠΈ Ρ‚ΠΎΡ‡ΠΊΡƒ окончания выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² Ρ‚ΠΎ Π²Ρ€Π΅ΠΌΡ ΠΊΠ°ΠΊ .sys Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Ρ‡Π°Ρ‰Π΅ всСго Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€Ρ‹ — ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ исполняСмого ΠΊΠΎΠ΄Π°, Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Π΅ Π² ΡΠΈΡΡ‚Π΅ΠΌΡƒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹Π΅ ΠΏΠΎ ΠΌΠ΅Ρ€Π΅ Π²Ρ‹Π·ΠΎΠ²Π°. Π’ ΡΡ‚ΠΎΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎ .exe Ρ„Π°ΠΉΠ»Π°Ρ….

ΠœΡ‹ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΠ»ΠΈ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ исполняСмый Ρ„Π°ΠΉΠ» Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ понятСн ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмС. Поясним, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ этим подразумСваСтся. ΠžΠ±Ρ‹Ρ‡Π½Π°Ρ опСрационная систСма ΠΎΠ±Π»Π°Π΄Π°Π΅Ρ‚ Ρ‚Π°ΠΊΠΈΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΌ срСдством, ΠΊΠ°ΠΊ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ. Π’ ΠΎΠ±ΡΠ·Π°Π½Π½ΠΎΡΡ‚ΠΈ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ исполняСмый Ρ„Π°ΠΉΠ» с Π΄ΠΈΡΠΊΠ°, Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² ΠΏΠ°ΠΌΡΡ‚ΡŒ, раздСляя Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΈΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡ‹ΠΉ ΠΊΠΎΠ΄, ΠΏΡ€ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π² ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ рСгистры (Π° Ρ‚Π°ΠΊΠΆΠ΅ Π² ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅) Π±Π°Π·ΠΎΠ²Ρ‹Π΅ адрСса Ρ‚Π΅Ρ… сСгмСнтов, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ помСстил Ρ‚Π΅ ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΡ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π² Ρ„Π°ΠΉΠ»Π΅, ΠΈ ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ совСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ исполнСниС нашСй ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. Π’ Ρ€Π°Π·Π΄Π΅Π»Π΅ 2.3 ΠΌΡ‹ ΡƒΠΆΠ΅ рассказали ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Π°Ρ…, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… производится адрСсация памяти. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ информация ΠΎ ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Π°Ρ… сохраняСтся Π² Ρ„Π°ΠΉΠ»Π΅ .exe., ΠΈ Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊΠ°.

ΠŸΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ DOS (дисковая опСрационная систСма) ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Ρ‚Ρ€ΠΈ сСгмСнтных рСгистра: CS, DS ΠΈ SS. ΠšΠΎΠ΄ΠΎΠ²Ρ‹ΠΉ сСгмСнт (CS) Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ сСгмСнты ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ. Π’ ΡΡ‚ΠΎΠΌ случаС Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ DOS ΠΏΡ€ΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€ΡƒΠ΅Ρ‚ рСгистры DS ΠΈ ES Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ адрСса прСфикса ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ сСгмСнта PSP (Program Segment Prefix) — ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠΉ области ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 256 (100h) Π±Π°ΠΉΡ‚.

PSP ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ для опрСдСлСния ΠΈΠΌΠ΅Π½ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΈΠ· ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки, Π²Π²Π΅Π΄Π΅Π½Π½ΠΎΠΉ ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅, объСма доступной памяти, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… окруТСния систСмы ΠΈ Ρ‚. Π΄. РСгистр SS ΠΏΡ€ΠΈ этом инициализируСтся Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ сСгмСнта, находящСгося сразу Π·Π° PSP, Ρ‚. Π΅. ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ сСгмСнта ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ПослС ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π΅ IP находится смСщСниС ΠΏΠ΅Ρ€Π²ΠΎΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Ρ‡Π°Π»Π° ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠ³ΠΎ сСгмСнта, адрСс ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠΌΠ΅Ρ‰Π΅Π½ Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ CS. ΠŸΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€, считывая эту ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, постоянно измСняя содСрТимоС рСгистра IP ΠΈ ΠΏΡ€ΠΈ нСобходимости CS для получСния ΠΊΠΎΠ΄ΠΎΠ² ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π½Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. DS ΠΏΠΎΡΠ»Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ установлСн Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ PSP, поэтому для Π΅Π³ΠΎ использования Π² ΠΏΠ΅Ρ€Π²Ρ‹Ρ… Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ выполняСтся Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° DS Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ сСгмСнта Π΄Π°Π½Π½Ρ‹Ρ….

Π€Π°ΠΉΠ» Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° .exe содСрТит ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π·Π°Π³Ρ€ΡƒΠ·Ρ‡ΠΈΠΊ выполняСт настройку ссылок Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π² Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½ΠΎΠΌ ΠΌΠΎΠ΄ΡƒΠ»Π΅.

ΠŸΠ΅Ρ€Π΅Π΄ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ .com ΠΈΠ»ΠΈ .exe-ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ DOS опрСдСляСт сСгмСнтный адрСс, Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹ΠΉ прСфиксом ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ³ΠΎ сСгмСнта (PSP), ΠΊΠ°ΠΊ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π—Π°Ρ‚Π΅ΠΌ DOS выполняСт ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

создаСт копию Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ окруТСния DOS (ΠΎΠ±Π»Π°ΡΡ‚ΡŒ памяти, содСрТащая ряд строк Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ASCIIZ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ прилоТСниями для получСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ систСмной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΈ Π΄Π»Ρ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ) для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹;

ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ ΠΏΡƒΡ‚ΡŒ, ΠΎΡ‚ΠΊΡƒΠ΄Π° Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, Π² ΠΊΠΎΠ½Π΅Ρ† окруТСния;

заполняСт поля PSP ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ для Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (количСство памяти, доступноС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅; сСгмСнтный адрСс окруТСния DOS; Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ INT 22H INT 23H ΠΈ INT 24H ΠΈ Ρ‚. Π΄).

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ .exe ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ любоС количСство сСгмСнтов ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚ΠΎΠ² Π΄Π°Π½Π½Ρ‹Ρ….

Π€Π°ΠΉΠ» .exe-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° содСрТит ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ опСрационная систСма выполняСт настройку ссылок Π½Π° ΡΠ΅Π³ΠΌΠ΅Π½Ρ‚Ρ‹ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

4 Π ΠΠ‘Π¨Π˜Π Π•ΠΠΠ«Π• Π’ΠžΠ—ΠœΠžΠ–ΠΠžΠ‘Π’Π˜ ΠΠ‘Π‘Π•ΠœΠ‘Π›Π•Π Π

4.1 ΠœΠΠšΠ ΠžΠšΠžΠœΠΠΠ”Π«

Π”ΠΎ Π½Π°ΡΡ‚оящСго ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π³Π»Π°Π²Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… ассСмблСра, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°ΠΌ процСссора. Однако, рассматривая листинг любой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСр, Π»Π΅Π³ΠΊΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π² ΠΊΠΎΠ΄Π΅ Π²ΡΡ‚Ρ€Π΅Ρ‡Π°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊΠΆΠ΅ псСвдокоманды. Π’Π°ΠΊΠΈΠΌΠΈ псСвдокомандами ΡΠ²Π»ΡΡŽΡ‚ΡΡ, ΠΊ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, ΡƒΠΆΠ΅ упомянутыС Π½Π°ΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ выдСлСния памяти: DB, DW ΠΈΠ»ΠΈ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ слова. Π’ΠΏΡ€ΠΎΡ‡Π΅ΠΌ, Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности ассСмблСра Π½Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ся этими простыми ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ; язык ассСмблСра прСдоставляСт программисту ΠΌΠΎΡ‰Π½Ρ‹ΠΉ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚ макросов, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‰ΠΈΠΉ написаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ ΠΈ Π·Π°Ρ‡Π°ΡΡ‚ΡƒΡŽ Π΄Π΅Π»Π°ΡŽΡ‰ΠΈΠΉ Π΅Π΅ ΡƒΠ΄ΠΎΠ±ΠΎΡ‡ΠΈΡ‚Π°Π΅ΠΌΠΎΠΉ.

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

Π’ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π΄Π²Π° шага. На ΠΏΠ΅Ρ€Π²ΠΎΠΌ шагС ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π° опрСдСляСтся Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚ присваиваСт Π΅ΠΉ ΠΈΠΌΡ ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ состоит ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ ассСмблСра ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ появлСнии ΠΈΠΌΠ΅Π½ΠΈ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Бинтаксис опрСдСлСния ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… компиляторах; Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹ΠΌ являСтся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‚Π°ΠΊΠΎΠΉ синтаксис:

MACRO

operators list

ENDM

Π’Ρ‚ΠΎΡ€ΠΎΠΉ шаг — ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. Π­Ρ‚ΠΎ происходит, ΠΊΠΎΠ³Π΄Π° ассСмблСр встрСчаСт Π΅Π΅ ΠΈΠΌΡ Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠΎΠ΄Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. АссСмблСр замСняСт это имя ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌΠΈ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ.

ΠœΠ°ΠΊΡ€ΠΎΠΊΠΎΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² Ρ‚Π΅Π»Π΅ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΡ€ΠΈ ссылкС Π½Π° ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρƒ подставляСтся фактичСский Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ прСпроцСссор замСняСт всС вхоТдСния условного Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π² ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Π΅.

ΠœΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ схоТи с ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°ΠΌΠΈ Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠ΅Ρ€Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ΠΎΠΆΠ΄Ρ‹ написанный ΠΊΠΎΠ΄, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΎΡ‚ Π½ΠΈΡ… Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π² ΡΠ»ΡƒΡ‡Π°Π΅ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ исполняСмый ΠΊΠΎΠ΄ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ записан Π² ΠΎΠ΄Π½ΠΎΠΌ мСстС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΈ ΠΏΡ€ΠΈ Π΅Π³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π΅ исполнСниС пСрСдаСтся ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅, Ρ‚. Π΅. Π² Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ IP записываСтся Ρ‚ΠΎΡ‚ адрСс, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ находится этот ΠΊΠΎΠ΄. Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя ΠΏΡ€ΠΈ трансляции ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρƒ, оттранслированный ΠΊΠΎΠ΄ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π·Π°Π΄Π°Π½Π½Ρ‹ΠΉ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ, вставляСтся Π²ΠΎ Π²ΡΠ΅ Ρ‚Π΅ ΠΌΠ΅ΡΡ‚Π°, Π³Π΄Π΅ Π½Π° Π½Π΅Π³ΠΎ сущСствуСт ссылка. Вопрос, Π² ΠΊΠ°ΠΊΠΈΡ… случаях ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, Π° Π² ΠΊΠ°ΠΊΠΈΡ… — ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΠ³ΠΎ ΠΎΡ‚Π²Π΅Ρ‚Π°, Π½ΠΎ Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ сообраТСния. Π’Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π² ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ FAR-Π²Ρ‹Π·ΠΎΠ², Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ большС процСссорного Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅Ρ‚ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Π²Π΅ΠΉΠ΅Ρ€Π°. ΠœΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΆΠ΅ Π²ΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ Π²ΡΡŽΠ΄Ρƒ Π² ΠΊΠΎΠ΄; Ссли ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ Π΄Π΅Π»ΠΎ с Π±ΠΎΠ»ΡŒΡˆΠΈΠΌΠΈ ΠΈ Ρ‡Π°ΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΈΡ… Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄ сдСлаСт ΠΊΠΎΠ΄ ΠΎΡ‡Π΅Π½ΡŒ большим ΠΏΠΎ ΠΎΠ±ΡŠΠ΅ΠΌΡƒ. Π•Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ нСдостаток ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄ — ΠΈΡ… Π½Π΅Π»ΡŒΠ·Ρ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠ· ΡΡ‚ΠΎΡ€ΠΎΠ½Π½Π΅ΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

4.2 Π£Π‘Π›ΠžΠ’Π˜Π― Π’Π ΠΠΠ‘Π›Π―Π¦Π˜Π― Π•Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, прСдоставляСмый Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎΠΌ ассСмблСров с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹ΠΌΠΈ функциями — это ассСмблированиС ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ. Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ позволяСт Π½Π°ΠΌ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±Π»ΠΎΠΊ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ±ΡƒΡΠ»ΠΎΠ²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ условия. Π’ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, ΡƒΠ΄ΠΎΠ²Π»Π΅Ρ‚Π²ΠΎΡ€Π΅Π½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Ρ‚ условиС, ассСмблСр транслируСт ΠΈΠ»ΠΈ Π½Π΅ Ρ‚ранслируСт этот ΠΊΠΎΠ΄. Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΠΌΠΈ вСрсиями ΠΎΠ΄Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, имСя Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π»Π΅Π³ΠΊΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Вакая Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ, Ссли ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ c debugΠΈ release-вСрсиями ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. ПолСзна условная трансляция ΠΈ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° программист ΠΆΠ΅Π»Π°Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΡ‹Π΅ ΠΏΡ€ΠΈ Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ….

4.3 Π‘Π’Π Π£ΠšΠ’Π£Π ΠΠ«Π™ ΠΠ‘Π‘Π•ΠœΠ‘Π›Π•Π  Π•Ρ‰Ρ‘ ΠΎΠ΄Π½Π° Π·Π°ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‰Π°Ρ упоминания Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ прСдоставляСт ассСмблСр Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ посрСдством ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄ — это фактичСски использованиС структурного стиля программирования Π² Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅. Под структурным стилСм ΠΌΡ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΠΌ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ условных ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² Ρ†ΠΈΠΊΠ»Π° Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ Π±Π»ΠΎΠΊΠΎΠ² IF … THEN … ELSE … ENDIF ΠΈΠ»ΠΈ WHILE. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ эту Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ, ΠΌΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ ΠΊΠΎΠ΄ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ для чтСния, Ρ‡Ρ‘Ρ‚ΠΊΠΎ опрСдСляСм Π΅Π³ΠΎ структуру, ΠΊΠ°ΠΊ это дСлаСтся Π² ΡΠ·Ρ‹ΠΊΠ°Ρ… высокого уровня, сохраняя ΠΏΡ€ΠΈ этом всС прСимущСства ассСмблСрной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст

Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

  1. Π”. Брэдли — ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра для IBM PC.
  2. Π‘.Π’. Π—ΡƒΠ±ΠΊΠΎΠ² — Assembler. Π―Π·Ρ‹ΠΊ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Ρ… возмоТностСй.
  3. Π‘Π°ΠΉΡ‚ http://ru.wikipedia.orrg
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ
ΠšΡƒΠΏΠΈΡ‚ΡŒ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

Π˜Π›Π˜