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

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

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

Для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со стСком ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ записи ΠΈ чтСния.

1. push источник – запись значСния источник Π² Π²Π΅Ρ€ΡˆΠΈΠ½Ρƒ стСка.

Π˜Π½Ρ‚Π΅Ρ€Π΅Ρ прСдставляСт Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ дСйствия (рис. 24):

1) (sp) = (sp) – 2; Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ sp ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° 2;

2) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈΠ· источника записываСтся ΠΏΠΎ адрСсу, ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌΡƒ ΠΏΠ°Ρ€ΠΎΠΉ ss: sp.

Рис. 24. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ push


2. pop Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ – запись значСния ΠΈΠ· Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ стСка ΠΏΠΎ мСсту, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ этом «снимаСтся» с Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ стСка. Алгоритм Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pop ΠΎΠ±Ρ€Π°Ρ‚Π΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ push (рис. 25):

1) Π·Π°ΠΏΠΈΡΡŒ содСрТимого Π²Π΅Ρ€ΡˆΠΈΠ½Ρ‹ стСка ΠΏΠΎ мСсту, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅;

2) (sp) = (sp) + 2; ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ значСния sp.

Рис. 25. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pop


3. pusha – ΠΊΠΎΠΌΠ°Π½Π΄Π° Π³Ρ€ΡƒΠΏΠΏΠΎΠ²ΠΎΠΉ записи Π² стСк. По этой ΠΊΠΎΠΌΠ°Π½Π΄Π΅ Π² стСк ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ΡΡ рСгистры Π°Ρ…, сх, dx, bx, sp, bp, si, di. Π—Π°ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ записываСтся ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»ΡŒΠ½ΠΎΠ΅ содСрТимоС sp, Ρ‚. Π΅. Ρ‚ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±Ρ‹Π»ΠΎ Π΄ΠΎ Π²Ρ‹Π΄Π°Ρ‡ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pusha (рис. 26).

Рис. 26. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pusha


4. pushaw – ΠΏΠΎΡ‡Ρ‚ΠΈ синоним ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ pusha Π’ Ρ‡Π΅ΠΌ Ρ€Π°Π·Π½ΠΈΡ†Π°? Атрибут разрядности ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ use16 ΠΈΠ»ΠΈ use32. Рассмотрим Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΊΠΎΠΌΠ°Π½Π΄ pusha ΠΈ pushaw ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· этих Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ²:

1) use16 – Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ pushaw Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ pusha;

2) use32 – pushaw Π½Π΅ измСняСтся (Ρ‚. Π΅. ΠΎΠ½Π° Π½Π΅Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π° ΠΊ разрядности сСгмСнта ΠΈ всСгда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с рСгистрами Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² слово – Π°Ρ…, сх, dx, bx, sp, bp, si, di). Команда pusha Ρ‡ΡƒΠ²ΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Π° ΠΊ установлСнной разрядности сСгмСнта ΠΈ ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠΈ 32-разрядного сСгмСнта Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ 32-разрядными рСгистрами, Ρ‚. Π΅. Π΅Π°Ρ…, Ссх, edx, ebx, esp, ebp, esi, edi.

5. pushad – выполняСтся Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ pusha, Π½ΠΎ Π΅ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ особСнности.

Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ дСйствия, ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌ:

1) Ρ€ΠΎΡ€Π°;

2) popaw;

3) popad.

Π“Ρ€ΡƒΠΏΠΏΠ° ΠΊΠΎΠΌΠ°Π½Π΄, описанная Π½ΠΈΠΆΠ΅, позволяСт ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π² стСкС рСгистр Ρ„Π»Π°Π³ΠΎΠ² ΠΈ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ слово ΠΈΠ»ΠΈ Π΄Π²ΠΎΠΉΠ½ΠΎΠ΅ слово Π² стСкС. ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ, Ρ‡Ρ‚ΠΎ пСрСчислСнныС Π½ΠΈΠΆΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ – СдинствСнныС Π² систСмС ΠΊΠΎΠΌΠ°Π½Π΄ микропроцСссора, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ (ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ΄Π°ΡŽΡ‚ΡΡ Π² этом доступС) ΠΊΠΎ всСму содСрТимому рСгистра Ρ„Π»Π°Π³ΠΎΠ².

1. pushf – сохраняСт рСгистр Ρ„Π»Π°Π³ΠΎΠ² Π² стСкС.

Π Π°Π±ΠΎΡ‚Π° этой ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ зависит ΠΎΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π° сСгмСнта:

1) use 16 – Π² стСк записываСтся рСгистр flags Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 2 Π±Π°ΠΉΡ‚Π°;

2) use32 – Π² стСк записываСтся рСгистр eflags Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4 Π±Π°ΠΉΡ‚Π°.

