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

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ арифмСтичСских дСйствий ΠΈ строковых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ

ΠšΡƒΡ€ΡΠΎΠ²Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

КаТдоС сСмСйство процСссоров ΠΈΠΌΠ΅Π΅Ρ‚ собствСнный ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ инструкций, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π²Π²ΠΎΠ΄Π° с ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Π²Ρ‹Π²ΠΎΠ΄Π° Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° ΡΠΊΡ€Π°Π½ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ арифмСтичСских вычислСний. Π­Ρ‚ΠΎΡ‚ Π½Π°Π±ΠΎΡ€ инструкций (ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹ΠΉ язык) слишком слоТСн для понимания ΠΈ Π½Π΅ΠΏΠΎΡΡ€Π΅Π΄ΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ использования для создания ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ для процСссоров ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ языки ассСмблСры… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ арифмСтичСских дСйствий ΠΈ строковых ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

АННОВАЦИЯ

Π‘Π΅Ρ€Π΄Ρ†Π΅ ΠΏΠ΅Ρ€ΡΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π° — микропроцСссор, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ арифмСтичСскиС, логичСскиС ΠΈ Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡. ΠŸΠ΅Ρ€Π²Ρ‹Π΅ микропроцСссоры появились Π² ΠΊΠΎΠ½Ρ†Π΅ 1960;Ρ… Π³ΠΎΠ΄ΠΎΠ², ΠΊΠΎΠ³Π΄Π° исслСдоватСли ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ создали ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Π»ΡŒΠ½ΡƒΡŽ схСму (ИБ), ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‰ΡƒΡŽ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ элСктронныС ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° Π΅Π΄ΠΈΠ½ΠΎΠΌ кристаллС ΠΏΠΎΠ»ΡƒΠΏΡ€ΠΎΠ²ΠΎΠ΄Π½ΠΈΠΊΠ°. Π’ Π½Π°Ρ‡Π°Π»Π΅ 70-Ρ… Π³ΠΎΠ΄ΠΎΠ² Ρ„ΠΈΡ€ΠΌΠ° Intel ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠΈΠ»Π° процСссор 8008 — ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²ΠΈΡ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ поколСния микропроцСссоров.

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

Π’ ΠΊΡƒΡ€ΡΠ΅ «ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΡ‹ ΠΈΠ·ΡƒΡ‡ΠΈΠ»ΠΈ язык ассСмблСра для процСссора Intel 8086. Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ этапом Π΄Π°Π½Π½ΠΎΠ³ΠΎ курса являСтся написаниС расчСтно-графичСской Ρ€Π°Π±ΠΎΡ‚Ρ‹.

1. Задания ΠΊ Ρ€Π°ΡΡ‡Π΅Ρ‚Π½ΠΎ-графичСской Ρ€Π°Π±ΠΎΡ‚Π΅

2. ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ

2.1 Π£Ρ€ΠΎΠ²Π½ΠΈ языков программирования

2.2 ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ языка ассСмблСра

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

2.4 Бинтаксис языка ассСмблСра

3. АрифмСтика

3.1 Алгоритм

3.2 ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3.3 Листинг ΠΊΠΎΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся макросы, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

4.Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

4.1 Алгоритм

4.2 ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

4.3 Листинг ΠΊΠΎΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся макросы, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ Π’Ρ‹Π²ΠΎΠ΄ Бписок Π»ΠΈΡ‚Π΅Ρ€Π°Ρ‚ΡƒΡ€Ρ‹

ΠšΡƒΡ€ΡΠΎΠ²Π°Ρ Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΠΎ ΠΊΡƒΡ€ΡΡƒ «ΠœΠ°ΡˆΠΈΠ½Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅» являСтся Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΌ этапом Π² ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠΈ Π΄Π°Π½Π½ΠΎΠΉ дисциплины.

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

Π’ Ρ€Π°Π±ΠΎΡ‚Π΅ рассмотрСны цСлочислСнныС арифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ строками.

1. Задания ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅

1. АрифмСтика

1.1. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ АссСмблСра для вычислСния значСния выраТСния.

1.2. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ АссСмблСра ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° исходных Π΄Π°Π½Π½Ρ‹Ρ… (с ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ допустимого Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π°) Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π² Π²ΠΈΠ΄Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

2. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

2.1. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ АссСмблСра для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строк.

2.2. ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ АссСмблСра ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° исходных Π΄Π°Π½Π½Ρ‹Ρ….

2.4. ΠŸΡ€ΠΎΠΈΠ·Π²Π΅ΡΡ‚ΠΈ тСстовыС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ, ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°Π½Π°Π»ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ².

ВвСсти 2 строки символов. Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку Π² ΠΏΠ΅Ρ€Π²ΡƒΡŽ, начиная с Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ символа.

2.ВСорСтичСская Ρ‡Π°ΡΡ‚ΡŒ

2.1 Π£Ρ€ΠΎΠ²Π½ΠΈ языков программирования

Π›ΡŽΠ±ΠΎΠΉ язык программирования относится ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ.

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

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

Β· ВысокоуровнСвыС языки (Π‘++ ΠΈΠ»ΠΈ Basic) — созданы для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΡ‚ΡŒ усилия программистов Π½Π° Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡, Π½Π΅ ΠΎΡ‚влСкая ΠΈΡ… Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ особСнности ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… машин. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ языков высокого уровня ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² ΡΠ»ΠΎΠΆΠ½Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Ρ… инструкций.

2.2 ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²ΠΎ языка ассСмблСра

Π—Π½Π°Π½ΠΈΠ΅ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ языка программирования Π΄Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ прСимущСства:

Β· ясСн способ взаимодСйствия ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ с ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмой, процСссором ΠΈ BIOS;

Β· доступСн Π²Ρ‹Π±ΠΎΡ€ способа прСдставлСния ΠΈ Ρ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ памяти ΠΈ Π²ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… накопитСлях;

Β· ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊ процСссор ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ инструкции, ΠΊΠ°ΠΊ инструкции Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π΄Π°Π½Π½Ρ‹Π΅;

Β· доступно нСпосрСдствСнноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ внСшними устройствами;

ΠšΡ€ΠΎΠΌΠ΅ Ρ‚ΠΎΠ³ΠΎ, язык ассСмблСра ΠΏΠΎΠ»Π΅Π·Π΅Π½ благодаря ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ свойствам:

Β· ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ°, написанная Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅, Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Π΅Π΅ ΠΈ Π±Ρ‹ΡΡ‚Ρ€Π΅Π΅ выполняСтся, Ρ‡Π΅ΠΌ написанная Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ программирования высокого уровня;

Β· ассСмблСр Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ°Ρ‚ΡŒ ΡƒΠ·ΠΊΠΎΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ, Ссли Π²ΠΎΠΎΠ±Ρ‰Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ высокого уровня;

Β· хотя Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ программистов Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Π΅ прилоТСния с ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ языков высокого уровня, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π»Π΅Π³Ρ‡Π΅ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΈ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, ΠΈΠ»ΠΈ части ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ, ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Ρ‹Π΅ Π² ΡΠΊΠΎΡ€ΠΎΡΡ‚ΠΈ выполнСния, вСсьма часто ΠΏΠΈΡˆΡƒΡ‚ΡΡ Π½Π° Π°ΡΡΠ΅ΠΌΠ±Π»Π΅Ρ€Π΅;

Β· Ρ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ (находящиСся Π² ΠΏΠ°ΠΌΡΡ‚ΠΈ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ выполнСния Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ) ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π½ΠΈΠΉ (Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°) ΠΏΠΎΡ‡Ρ‚ΠΈ всСгда ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра.

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

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

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра Π±Ρ‹Π²Π°ΡŽΡ‚ 4 Ρ‚ΠΈΠΏΠΎΠ²:

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

2. ΠœΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ — оформляСмыС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ прСдлоТСния тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π·Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌΡ‹Π΅ Π²ΠΎ Π²Ρ€Π΅ΠΌΡ трансляции Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ прСдлоТСниями.

3. Π”ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ — указания транслятору Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… дСйствий. Π’ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π°Ρ… Π½Π΅Ρ‚ Π°Π½Π°Π»ΠΎΠ³ΠΎΠ² Π² ΠΌΠ°ΡˆΠΈΠ½Π½ΠΎΠΌ прСдставлСнии.

4. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² — Π»ΡŽΠ±Ρ‹Π΅ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, транслятором ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.

2.4 Бинтаксис языка ассСмблСра

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

ΠžΠ±Ρ‰ΠΈΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΊΠΎΠΌΠ°Π½Π΄ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра.

рис.1

Команда

рис.2

Имя ΠΌΠ΅Ρ‚ΠΊΠΈ — ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ являСтся адрСс 1 Π±Π°ΠΉΡ‚Π°, ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, ΠΊΠΎΡ‚. ΠΎΠ½ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚.

КОП — ΠΊΠΎΠ΄ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, мнСмоничСскоС ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ машинной ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΈΠ»ΠΈ ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹ — части ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (ΠΌΠ°ΠΊΡ€ΠΎΠΊΠΎΠΌΠ°Π½Π΄Ρ‹) ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ производится дСйствиС.

ДопустимыС символы для написания тСкста ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ:

Β· всС латинскиС Π±ΡƒΠΊΠ²Ρ‹ (Π·Π°Π³Π»Π°Π²Π½Ρ‹Π΅ ΠΈ ΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ эквивалСнтными);

Β· Ρ†ΠΈΡ„Ρ€Ρ‹ 0−9;

Β· символы ?, _, @, $, &

Β· Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ ΠΈ Π·Π½Π°ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

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

ЛСксСмами ΡΠ²Π»ΡΡŽΡ‚ΡΡ:

1. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Ρ‹ — ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ допустимых символов, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ для обозначСния ΠΊΠΎΠ΄ΠΎΠ² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…, констант, ΠΌΠ΅Ρ‚ΠΎΠΊ. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚ΠΎΡΡ‚ΡŒ ΠΈΠ· 1 ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… символов. Π’ ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ символов ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ латинский Π°Π»Ρ„Π°Π²ΠΈΡ‚, Ρ†ΠΈΡ„Ρ€Ρ‹, символы ?, _, @, $, &. Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ с Ρ†ΠΈΡ„Ρ€Ρ‹. Допустимая Π΄Π»ΠΈΠ½Π° Π΄ΠΎ 255 символов, ΠΏΡ€ΠΈ этом транслятор воспринимаСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 32 ΠΏΠ΅Ρ€Π²Ρ‹Ρ…. БущСствуСт Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ транслятору Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΠ΅ Π·Π°Π³Π»Π°Π²Π½Ρ‹Ρ… ΠΈ ΡΡ‚Ρ€ΠΎΡ‡Π½Ρ‹Ρ… Π±ΡƒΠΊΠ².

2. Π¦Π΅ΠΏΠΎΡ‡ΠΊΠΈ символов — это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ символов, Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Π΅ Π² ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ.

3. Π¦Π΅Π»Ρ‹Π΅ числа — Π² ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… систСм исчислСния: 2-ΠΎΠΉ, 10-ΠΎΠΉ, 16-ΠΎΠΉ.

ΠžΡ‚ΠΎΠΆΠ΅ΡΡ‚Π²Π»Π΅Π½ΠΈΠ΅ чисСл производится ΠΏΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ:

Π°) 10-Π΅ числа Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ указания ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… символов (25, 16);

Π±) 2-Π΅ числа Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ послС Π½ΠΈΡ… стояла Π±ΡƒΠΊΠ²Π° b (1 001 1010b)

Π²) 16-Π΅ числа ΠΈΠΌΠ΅ΡŽΡ‚ большС условий ΠΏΡ€ΠΈ записи: Π²ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ… — ΠΎΠ½ΠΈ состоят ΠΊΠ°ΠΊ ΠΈΠ· Ρ†ΠΈΡ„Ρ€, Ρ‚Π°ΠΊ ΠΈ ΠΈΠ· ΡΠΈΠΌΠ²ΠΎΠ»ΠΎΠ² латинского Π°Π»Ρ„Π°Π²ΠΈΡ‚Π°; Π²ΠΎ-Π²Ρ‚ΠΎΡ€Ρ‹Ρ… — Ρƒ Ρ‚ранслятора ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ слоТности с Ρ€Π°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ΠΌ 16-ΠΎΠ³ΠΎ числа, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ число ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°Ρ‡ΠΈΠ½Π°Ρ‚ΡŒΡΡ ΠΊΠ°ΠΊ с Ρ†ΠΈΡ„Ρ€Ρ‹, Ρ‚Π°ΠΊ ΠΈ Ρ ΡΠΈΠΌΠ²ΠΎΠ»Π°. Для этого 16-Π΅ число ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ заканчиваСтся латинской Π±ΡƒΠΊΠ²ΠΎΠΉ h (019ch).

