Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠΊΠ° ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ: конспСкт Π»Π΅ΠΊΡ†ΠΈΠΉΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 32

Автор А. Π¦Π²Π΅Ρ‚ΠΊΠΎΠ²Π°

ΠœΠ½Π΅ΠΌΠΎΠΊΠΎΠ΄Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄, названия Ρ„Π»Π°Π³ΠΎΠ² ΠΈ условия ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠ² ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅ 18. Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ послС Π»ΡŽΠ±Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄, ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‰ΠΈΡ… ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ„Π»Π°Π³ΠΈ.

Π’Π°Π±Π»ΠΈΡ†Π° 18. ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ условного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈ Ρ„Π»Π°Π³ΠΈ

Если Π²Π½ΠΈΠΌΠ°Ρ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ 17 ΠΈ 18, Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ условного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π² Π½ΠΈΡ… ΡΠ²Π»ΡΡŽΡ‚ΡΡ эквивалСнтными, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π² основС ΠΈ Ρ‚Π΅Ρ…, ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΡ… Π»Π΅ΠΆΠΈΡ‚ Π°Π½Π°Π»ΠΈΠ· ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ².


ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ условного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈ рСгистр Ссх/сх

АрхитСктура микропроцСссора ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ спСцифичСскоС использованиС ΠΌΠ½ΠΎΠ³ΠΈΡ… рСгистров. К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, рСгистр EAX/AX/AL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ аккумулятор, Π° рСгистры Π’Π , SP – для Ρ€Π°Π±ΠΎΡ‚Ρ‹ со стСком. РСгистр Π•Π‘Π₯/Π‘Π₯ Ρ‚ΠΎΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: ΠΎΠ½ выполняСт Ρ€ΠΎΠ»ΡŒ счСтчика Π² ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ… управлСния Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°ΠΌΠΈ символов. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ условного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°, ΡΠ²ΡΠ·Π°Π½Π½ΡƒΡŽ с рСгистром Ссх/сх, ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Π΅Π΅ Π±Ρ‹Π»ΠΎ Π±Ρ‹ отнСсти ΠΊ этой Π³Ρ€ΡƒΠΏΠΏΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄.

Бинтаксис этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ условного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Ρ‚Π°ΠΊΠΎΠ²:

1) jcxz ΠΌΠ΅Ρ‚ΠΊΠ°_ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (Jump if ex is Zero) β€“ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄, Ссли сх Π½ΡƒΠ»ΡŒ;

2) jecxz ΠΌΠ΅Ρ‚ΠΊΠ°_ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (Jump Equal Ссх Zero) β€“ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄, Ссли Ссх Π½ΡƒΠ»ΡŒ.

Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° ΠΈ ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠ°ΠΌΠΈ символов.

НуТно ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅, свойствСнноС ΠΊΠΎΠΌΠ°Π½Π΄Π΅ jcxz/jecxz. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… ΠΊΠΎΠΌΠ°Π½Π΄ условной ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ управлСния ΠΊΠΎΠΌΠ°Π½Π΄Π° jcxz/jecxz ΠΌΠΎΠΆΠ΅Ρ‚ Π°Π΄Ρ€Π΅ΡΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ – Π½Π° β€”128 Π±Π°ΠΉΡ‚ ΠΈΠ»ΠΈ Π½Π° +127 Π±Π°ΠΉΡ‚ ΠΎΡ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Π·Π° Π½Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹.

ΠžΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ Ρ†ΠΈΠΊΠ»ΠΎΠ²

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

Π”Π°Π΄ΠΈΠΌ ΠΊΡ€Π°Ρ‚ΠΊΡƒΡŽ характСристику этим ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ: 1) loop ΠΌΠ΅Ρ‚ΠΊΠ°_ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° (Loop) β€“ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Ρ†ΠΈΠΊΠ». Команда позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»Ρ‹, ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Π°ΠΌ for Π² языках высокого уровня с автоматичСским ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ΠΌ счСтчика Ρ†ΠΈΠΊΠ»Π°. Π Π°Π±ΠΎΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

Π°) Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° рСгистра Π•Π‘Π₯/Π‘Π₯;

Π±) ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡ рСгистра Π•Π‘Π₯/Π‘Π₯ с Π½ΡƒΠ»Π΅ΠΌ: Ссли (Π•Π‘Π₯/Π‘Π₯) = 0, Ρ‚ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ послС loop ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ;

2) loope/loopz ΠΌΠ΅Ρ‚ΠΊΠ°_ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ loope ΠΈ loopz – Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ синонимы. Π Π°Π±ΠΎΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

Π°) Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° рСгистра Π•Π‘Π₯/Π‘Π₯;

Π±) ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡ рСгистра Π•Π‘Π₯/Π‘Π₯ с Π½ΡƒΠ»Π΅ΠΌ;

Π²) Π°Π½Π°Π»ΠΈΠ·Π° состояния Ρ„Π»Π°Π³Π° нуля ZF Ссли (Π•Π‘Π₯/Π‘Π₯) = 0 ΠΈΠ»ΠΈ XF = 0, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ послС loop ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

3) loopne/loopnz ΠΌΠ΅Ρ‚ΠΊΠ°_ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π°

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ loopne ΠΈ loopnz Ρ‚Π°ΠΊΠΆΠ΅ Π°Π±ΡΠΎΠ»ΡŽΡ‚Π½Ρ‹Π΅ синонимы. Π Π°Π±ΠΎΡ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄ Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… дСйствий:

Π°) Π΄Π΅ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π° рСгистра Π•Π‘Π₯/Π‘Π₯;

Π±) ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡ рСгистра Π•Π‘Π₯/Π‘Π₯ с Π½ΡƒΠ»Π΅ΠΌ;

Π²) Π°Π½Π°Π»ΠΈΠ·Π° состояния Ρ„Π»Π°Π³Π° нуля ZF: Ссли (Π•Π‘Π₯/Π‘Π₯) = 0 ΠΈΠ»ΠΈ ZF = 1, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ пСрСдаСтся Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ послС loop ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ.

ΠšΠΎΠΌΠ°Π½Π΄Ρ‹ loope/loopz ΠΈ loopne/loopnz ΠΏΠΎ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡƒ своСй Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π²Π·Π°ΠΈΠΌΠΎΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹ΠΌΠΈ. Они Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ дСйствиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ loop Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ Ρ„Π»Π°Π³ zf, Ρ‡Ρ‚ΠΎ Π΄Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ досрочный Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ этот Ρ„Π»Π°Π³ Π² качСствС ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°.

НСдостаток ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»Π° loop, loope/loopz ΠΈ loopne/loopnz состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Ρ‹ (ΠΎΡ‚ β€”128 Π΄ΠΎ +127 Π±Π°ΠΉΡ‚). Для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π΄Π»ΠΈΠ½Π½Ρ‹ΠΌΠΈ Ρ†ΠΈΠΊΠ»Π°ΠΌΠΈ придСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ условного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ jmp, поэтому ΠΏΠΎΡΡ‚Π°Ρ€Π°ΠΉΡ‚Π΅ΡΡŒ ΠΎΡΠ²ΠΎΠΈΡ‚ΡŒ ΠΎΠ±Π° способа ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ†ΠΈΠΊΠ»ΠΎΠ².