2. pushfw – сохранСниС Π² стСкС рСгистра Ρ„Π»Π°Π³ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² слово. ВсСгда Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠ°ΠΊ pushf с Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ use16.

3. pushfd – сохранСниС Π² стСкС рСгистра Ρ„Π»Π°Π³ΠΎΠ² flags ΠΈΠ»ΠΈ eflags Π² зависимости ΠΎΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° разрядности сСгмСнта (Ρ‚. Π΅. Ρ‚ΠΎ ΠΆΠ΅, Ρ‡Ρ‚ΠΎ ΠΈ pushf).

Аналогично, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ дСйствия, ΠΎΠ±Ρ€Π°Ρ‚Π½Ρ‹Π΅ рассмотрСнным Π²Ρ‹ΡˆΠ΅ опСрациям:

1) popf;

2) popftv;

3) popfd.

И Π² Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ основныС Π²ΠΈΠ΄Ρ‹ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π΄Π° использованиС стСка практичСски Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ:

1) Π²Ρ‹Π·ΠΎΠ² ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ;

2) Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ сохранСниС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ рСгистров;

3) ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

2. ΠΡ€ΠΈΡ„мСтичСскиС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹

ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ цСлочислСнныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ. Для этого Π² Π΅Π³ΠΎ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π΅ Π΅ΡΡ‚ΡŒ Π΄Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… Π±Π»ΠΎΠΊΠ°:

1) ΡƒΡΡ‚ройство для выполнСния цСлочислСнных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ;

2) ΡƒΡΡ‚ройство для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅ΠΉ Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ.

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

ΠžΠ±Π·ΠΎΡ€ Π³Ρ€ΡƒΠΏΠΏΡ‹ арифмСтичСских ΠΊΠΎΠΌΠ°Π½Π΄ ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…

ЦСлочислСнноС Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ устройство ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‡ΡƒΡ‚ΡŒ большС дСсятка арифмСтичСских ΠΊΠΎΠΌΠ°Π½Π΄. На рисункС 27 ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π° классификация ΠΊΠΎΠΌΠ°Π½Π΄ этой Π³Ρ€ΡƒΠΏΠΏΡ‹.

Рис. 27. ΠšΠ»Π°ΡΡΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ арифмСтичСских ΠΊΠΎΠΌΠ°Π½Π΄


Π“Ρ€ΡƒΠΏΠΏΠ° арифмСтичСских цСлочислСнных ΠΊΠΎΠΌΠ°Π½Π΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ с двумя Ρ‚ΠΈΠΏΠ°ΠΌΠΈ чисСл:

1) Ρ†Π΅Π»Ρ‹ΠΌΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ числами. Числа ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ разряд ΠΈΠ»ΠΈ Π½Π΅ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ²ΠΎΠ³ΠΎ, Ρ‚. Π΅. Π±Ρ‹Ρ‚ΡŒ числами со Π·Π½Π°ΠΊΠΎΠΌ ΠΈΠ»ΠΈ Π±Π΅Π· Π·Π½Π°ΠΊΠ°;

2) Ρ†Π΅Π»Ρ‹ΠΌΠΈ дСсятичными числами.

Рассмотрим ΠΌΠ°ΡˆΠΈΠ½Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… хранятся эти Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ….

Π¦Π΅Π»Ρ‹Π΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Π΅ числа

Π¦Π΅Π»ΠΎΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ число с фиксированной Ρ‚ΠΎΡ‡ΠΊΠΎΠΉ – это число, Π·Π°ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΉ систСмС счислСния.

Π Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ Ρ†Π΅Π»ΠΎΠ³ΠΎ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ 8, 16 ΠΈΠ»ΠΈ 32 Π±ΠΈΡ‚. Π—Π½Π°ΠΊ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа опрСдСляСтся Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ интСрпрСтируСтся ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ Π±ΠΈΡ‚ Π² прСдставлСнии числа. Π­Ρ‚ΠΎ 7,15 ΠΈΠ»ΠΈ 31-ΠΉ Π±ΠΈΡ‚Ρ‹ для чисСл ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ размСрности. ΠŸΡ€ΠΈ этом интСрСсно Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ срСди арифмСтичСских ΠΊΠΎΠΌΠ°Π½Π΄ Π΅ΡΡ‚ΡŒ всСго Π΄Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ этот ΡΡ‚Π°Ρ€ΡˆΠΈΠΉ разряд ΠΊΠ°ΠΊ Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΉ, β€“ это ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ цСлочислСнного умноТСния ΠΈ дСлСния imul ΠΈ idiv. Π’ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… случаях ΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π΅Π½Π½ΠΎΡΡ‚ΡŒ Π·Π° дСйствия со Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌΠΈ числами ΠΈ, соотвСтствСнно, со Π·Π½Π°ΠΊΠΎΠ²Ρ‹ΠΌ разрядом лоТится Π½Π° программиста. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ числа зависит ΠΎΡ‚ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈ Ρ‚Ρ€Π°ΠΊΡ‚ΠΎΠ²ΠΊΠΈ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ Π±ΠΈΡ‚Π° Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ Π·Π½Π°Ρ‡Π°Ρ‰Π΅Π³ΠΎ Π±ΠΈΡ‚Π° числа, Π»ΠΈΠ±ΠΎ ΠΊΠ°ΠΊ Π±ΠΈΡ‚Π° Π·Π½Π°ΠΊΠ° числа (Ρ‚Π°Π±Π». 9).