КаТдоС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ ассСмблСра содСрТит описаниС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π½Π°Π΄ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΈΠ»ΠΈ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ дСйствия, эти ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°ΠΌΠΈ.

ΠžΠΏΠ΅Ρ€Π°Π½Π΄Ρ‹- это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹ (Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, рСгистры, ячСйки памяти), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ инструкции ΠΈΠ»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ ΠΈΠ»ΠΈ это ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΡ‚ΠΎΡ‡Π½ΡΡŽΡ‚ дСйствиС инструкций ΠΈ Π»ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ².

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

3. АрифмСтика

3.1 Алгоритм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° вычислСния выраТСния

3.2 ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

.model small

.386

.stack 100h

.data

str1 db 09h, 0d5h ," ========", 0B8h, 0ah, 0dh

db «Enter a «, 0b3h, 09h, ««, 0b3h, 0ah, 0dh

db 09h, 0c3h," ========", 0b4h, 0ah, 0dh

db «Enter b «, 0b3h, 09h, ««, 0b3h, 0ah, 0dh

db 09h, 0c3h," ========", 0b4h, 0ah, 0dh

db «Result :», 0b3h, 09h, ««, 0b3h, 0ah, 0dh

db 09h, 0d4h," ========", 0beh, 0ah, 0dh, '$'

InBufa DB 7

kola DB ?

a DB ?, ?, ?, ?, ?, ?, ?

InBufb DB 7

kolb DB ?

b DB ?, ?, ?, ?, ?, ?, ?

Error DB «Input data ERROR !!!», 0dh, 0ah, '$'

DivErr DB «Dividing by Zero !!!», 0dh, 0ah, '$'

chA DW 0

chB DW 0

tabl DW 10 000, 1000, 100, 10, 1

ResBin DW 0

ResBCD DB '+', '0', ?, ?, ?, ?, 0ah, 0dh, '$'

kol db 3

flag db 0

.code

include math. lib

.startup

cls

locate 0,0

mov ax, dgroup

mov ds, ax

cikl:

mov flag, 0

mov chA, 0

mov chB, 0

mov ResBin, 0

mov bp, offset ResBCD

mov ds:[bp], '+'

mov ds:[bp+1], '0'

mov ds:[bp+2], ?

mov ds:[bp+3], ?

mov ds:[bp+4], ?

mov ds:[bp+5], ?

mov al, 3

mov ah, kol

sub al, ah

imul ax, 7

locate 0, al

push ax

; Π’Ρ‹Π²ΠΎΠ΄ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹

mov dx, offset str1

mov ah, 09h

int 21h

; Π’Π²ΠΎΠ΄ чисСл

pop ax

push ax

inc al

locate 10, al

mov dx, offset InBufa

mov ah, 0ah

int 21h

pop ax

push ax

add al, 3

locate 10, al

mov dx, offset InBufb

mov ah, 0ah

int 21h

; ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ‡ΠΈΡΠ»Π°

prov InBufA

prov InBufB

; ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π½Π°ΠΊ

znak a

znak b

; ASCII > BIN

ASCII2_BIN kola, chA

ASCII2_BIN kolb, chB

funtion

; Bin 2 Ascii

mov cx, 5

mov bp, offset tabl

mov si, offset ResBCD

inc si

v:

mov bx, ds:[bp]

mov dx, 0

idiv bx

cmp al, 0

je nul

mov flag, 1

add al, 30h

mov ds:[si], al

inc si

jmp nol

nul: cmp flag, 0

je nol

mov ds:[si], 30h

inc si

nol: mov ax, dx

add bp, 2

loop v

; Π’Ρ‹Ρ…ΠΎΠ΄1

pop ax

add al, 5

locate 10, al

mov dx, offset ResBCD

mov ah, 09h

int 21h

locate 0, 35

dec kol

jnz cikl

; Π’Ρ‹Ρ…ΠΎΠ΄

jmp ex

Er: cls

locate 25, 8

mov dx, offset Error

mov ah, 09h

int 21h

jmp ex

DEr: locate 25, 9

mov dx, offset DivErr

mov ah, 09h

int 21h

ex:

.exit (0)

END

3.3. Листинг ΠΊΠΎΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ string.lib, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся макросы, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

IFDEF @Model

IFIDN @Model, <1>

TINYMODEL TYPEDEF

ENDIF

ENDIF

cls macro

push ax

push bx

push cx

push dx

mov cx, 0

mov dh, 24

mov dl, 79

mov ah, 6

mov al, 0

mov bh, 7

int 10h

pop dx

pop cx

pop bx

pop ax

endm

locate macro col, row

push dx

mov dh, row

mov dl, col

move_cursor

pop dx

endm

move_cursor macro

LOCAL ok, vs

push ax

push bx

cmp dh, 24

jna ok

sub dh, dh

ok: cmp dl, 79

jna vs

sub dl, dl

vs: mov ah, 15

int 10h

mov ah, 2

int 10h

pop bx

pop ax

endm

prov macro InBuf

local c1

mov bp, offset InBuf

inc bp

mov ch, 0

mov cl, ds:[bp]

dec cl

add bp, 2

c1: cmp byte ptr [ds:[bp]], 30h

jl Er

cmp byte ptr [ds:[bp]], 39h

ja Er

inc bp

loop c1

endm

znak macro per

local m1

cmp per, '-'

je m1

cmp per,'+'

jne Er

m1:

endm

ASCII2_BIN macro kol, res

local p, plus

mov bp, offset kol

mov bx, offset kol

mov ax, 0

mov al, ds:[bx]

add bp, ax

mov ch, 0

mov cl, ds:[bx]

dec cl

mov bx, offset tabl

add bx, 8

mov ax, 0

mov dx, 0

p: mov ax, ds:[bx]

mov dl, ds:[bp]

sub dl, 30h

imul ax, dx

add res, ax

sub bx, 2

sub bp, 1

dec cx

jnz p

; ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Π·Π½Π°ΠΊ

mov bp, offset kol

add bp, 1

cmp ds: byte ptr[bp], '-'

jne plus

neg res

plus:

endm

funtion macro

;Π—Π°Π΄Π°Π½ΠΈΠ΅:

; b / a — 1, Ссли a>b;

;Y = -295, Ссли a=b;

; (a — 235) / b, Ссли a

mov ax, chA

mov bx, chB

cmp ax, bx

jne net

cmp ax, 0

je equal

net:

mov bp, offset a

mov si, offset b

mov dl, ds:[bp]

mov dh, ds:[si]

cmp dl, dh

jl more

ja low

cmp dl, '-'

jne pl

cmp ax, bx

jg more

je equal

ja low

pl: cmp ax, bx

ja more

je equal

jl low

more: cmp al, 0

je DEr

mov ax, chB

mov bx, ax

and bx, 7FFFh

cmp ax, bx

je pluss

mov dx, 0FFFFh

jmp did

pluss: mov dx, 0

did: idiv chA

sub ax, 1

jmp www

equal: mov ax, 00h

sub ax, 295

jmp www

low: cmp bl, 0

je DEr

mov ax, chA

sub ax, 235

mov bx, ax

and bx, 7FFFh

cmp ax, bx

je plu2

mov dx, 0FFFFh

jmp mnu2

plu2: mov dx, 0

mnu2:

idiv chB

www: mov bx, ax

and bx, 7FFFh

cmp ax, bx

je OK

neg ax

mov ResBCD, '-'

OK: mov ResBin, ax

endm

4. Π‘Ρ‚Ρ€ΠΎΠΊΠΈ

4.1 Π‘Π»ΠΎΠΊ-схСма Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ строки

4.2 ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‰ΠΈΠΉ Π΄Π°Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ:

.model small

.586

.stack 100h

.data

Mes1 db «Input the first string», 0ah, 0dh,'$'

Mes2 db «Input the second string», 0ah, 0dh,'$'