Π’Π°Π±Π»ΠΈΡ†Π° 9. Π”ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… чисСлДСсятичныС числа

ДСсятичныС числа – ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²ΠΈΠ΄ прСдставлСния числовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π² основу ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ кодирования ΠΊΠ°ΠΆΠ΄ΠΎΠΉ дСсятичной Ρ†ΠΈΡ„Ρ€Ρ‹ числа Π³Ρ€ΡƒΠΏΠΏΠΎΠΉ ΠΈΠ· Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… Π±ΠΈΡ‚. ΠŸΡ€ΠΈ этом ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚ числа содСрТит ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ Π΄Π²Π΅ дСсятичныС Ρ†ΠΈΡ„Ρ€Ρ‹ Π² Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΌ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎ-дСсятичном ΠΊΠΎΠ΄Π΅ (BCD – Binary-Coded Decimal). ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ Ρ…Ρ€Π°Π½ΠΈΡ‚ BCD-числа Π² Π΄Π²ΡƒΡ… Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π°Ρ… (рис. 28):

1) ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’ этом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚ содСрТит Π΄Π²Π΅ дСсятичныС Ρ†ΠΈΡ„Ρ€Ρ‹. ДСсятичная Ρ†ΠΈΡ„Ρ€Π° прСдставляСт собой Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ 0 Π΄ΠΎ 9 Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ 4 Π±ΠΈΡ‚Π°. ΠŸΡ€ΠΈ этом ΠΊΠΎΠ΄ ΡΡ‚Π°Ρ€ΡˆΠ΅ΠΉ Ρ†ΠΈΡ„Ρ€Ρ‹ числа Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΡΡ‚Π°Ρ€ΡˆΠΈΠ΅ 4 Π±ΠΈΡ‚Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ прСдставлСния дСсятичного ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ числа Π² 1 Π±Π°ΠΉΡ‚Π΅ составляСт ΠΎΡ‚ 00 Π΄ΠΎ 99;

2) Π½Π΅ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅. Π’ этом Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Π±Π°ΠΉΡ‚ содСрТит ΠΎΠ΄Π½Ρƒ Π΄Π΅ΡΡΡ‚ΠΈΡ‡Π½ΡƒΡŽ Ρ†ΠΈΡ„Ρ€Ρƒ Π² Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅Ρ… ΠΌΠ»Π°Π΄ΡˆΠΈΡ… Π±ΠΈΡ‚Π°Ρ…. Π‘Ρ‚Π°Ρ€ΡˆΠΈΠ΅ 4 Π±ΠΈΡ‚Π° ΠΈΠΌΠ΅ΡŽΡ‚ Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅. Π­Ρ‚ΠΎ Ρ‚Π°ΠΊ называСмая Π·ΠΎΠ½Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ прСдставлСния дСсятичного Π½Π΅ΡƒΠΏΠ°ΠΊΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ числа Π² 1 Π±Π°ΠΉΡ‚Π΅ составляСт ΠΎΡ‚ 0 Π΄ΠΎ 9.

Рис. 28. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½ΠΈΠ΅ BCD-чисСл


Как ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎ-дСсятичныС числа Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅? Для этого ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π΄Π²Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹ описания ΠΈ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΄Π°Π½Π½Ρ‹Ρ… – db ΠΈ dt. Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ примСнСния Ρ‚ΠΎΠ»ΡŒΠΊΠΎ этих Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ² для описания BCD-чисСл обусловлСна Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊ Ρ‚Π°ΠΊΠΈΠΌ числам Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ «младший Π±Π°ΠΉΡ‚ ΠΏΠΎ ΠΌΠ»Π°Π΄ΡˆΠ΅ΠΌΡƒ адрСсу», Ρ‡Ρ‚ΠΎ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ для ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. И Π²ΠΎΠΎΠ±Ρ‰Π΅, ΠΏΡ€ΠΈ использовании Ρ‚Π°ΠΊΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΊΠ°ΠΊ BCD-числа, порядок описания этих чисСл Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ – это Π΄Π΅Π»ΠΎ вкуса ΠΈ Π»ΠΈΡ‡Π½Ρ‹Ρ… пристрастий программиста. Π­Ρ‚ΠΎ станСт ясно послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π½ΠΈΠΆΠ΅ рассмотрим основы Ρ€Π°Π±ΠΎΡ‚Ρ‹ с BCD-числами.

АрифмСтичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π°Π΄ Ρ†Π΅Π»Ρ‹ΠΌΠΈ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹ΠΌΠΈ числами

Π‘Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… чисСл Π±Π΅Π· Π·Π½Π°ΠΊΠ°

ΠœΠΈΠΊΡ€ΠΎΠΏΡ€ΠΎΡ†Π΅ΡΡΠΎΡ€ выполняСт слоТСниС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ слоТСния Π΄Π²ΠΎΠΈΡ‡Π½Ρ‹Ρ… чисСл. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° Π½Π΅ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ размСрности поля ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. НапримСр, ΠΏΡ€ΠΈ слоТСнии ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ΠΎΠ² Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π² Π±Π°ΠΉΡ‚ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Ρ‚ΡŒ число 255. Если это происходит, Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ оказываСтся Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΌ. Рассмотрим, ΠΏΠΎΡ‡Π΅ΠΌΡƒ Ρ‚Π°ΠΊ происходит.

К ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌ слоТСниС: 254 + 5 = 259 Π² Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅. 11111110 + 0000101 = 1 00000011. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π²Ρ‹ΡˆΠ΅Π» Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Ρ‹ 8 Π±ΠΈΡ‚ ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠ΅ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ укладываСтся Π² 9 Π±ΠΈΡ‚, Π° Π² 8-Π±ΠΈΡ‚ΠΎΠ²ΠΎΠΌ ΠΏΠΎΠ»Π΅ ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 3, Ρ‡Ρ‚ΠΎ, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π½Π΅Π²Π΅Ρ€Π½ΠΎ. Π’ микропроцСссорС этот исход слоТСния прогнозируСтся ΠΈ прСдусмотрСны ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ срСдства для фиксирования ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Ρ… ситуаций ΠΈ ΠΈΡ… ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ. Π’Π°ΠΊ, для фиксирования ситуации Π²Ρ‹Ρ…ΠΎΠ΄Π° Π·Π° Ρ€Π°Π·Ρ€ΡΠ΄Π½ΡƒΡŽ сСтку Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π°, ΠΊΠ°ΠΊ Π² Π΄Π°Π½Π½ΠΎΠΌ случаС, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ Ρ„Π»Π°Π³ пСрСноса cf. Он располагаСтся Π² Π±ΠΈΡ‚Π΅ 0 рСгистра Ρ„Π»Π°Π³ΠΎΠ² EFLAGS/FLAGS. ИмСнно установкой этого Ρ„Π»Π°Π³Π° фиксируСтся Ρ„Π°ΠΊΡ‚ пСрСноса Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΈΠ· ΡΡ‚Π°Ρ€ΡˆΠ΅Π³ΠΎ разряда ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π°. ЕстСствСнно, Ρ‡Ρ‚ΠΎ программист Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ³ΠΎ исхода ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слоТСния ΠΈ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ срСдства для ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ. Π­Ρ‚ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ участков ΠΊΠΎΠ΄Π° послС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ слоТСния, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… анализируСтся Ρ„Π»Π°Π³ cf. Анализ этого Ρ„Π»Π°Π³Π° ΠΌΠΎΠΆΠ½ΠΎ провСсти Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ способами.

Π‘Π°ΠΌΡ‹ΠΉ простой ΠΈ доступный – ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ условного ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° jcc. Π­Ρ‚Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Π² качСствС ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° ΠΈΠΌΠ΅Π΅Ρ‚ имя ΠΌΠ΅Ρ‚ΠΊΠΈ Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ сСгмСнтС ΠΊΠΎΠ΄Π°. ΠŸΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° эту ΠΌΠ΅Ρ‚ΠΊΡƒ осущСствляСтся Π² случаС, Ссли Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Ρ„Π»Π°Π³ cf установился Π² 1. Π’ систСмС ΠΊΠΎΠΌΠ°Π½Π΄ микропроцСссора ΠΈΠΌΠ΅ΡŽΡ‚ΡΡ Ρ‚Ρ€ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄Π²ΠΎΠΈΡ‡Π½ΠΎΠ³ΠΎ слоТСния:

1) inc ΠΎΠΏΠ΅Ρ€Π°Π½Π΄ – опСрация ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°, Ρ‚. Π΅. увСличСния значСния ΠΎΠΏΠ΅Ρ€Π°Π½Π΄Π° Π½Π° 1;