Mes3 db «Input the simbol, from which you want to paste the second string», 0ah, 0dh,'$'

Str1 db 255

db ?

db 255 dup (0)

Str2 db 255

db ?

db 255 dup (0)

Char1 db 2

db ?

db 0,'$'

Res db «Result is:», 0Ah, 0Dh,'$'

Str db 255 dup (0)

.code

include string. lib

.startup

mov ax, dgroup

mov ds, ax

cls

locate 0,0

lea dx, Mes1

mov ah, 09h

int 21h

lea dx, Str1

mov ah, 0ah

int 21h

locate 0, 3

lea dx, Mes2

mov ah, 09h

int 21h

lea dx, Str2

mov ah, 0ah

int 21h

locate 0, 6

lea dx, Mes3

mov ah, 09h

int 21h

lea dx, Char1

mov ah, 0ah

int 21h

obrabotka

locate 0, 9

lea dx, Res

mov ah, 09h

int 21h

lea dx, Str

mov ah, 09h

int 21h

.exit (0)

END

4.3 Листинг ΠΊΠΎΠ΄Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ math.lib, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находятся макросы, Π²Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ Π² Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅

IFDEF @Model

IFIDN @Model, <1>

TINYMODEL TYPEDEF

ENDIF

ENDIF

cls macro

push ax

push bx

push cx

push dx

mov cx, 0

mov dh, 24

mov dl, 79

mov ah, 6

mov al, 0

mov bh, 7

int 10h

pop dx

pop cx

pop bx

pop ax

endm

locate macro col, row

push dx

mov dh, row

mov dl, col

move_cursor

pop dx

endm

move_cursor macro

LOCAL ok, vs

push ax

push bx

cmp dh, 24

jna ok

sub dh, dh

ok: cmp dl, 79

jna vs

sub dl, dl

vs: mov ah, 15

int 10h

mov ah, 2

int 10h

pop bx

pop ax

endm

obrabotka macro

mov bp, offset Char1

add bp, 2

mov dl, ds:[bp]

mov bp, offset Str1

add bp, 1

mov cl, ds:[bp]

inc bp

mov si, offset Str2

add si, 1

mov ch, ds:[si]

inc si

mov bx, offset Str

inc bx

lp:

mov al, ds:[bp]

mov ds:[bx], al

cmp al, dl

je m1

inc bx

inc bp

dec cl

jnz lp

m1: inc bx

inc bp

lpo:

mov al, ds:[si]

mov ds:[bx], al

inc bx

inc si

dec ch

jnz lpo

lopa:

mov al, ds:[bp]

mov ds:[bx], al

inc bx

inc bp

dec cl

jnz lopa

inc bx

mov ds:[bx],'$'

endm

Π’Π«Π’ΠžΠ”

Π’ Π΄Π°Π½Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ Π±Ρ‹Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π½Ρ‹Π΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ арифмСтичСских дСйствий ΠΈ ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±Ρ‹Π»ΠΈ написаны Π½Π° ΡΠ·Ρ‹ΠΊΠ΅ Π½ΠΈΠ·ΠΊΠΎΠ³ΠΎ уровня Borland Turbo Assembler (TASM), для процСссоров сСмСйства Intel.

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

Π‘Ρ‹Π»ΠΈ практичСски Π·Π°ΠΊΡ€Π΅ΠΏΠ»Π΅Π½Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Π΅ Π½Π°Π²Ρ‹ΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с TASM, Π·Π½Π°Π½ΠΈΠ΅ ΠΎ ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ языка ΠΈ Π΅Π³ΠΎ синтаксиса.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Π΅ Π² Ρ…ΠΎΠ΄Π΅ выполнСния Π΄Π°Π½Π½ΠΎΠΉ расчСтно-графичСской Ρ€Π°Π±ΠΎΡ‚Ρ‹, Ρ…Π°Ρ€Π°ΠΊΡ‚Π΅Ρ€ΠΈΠ·ΡƒΡŽΡ‚ΡΡ ΠΌΠ°Π»Ρ‹ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ выполняСмого Ρ„Π°ΠΉΠ»Π°, Ρ€Π°Π±ΠΎΡ‚Π°ΠΉ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ с Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΌ обСспСчСниСм ΠŸΠš.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