Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроцессоры. Учебник

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
–
ɪɫ = 10 – ɞɥɢɧɚ ɦɚɧɬɢɫɫɵ – 53 ɛɢɬɚ;
–
ɪɫ = 11 – ɞɥɢɧɚ ɦɚɧɬɢɫɫɵ – 64 ɛɢɬɚ.
ɉɨ ɭɦɨɥɱɚɧɢɸ ɡɧɚɱɟɧɢɟ ɩɨɥɹ ɭɫɬɚɧɚɜɥɢɜɚɟɬɫɹ ɪɫ = 11. ɉɨɥɟ ɭɩɪɚɜɥɟɧɢɹ ɨɤɪɭɝɥɟɧɢɟɦ rɫ ɩɨɡɜɨɥɹɟɬ ɭɩɪɚɜɥɹɬɶ ɩɪɨɰɟɫɫɨɦ
ɨɤɪɭɝɥɟɧɢɹ ɱɢɫɟɥ ɜ ɪɚɛɨɬɟ ɫɨɩɪɨɰɟɫɫɨɪɚ. ɇɟɨɛɯɨɞɢɦɨɫɬɶ ɨɩɟɪɚɰɢɢ ɨɤɪɭɝ­ɥɟɧɢɹ ɦɨɠɟɬ ɩɨɹɜɢɬɶɫɹ ɜ ɫɢɬɭɚɰɢɢ, ɤɨɝɞɚ ɩɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɨɱɟɪɟɞɧɨɣ ɤɨɦɚɧɞɵ ɫɨɩɪɨɰɟɫɫɨɪɚ ɩɨɥɭɱɚɟɬɫɹ ɧɟɩɪɟɞɫɬɚɜɢɦɵɣ ɪɟɡɭɥɶɬɚɬ. ɍɫɬɚɧɨɜɢɜ ɨɞɧɨ ɢɡ ɡɧɚɱɟɧɢɣ ɩɨɥɹ rɫ, ɦɨɠɧɨ ɜɵɩɨɥɧɢɬɶ ɨɤɪɭɝɥɟɧɢɟ ɜ ɧɟɨɛɯɨɞɢɦɭɸ ɫɬɨɪɨɧɭ.
ȼɨɡɦɨɠɧɵ ɫɥɟɞɭɸɳɢɟ
–
00 – ɡɧɚɱɟɧɢɟ ɨɤɪɭɝɥɹɟɬɫɹ ɤ ɛɥɢɠɚɣɲɟɦɭ ɱɢɫɥɭ;
–
01 – ɡɧɚɱɟɧɢɟ ɨɤɪɭɝɥɹɟɬɫɹ ɜ ɦɟɧɶɲɭɸ ɫɬɨɪɨɧɭ;
–
10 – ɡɧɚɱɟɧɢɟ ɨɤɪɭɝɥɹɟɬɫɹ ɜ ɛɨɥɶɲɭɸ ɫɬɨɪɨɧɭ;
–
11 – ɩɪɨɢɡɜɨɞɢɬɫɹ ɨɬɛɪɚɫɵɜɚɧɢɟ ɞɪɨɛɧɨɣ ɱɚɫɬɢ. ɂɫɩɨɥɶɡɭɟɬɫɹ ɞɥɹ
ɡɧɚɱɟɧɢɹ ɜ ɩɨɥɹɯ ɪɟɝɢɫɬɪɚ ɫwr:
ɩɪɢɜɟɞɟɧɢɹ ɡɧɚɱɟɧɢɹ ɤ ɮɨɪɦɟ, ɤɨɬɨɪɚɹ ɦɨɠɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɜ ɨɩɟɪɚɰɢɹɯ ɰɟɥɨɱɢɫɥɟɧɧɨɣ ɚɪɢɮɦɟɬɢɤɢ.
Ɋɟɝɢɫɬɪ ɬɟɝɨɜ twr
Ɋɟɝɢɫɬɪ ɬɟɝɨɜ ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɫɨɜɨɤɭɩɧɨɫɬɶ ɞɜɭɯɛɢɬɨɜɵɯ ɩɨɥɟɣ. Ʉɚɠɞɨɟ ɞɜɭɯɛɢɬɨɜɨɟ ɩɨɥɟ ɫɨɨɬɜɟɬɫɬɜɭɟɬ ɨɩɪɟɞɟɥɟɧɧɨɦɭ ɮɢɡɢɱɟɫɤɨɦɭ ɪɟ­ɝɢɫɬɪɭ ɫɬɟɤɚ ɢ ɯɚɪɚɤɬɟɪɢɡɭɟɬ ɟɝɨ ɬɟɤɭɳɟɟ ɫɨɫɬɨɹɧɢɟ. ɂɡɦɟɧɟɧɢɟ ɫɨɫɬɨɹɧɢɹ ɥɸɛɨɝɨ ɪɟɝɢɫɬɪɚ ɫɬɟɤɚ ɨɬɪɚɠɚɟɬɫɹ ɧɚ ɫɨɞɟɪɠɢɦɨɦ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɝɨ
ɟɦɭ
ɪɟɝɢɫɬɪɚ ɬɟɝɚ.
ȼɨɡɦɨɠɧɵ ɫɥɟɞɭɸɳɢɟ ɡɧɚɱɟɧɢɹ ɜ ɩɨɥɹɯ ɪɟɝɢɫɬɪɚ ɬɟɝɚ:
a. 00 – ɪɟɝɢɫɬɪ ɫɬɟɤɚ ɫɨɩɪɨɰɟɫɫɨɪɚ ɡɚɧɹɬ ɞɨɩɭɫɬɢɦɵɦ ɧɭɥɟɜɵɦ ɡɧɚɱɟ­ɧɢɟɦ;
b. 01 – ɪɟɝɢɫɬɪ ɫɬɟɤɚ ɫɨɩɪɨɰɟɫɫɨɪɚ ɫɨɞɟɪɠɢɬ ɧɭɥɟɜɨɟ ɡɧɚɱɟɧɢɟ;
c. 10 – ɪɟɝɢɫɬɪ ɫɬɟɤɚ ɫɨɩɪɨɰɟɫɫɨɪɚ ɫɨɞɟɪɠɢɬ ɨɞɧɨ ɢɡ ɫɩɟɰɢɚɥɶɧɵɯ ɱɢɫɥɟɧɧɵɯ ɡɧɚɱɟɧɢɣ, ɡɚ ɢɫɤɥɸɱɟɧɢɟɦ ɧɭɥɹ;
d. 11 – ɪɟɝɢɫɬɪ ɩɭɫɬ, ɢ ɜ ɧɟɝɨ ɦɨɠɧɨ ɩɪɨɢɡɜɨɞɢɬɶ ɡɚɩɢɫɶ.
Ʌɨɝɢɱɟɫɤɚɹ ɧɭɦɟɪɚɰɢɹ ɪɟɝɢɫɬɪɨɜ ɫɨɩɪɨɰɟɫɫɨɪɚ, ɩɨɞɞɟɪɠɢɜɚɟɦɚɹ ɧɚ ɭɪɨɜɧɟ ɫɢɫɬɟɦɵ ɤɨɦɚɧɞ, ɢɞɟɚɥɶɧɨ ɪɟɚɥɢɡɭɟɬ ɷɬɭ ɢɞɟɸ. ɉɪɢ ɷɬɨɦ ɧɟ ɢɦɟɟɬ ɡɧɚɱɟɧɢɹ, ɜ ɤɚɤɨɣ ɮɢɡɢɱɟɫɤɢɣ ɪɟɝɢɫɬɪ ɫɬɟɤɚ ɫɨɩɪɨɰɟɫɫɨɪɚ ɛɵɥɢ ɩɨɦɟɳɟ­ɧɵ ɞɚɧɧɵɟ ɩɟɪɟɞ ɜɵɡɨɜɨɦ ɩɨɞɩɪɨɝɪɚɦɦɵ. Ɉɩɪɟɞɟɥɹɸɳɢɦ ɹɜɥɹɟɬɫɹ ɬɨɥɶ­ɤɨ ɩɨɪɹɞɨɤ ɫɥɟɞɨɜɚɧɢɹ ɩɚɪɚɦɟɬɪɨɜ ɜ ɫɬɟɤɟ. ɉɨ ɷɬɨɣ ɩɪɢɱɢɧɟ ɩɨɞɩɪɨɝɪɚɦ­ɦɟ ɞɨɫɬɚɬɨɱɧɨ ɡɧɚɬɶ ɧɟ ɦɟɫɬɨ, ɚ ɬɨɥɶɤɨ
ɩɨɪɹɞɨɤ ɪɚɡɦɟɳɟɧɢɹ ɩɟɪɟɞɚɜɚɟɦɵɯ
ɩɚɪɚɦɟɬɪɨɜ ɜ ɫɬɟɤɟ.
.MODEL tiny ; ɡɚɞɚɟɦ ɦɨɞɟɥɶ ɜ ɞɚɧɧɨɦ ɫɥɭɱɚɟ .com
.CODE
.486 ; ɭɤɚɡɵɜɚɟɦ ɦɨɞɟɥɶ ɩɪɨɰɟɫɫɨɪɚ
org 100h ; ɜɵɞɟɥɹɟɦ ɩɚɦɹɬɶ
91
start:
mov ecx,10 ; ɡɚɞɚɺɦ ɤɨɥɢɱɟɫɬɜɨ ɰɢɤɥɨɜ. 10 ɩɨɬɨɦɭ, ɱɬɨ ɭ ɧɚɫ x ɨɬ 1 ɞɨ 10
Lb1: ; ɭɫɬɚɧɚɜɥɢɜɚɟɦ ɦɟɬɤɭ ɞɥɹ ɰɢɤɥɚ
mov eax,11 ; ɧɚɯɨɞɢɦ ɯ
sub eax,ecx ; x=11-ɱɢɫɥɨ ɰɢɤɥɨɜ (1, 2, 3... 11-1=10)
push ecx ; ɫɨɯɪɚɧɢɦ ɜ ɫɬɟɤɟ ɫɯ ɞɥɹ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɜ ɰɢɤɥɟ
push eax ; ɫɨɯɪɚɧɢɦ ɜ ɫɬɟɤɟ ax ɱɬɨɛɵ ɛɨɥɶɲɟ ɧɟ ɜɵɫɱɢɬɵɜɚɬɶ ɟɝɨ
mul eax ; x^2
mov ecx,eax ; ɫɨɯɪɚɧɢɦ eax ɜ ecx ɩɨɬɨɦ ɨɬɧɢɦɚɬɶ ɧɭɠɧɨ ɛɭɞɟɬ
mov ebx,3 ; ebx = 3
mul ebx ; 3x^2
sub eax,1 ; 3x^2-1
mov ebx,eax ; ɫɨɯɪɚɧɹɟɦ eax ɜ ebx
pop eax; ɜɨɫɫɬɚɧɚɜɥɢɜɚɟɦ eax ɬɚɤ
ɤɚɤ ɧɟɨɛɯɨɞɢɦ eax ɪɚɜɧɵɣ x push ebx; ɢ ɫɨɯɪɚɧɹɟɦ ebx mov ebx,eax; ebx = eax mov eax,ecx; ɬɟɩɟɪɶ eax = ecx mul ebx ; eax = x^3 mov ebx,4 ; ebx = 4 mul ebx ; eax = 4x^3 sub eax, ecx ; eax = 4x^3-x^2 add eax,2 ; eax = 4x^3-x^2+2 pop ebx ; ɜɨɫɫɬɚɧɚɜɥɢɜɚɟɦ ebx mov a, eax ; ɞɟɥɢɦɨɟ (a - ɷɬɨ ɩɟɪɟɦɟɧɧɚɹ) mov z, ebx ; ɞɟɥɢɬɟɥɶ (z - ɷɬɨ ɩɟɪɟɦɟɧɧɚɹ) finit ; ɢɧɢɰɢɚɥɢɡɢɪɭɟɦ ɫɨɩɪɨɰɟɫɫɨɪ fld a ; ɞɟɥɢɦɨɟ ɜ ɫɨɩɪɨɰɟɫɫɨɪ fdiv z ; ɩɪɨɜɨɞɢɦ ɞɟɥɟɧɢɟ ɜ ɫɨɩɪɨɰɟɫɫɨɪɟ
call tEnter ; ɷɬɨ ɜɵɡɨɜ ɮɭɧɤɰɢɢ ɤɨɬɨɪɚɹ ɩɟɪɟɜɨɞɢɬ ɫɬɪɨɤɭ call pFloat ; ɜɵɜɨɞɢɦ ɪɟɡɭɥɶɬɚɬ ɞɟɥɟɧɢɹ ɜ ɤɨɧɫɨɥɶ
@4: fadd t ; ɞɨɛɚɜɥɹɟɦ ɩɪɟɞɵɞɭɳɢɣ ɪɟɡɭɥɶɬɚɬ ɞɟɥɟɧɢɹ, ɞɥɹ ɩɨɥɭɱɟɧɢɹ
ɫɭɦɦɵ ; ɡɧɚɱɟɧɢɣ
ɮɭɧɤɰɢɢ ( t – ɷɬɨ ɩɟɪɟɦɟɧɧɚɹ)
fst t ; ɡɚɩɨɦɢɧɚɟɦ ɫɭɦɦɭ ɜ ɩɟɪɟɦɟɧɧɨɣ
pop ecx ; ɡɚɩɨɦɢɧɚɟɦ ecx ɢɡ ɩɚɦɹɬɢ ɞɥɹ ɤɨɪɪɟɤɬɧɨɣ ɪɚɛɨɬɵ ɰɢɤɥɚ
92
loop Lb1 ; ɩɟɪɟɯɨɞɢɦ ɧɚ ɦɟɬɤɭ ɩɨɤɚ ecx ɧɟ ɫɬɚɧɟɬ ɪɚɜɧɵɦ ɧɭɥɸ
call pEnter ; ɷɬɨ ɜɵɡɨɜ ɮɭɧɤɰɢɢ ɤɨɬɨɪɚɹ ɩɟɪɟɜɨɞɢɬ ɫɬɪɨɤɭ call pFloat ; ɜɵɜɨɞɢɦ sum ɩɪɢ x ɨɬ 1 ɞɨ 10 ɫ ɲɚɝɨɦ 1
int 20h ; Ɂɚɜɟɪɲɟɧɢɟ ɪɚɛɨɬɵ ɩɪɨɝɪɚɦɦɵ (ɷɬɨ ɧɚɡɵɜɚɟɬɫɹ ɜɵɡɜɚɬɶ ɩɪɟ-
ɪɵɜɚɧɢɟ 20h)
ret ; ɤɨɧɟɰ ɛɥɨɤɚ
;ɜɵɜɨɞɢɬ ɰɟɥɨɟ ɱɢɫɥɨ pInt: push ad ; ɫɨɯɪɚɧɹɟɦ ɜɫɟ ɪɟɝɢɫɬɪɵ mov bx,sp; bx = sp mov byte ptr ss:[bx-1],'$' ; ɫɢɦɜɨɥ ɤɨɧɰɚ ɫɬɪɨɤɢ @1:cdq ; ɦɟɬɤɚ ɰɢɤɥɚ. ɢ ɤɨɦɚɧɞɚ cdq
ɤɨɩɢɪɭɟɬ ɡɧɚɤɨɜɵɣ ɛɢɬ ɪɟɝɢɫɬɪɚ
eax ɧɚ ɜɫɟ ɛɢɬɵ ɪɟɝɢɫɬɪɚ edx
div ecx ; ɞɟɥɢɦ ɱɢɫɥɨ ɧɚ ɨɫɧɨɜɚɧɢɟ edx – ɨɫɬɚɬɨɤ, eax – ɱɚɫɬɧɨɟ add dl, '0' ; ɩɪɟɨɛɪɚɡɨɜɚɧɢɟ ɜ ASCII dec bx; ɭɦɟɧɶɲɚɟɦ bx ɧɚ 1 mov ss:[bx-1], dl ; ɞɨɛɚɜɥɹɟɦ ɜ ɫɬɨɤɭ ɩɟɪɟɞ ɩɪɟɞɵɞɭɳɢɦ test eax, eax ; ɩɪɨɜɟɪɹɟɦ ɟɫɬɶ ɥɢ ɜ eax jne @1 ; ɟɫɥɢ ɟɫɬɶ ɩɨɜɬɨɪɹɟɦ ɰɢɤɥ
mov ax, ss ; ɜɵɜɨɞɢɦ ɫɬɪɨɤɭ ɧɚ ɷɤɪɚɧ mov ds, ax ; ds = ax dec bx ; ɭɦɟɧɶɲɚɟɦ bx ɧɚ 1 mov dx, bx ; dx = bx xchg sp, bx ; ɟɫɥɢ ɧɟ ɨɛɦɟɧɹɬɶ ɜɵɥɟɡɟɬ ɦɭɫɨɪ mov ah, 9 ; ɧɨɦɟɪ ɮɭɧɤɰɢɢ ɩɪɟɪɵɜɚɧɢɹ int 21h ; ɜɵɡɵɜɚɟɦ ɩɪɟɪɵɜɚɧɢɟ xchg sp, bx ; ɟɫɥɢ ɧɟ ɨɛɦɟɧɹɬɶ ɩɪɨɝɪɚɦɦɚ ɡɚɜɟɪɲɢɬɶɫɹ pop ad ; ɜɨɫɫɬɚɧɚɜɥɢɜɚɟɦ ɞɚɧɧɵɟ ɢɡ ɫɬɟɤɚ ret
;ɜɵɜɨɞɢɬ ɱɢɫɥɨ pFloat: push ad ; ɫɨɯɪɚɧɹɟɦ ɜɫɟ ɪɟɝɢɫɬɪɵ mov ecx,10 ; ɡɚɞɚɟɦ ɨɫɧɨɜɚɧɢɟ ɫɢɫɬɟɦɵ ɫɱɢɫɥɟɧɢɹ push ecx ; ɫɨɯɪɚɧɹɟɦ ɨɫɧɨɜɚɧɢɟ mov bp,sp ; bp = sp
93
fst dword ptr ss:[bp-4] ; ɜɵɜɨɞɢɦ ɢɡ ɫɨɩɪɨɰɟɫɫɨɪɚ ɤɚɤ ɞɜɨɣɧɨɟ ɫɥɨɜɨ ɜ
ɪɟɝɢɫɬɪ ss
xor eax,eax ; ɨɛɧɭɥɹɟɦ eax (xor ɛɢɧɚɪɧɨɟ ɢɥɢ) mov edx,ss:[bp-4] ; edx = ss:[bp-4] shl edx,1 ; ɫɞɜɢɝɚɟɦ ɜ edx ɜɫɟ ɛɢɬɵ ɧɚ 1 ɜɥɟɜɨ mov ecx,edx ; ecx = edx shr ecx,24 ; ɫɞɜɢɝɚɟɦ ɜ ecx ɜɫɟ ɛɢɬɵ ɜ ɩɪɚɜɨ ɧɚ 24 sub cx,126 ; ɜɵɱɢɬɚɟɦ ɢɯ cx 126 – ɉɨɪɹɞɨɤ (ɷɤɫɩɨɧɟɧɬɚ) shl edx,7 ; ɫɞɜɢɝɚɟɦ edx ɜɥɟɜɨ ɧɚ 7 or edx,80000000h ; ɡɧɚɱɚɳɢɟ ɛɢɬɵ (ɦɚɧɬɢɫɫɚ) shld eax,edx,cl ; eax – ɰɟɥɚɹ ɱɚɫɬɶ shl edx,cl ; edx – ɞɪɨɛɧɚɹ ɱɚɫɬɶ pop ecx ; ɫɨɯɪɚɧɹɟɦ ecx call pInt ; ɜɵɜɨɞɢɦ ɧɚ ɷɤɪɚɧ ɰɟɥɭɸ ɱɚɫɬɶ
;ɜɵɜɨɞɢɦ ɧɚ ɷɤɪɚɧ ɞɪɨɛɧɭɸ ɱɚɫɬɶ xchg eax,edx ; ɨɛɦɟɧɢɜɚɟɦɫɹ ɡɧɚɱɟɧɢɹɦɢ cdq ; ɩɪɟɨɛɪɚɡɭɟɦ ɞɜɨɣɧɨɟ ɫɥɨɜɨ ɜ ɱɟɬɜɟɪɧɨɟ sub bp,28 ; ɜɵɱɢɬɚɟɦ ɢɡ bp 28 mov byte ptr ss:[bp],'.' ; ɞɨɛɚɜɥɹɟɦ ɪɚɡɞɟɥɢɬɟɥɶ ɞɟɫɹɬɢɱɧɨɣ ɞɪɨɛɢ @2:mul ecx ; ɭɦɧɨɠɚɟɦ ɧɚ ɨɫɧɨɜɚɧɢɟ 10 add dl,'0' ; ɩɪɟɨɛɪɚɡɨɜɚɧɢɟ ɜ ASCII inc bp ; ɭɜɟɥɢɱɢɜɚɟɦ bp ɧɚ ɟɞɢɧɢɰɭ mov ss:[bp],dl ; ɞɨɛɚɜɥɹɟɦ ɜ ɫɬɪɨɤɭ test eax,eax ; ɩɪɨɜɟɪɹɟɦ ɟɫɬɶ ɥɢ ɟɳɺ ɡɧɚɤɢ ɩɨɫɥɟ ɡɚɩɹɬɨɣ jne @2 ; ɞɚ? ɩɨɜɬɨɪɹɟɦ ɰɢɤɥ mov byte ptr ss:[bp+1],'$' ; ɧɟɬ? ɞɨɛɚɜɥɹɟɦ ɡɧɚɤ ɤɨɧɰɚ ɫɬɪɨɤɢ,
ɜɵɜɟɞɟɬ ɦɭɫɨɪ
sub sp,32 ; ɩɪɢɜɨɞɢɦ ɫɬɪɨɤɭ ɜ ɧɨɪɦɚɥɶɧɨɟ ɫɨɫɬɨɹɧɢɟ push ss pop ds mov dx,sp ; ɩɨɦɟɳɚɟɦ ɜ dx ɨɬɤɭɞɚ ɟɟ ɢ ɛɭɞɟɦ ɩɟɱɚɬɚɬɶ mov ah,9 ; ɮɭɧɤɰɢɹ ɩɪɟɪɵɜɚɧɢɹ ɩɪɟɪɵɜɚɧɢɹ int 21h ; ɜɵɡɨɜ ɩɪɟɪɵɜɚɧɢɹ call nEnter ; ɜɵɡɨɜ ɮɭɧɤɰɢɢ ɩɟɪɟɜɨɞɚ ɫɬɪɨɤɢ add sp,32 ; ɜɨɫɫɬɚɧɚɜɥɢɜɚɟɦ sp popad ; ɜɨɫɫɬɚɧɚɜɥɢɜɚɟɦ ɪɟɝɢɫɬɪɵ ret
;ɜɫɩɨɦɨɝɚɬɟɥɶɧɚɹ ɮɭɧɤɰɢɹ - ɩɟɪɟɜɨɞɢɬ ɫɬɪɨɤɭ nEnter:
ɢɧɚɱɟ
94
push ad mov dx,offset str0 mov ah,9 int 21h popad ret
;ɜɫɩɨɦɨɝɚɬɟɥɶɧɚɹ ɮɭɧɤɰɢɹ, ɩɟɱɚɬɚɟɬ ɫɬɪɨɤɭ "Temp rezult:" tEnter: pushad mov dx,offset str1 mov ah,9 int 21h popad ret
;ɜɫɩɨɦɨɝɚɬɟɥɶɧɚɹ ɮɭɧɤɰɢɹ, ɩɟɱɚɬɚɟɬ ɫɬɪɨɤɭ "Result:" pEnter: pushad mov dx,offset strE mov ah,9 int 21h popad ret
;ɩɟɪɟɦɟɧɧɵɟ a dd ? z dd ? t dd 0 str0 db 10,13,'$' str1 db 'Temp result: ','$' strE db 10,13,'Result: ','$'
end start ; ɤɨɧɟɰ ɩɪɨɝɪɚɦɦɵ
ɉɟɪɟɞ ɬɟɦ ɤɚɤ ɩɪɢɫɬɭɩɢɬɶ ɤ ɨɩɢɫɚɧɢɸ ɤɨɦɚɧɞ ɢ ɞɚɧɧɵɯ, ɫ ɤɨɬɨɪɵɦɢ
ɪɚɛɨɬɚɟɬ ɫɨɩɪɨɰɟɫɫɨɪ, ɨɬɦɟɬɢɦ, ɤɚɤɢɦ ɨɛɪɚɡɨɦ «ɭɠɢɜɚɸɬɫɹ» ɦɟɠɞɭ ɫɨɛɨɣ ɷɬɢ ɞɜɚ ɪɚɡɧɵɯ ɭɫɬɪɨɣɫɬɜɚ
– ɩɪɨɰɟɫɫɨɪ ɢ ɫɨɩɪɨɰɟɫɫɨɪ. Ʉɚɠɞɨɟ ɢɡ ɧɢɯ ɢɦɟɟɬ ɫɜɨɢ ɧɟɫɨɜɦɟɫɬɢɦɵɟ ɞɪɭɝ ɫ ɞɪɭɝɨɦ ɫɢɫɬɟɦɵ ɤɨɦɚɧɞ ɢ ɮɨɪɦɚɬɵ ɨɛ­ɪɚɛɚɬɵɜɚɟɦɵɯ ɞɚɧɧɵɯ. ɇɟɫɦɨɬɪɹ ɧɚ ɬɨ, ɱɬɨ ɫɨɩɪɨɰɟɫɫɨɪ ɚɪɯɢɬɟɤɬɭɪɧɨ
95
ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɨɬɞɟɥɶɧɨɟ ɜɵɱɢɫɥɢɬɟɥɶɧɨɟ ɭɫɬɪɨɣɫɬɜɨ, ɨɧ ɧɟ ɦɨɠɟɬ ɫɭɳɟɫɬɜɨɜɚɬɶ ɨɬɞɟɥɶɧɨ ɨɬ ɨɫɧɨɜɧɨɝɨ ɩɪɨɰɟɫɫɨɪɚ.
ɉɟɪɜɵɟ ɦɨɞɟɥɢ ɩɪɨɰɟɫɫɨɪɨɜ Intel (i8Ɉ86, i286, i386) ɢ ɫɨɩɪɨɰɟɫɫɨɪɨɜ (ɫɨɨɬɜɟɬɫɬɜɟɧɧɨ, i8Ɉ87, i287, iɁ87) ɜɵɩɨɥɧɹɥɢɫɶ ɤɚɤ ɨɬɞɟɥɶɧɵɟ ɭɫɬɪɨɣ­ɫɬɜɚ. ɋɨɩɪɨɰɟɫɫɨɪ ɜ ɫɥɭɱɚɟ ɧɟɨɛɯɨɞɢɦɨɫɬɢ ɜɫɬɚɜɥɹɥɫɹ ɜ ɫɩɟɰɢɚɥɶɧɵɣ ɪɚɡɴɟɦ, ɪɚɡɦɟɳɟɧɧɵɣ ɧɚ ɫɢɫɬɟɦɧɨɣ ɩɥɚɬɟ. ɍ ɦɨɞɟɥɟɣ, ɩɨɞɨɛɧɵɯ i486, ɫɨ­ɩɪɨɰɟɫɫɨɪ ɢ ɨɫɧɨɜɧɨɣ ɩɪɨɰɟɫɫɨɪ ɩɪɨɢɡɜɨɞɹɬɫɹ ɜ ɨɞɧɨɦ
ɤɨɪɩɭɫɟ ɢ ɹɜɥɹɸɬ­ɫɹ ɮɢɡɢɱɟɫɤɢ ɧɟɞɟɥɢɦɵɦɢ. Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɚɪɯɢɬɟɤɬɭɪɧɨ ɷɬɨ ɩɨ­ɩɪɟɠɧɟɦɭ ɞɜɚ ɪɚɡɧɵɯ ɭɫɬɪɨɣɫɬɜɚ, ɚ ɚɩɩɚɪɚɬɧɨ – ɨɞɧɨ. ɉɪɨɰɟɫɫɨɪ ɢ ɫɨɩɪɨ­ɰɟɫɫɨɪ, ɹɜɥɹɹɫɶ ɫɚɦɨɫɬɨɹɬɟɥɶɧɵɦɢ ɜɵɱɢɫɥɢɬɟɥɶɧɵɦɢ ɭɫɬɪɨɣɫɬɜɚɦɢ, ɦɨ­ɝɭɬ ɪɚɛɨɬɚɬɶ ɩɚɪɚɥɥɟɥɶɧɨ ɧɚɞ ɢɫɩɨɥɧɟɧɢɟɦ ɨɱɟɪɟɞɧɨɣ ɤɨɦɚɧɞɵ.
96
ȽɅȺȼȺ 5. ɈɊȽȺɇɂɁȺɐɂə ɎȺɃɅɈȼɈȽɈ ȾɈɋɌɍɉȺ
21. Ⱦɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɟ
Ⱦɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɟ – ɩɪɟɨɛɪɚɡɨɜɚɧɢɟ ɩɪɨɝɪɚɦɦɵ ɧɚ ɦɚɲɢɧɧɨɦ
ɹɡɵɤɟ ɤ ɟɟ ɚɫɫɟɦɛɥɟɪɧɨɦɭ ɩɪɟɞɫɬɚɜɥɟɧɢɸ. Ⱦɟɤɨɦɩɢɥɹɰɢɹ – ɩɨɥɭɱɟɧɢɟ ɤɨ­ɞɚ ɹɡɵɤɚ ɜɵɫɨɤɨɝɨ ɭɪɨɜɧɹ ɢɡ ɩɪɨɝɪɚɦɦɵ ɧɚ ɦɚɲɢɧɧɨɦ ɹɡɵɤɟ ɢɥɢ ɚɫɫɟɦ­ɛɥɟɪɟ.
Ⱦɟɤɨɦɩɢɥɹɰɢɹ – ɞɨɫɬɚɬɨɱɧɨ ɫɥɨɠɧɵɣ ɩɪɨɰɟɫɫ, ɨɛɭɫɥɨɜɥɟɧɧɵɣ ɫɥɟ-
ɞɭɸɳɢɦɢ ɩɪɢɱɢɧɚɦɢ.
ɉɪɨɰɟɫɫ ɤɨɦɩɢɥɹɰɢɢ ɩɪɨɢɫɯɨɞɢɬ ɫ ɩɨɬɟɪɹɦɢ. ȼ ɦɚɲɢɧɧɨɦ ɹɡɵɤɟ ɨɬ-
ɫɭɬɫɬɜɭɸɬ ɢɦɟɧɚ ɩɟɪɟɦɟɧɧɵɯ ɢ ɮɭɧɤɰɢɣ, ɢ ɬɢɩ ɞɚɧɧɵɯ
ɦɨɠɟɬ ɛɵɬɶ ɨɩɪɟ­ɞɟɥɟɧ ɬɨɥɶɤɨ ɩɨ ɩɪɨɢɡɜɨɞɢɦɵɦ ɧɚɞ ɧɢɦɢ ɨɩɟɪɚɰɢɹɦ. ȼ ɩɪɨɰɟɫɫɟ ɩɟɪɟɫɵɥ­ɤɢ 32-ɯ ɛɢɬ ɞɚɧɧɵɯ ɬɪɟɛɭɟɬɫɹ ɡɧɚɱɢɬɟɥɶɧɚɹ ɪɚɛɨɬɚ, ɱɬɨɛɵ ɨɩɪɟɞɟɥɢɬɶ, ɹɜ­ɥɹɸɬɫɹ ɥɢ ɨɧɢ ɰɟɥɵɦ ɱɢɫɥɨɦ, ɞɪɨɛɶɸ ɢɥɢ ɭɤɚɡɚɬɟɥɟɦ.
Ʉɨɦɩɢɥɹɰɢɹ – ɷɬɨ ɨɩɟɪɚɰɢɹ ɬɢɩɚ ɦɧɨɠɟɫɬɜɨ-ɦɧɨɠɟɫɬɜɨ. Ʉɨɦɩɢɥɹɰɢɹ ɢ ɞɟɤɨɦɩɢɥɹɰɢɹ ɦɨɝɭɬ ɛɵɬɶ ɜɵɩɨɥɧɟɧɵ ɦɧɨɠɟɫɬɜɨɦ
ɫɩɨɫɨɛɨɜ. ɉɨɷɬɨɦɭ ɪɟɡɭɥɶɬɚɬ ɞɟɤɨɦɩɢɥɹɰɢɢ ɦɨɠɟɬ ɫɭɳɟɫɬɜɟɧɧɨ
ɨɬɥɢ-
ɱɚɬɶɫɹ ɨɬ ɢɫɯɨɞɧɨɝɨ ɤɨɞɚ.
Ⱦɟɤɨɦɩɢɥɹɬɨɪɵ ɜ ɡɧɚɱɢɬɟɥɶɧɨɣ ɫɬɟɩɟɧɢ ɡɚɜɢɫɢɦɵ ɨɬ ɤɨɧɤɪɟɬɧɨɝɨ ɹɡɵɤɚ ɢ ɛɢɛɥɢɨɬɟɤ. Ɉɛɪɚɛɚɬɵɜɚɹ ɞɟɤɨɦɩɢɥɹɬɨɪɨɦ, ɪɚɡɪɚɛɨɬɚɧɧɵɦ ɞɥɹ C, ɢɫɩɨɥɧɹɟɦɵɣ ɮɚɣɥ, ɫɨɡɞɚɧɧɵɣ ɤɨɦɩɢɥɹɬɨɪɨɦ Delphi, ɦɨɠɧɨ ɩɨɥɭɱɢɬɶ ɧɟɩɪɟɞɜɢɞɟɧɧɵɣ ɪɟɡɭɥɶɬɚɬ.
Ɍɨɱɧɨɟ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɟ ɢɫɩɨɥɧɹɟɦɨɝɨ ɮɚɣɥɚ ɩɨɡɜɨɥɹɟɬ ɢɡɛɟɝɚɬɶ ɥɸɛɨɣ ɨɲɢɛɤɢ ɢɥɢ ɭɩɭɳɟɧɢɹ, ɜɨɡɧɢɤɚɸɳɢɯ ɜ ɷɬɭ ɮɚɡɭ, ɜ ɪɟɡɭɥɶɬɢɪɭɸ­ɳɟɦ ɤɨɞɟ.
ɋɨɜɟɪɲɟɧɫɬɜɨɜɚɧɢɟ ɫɪɟɞɫɬɜ ɞɟɤɨɦɩɢɥɹɰɢɢ ɩɪɨɢɫɯɨɞɢɬ ɩɨɫɬɟɩɟɧɧɨ.
ɐɟɥɶ ɢɧɫɬɪɭɦɟɧɬɨɜ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɫɨɞɟɣɫɬɜɢɢ ɢɫɫɥɟɞɨɜɚɧɢɸ ɮɭɧɤɰɢɨɧɢɪɨɜɚɧɢɹ ɩɪɨɝɪɚɦɦ, ɤɨɝɞɚ ɢɯ ɢɫɯɨɞɧɵɟ ɤɨɞɵ ɧɟ ɞɨɫɬɭɩɧɵ.
ɇɚɢɛɨɥɟɟ ɪɚɫɩɪɨɫɬɪɚɧɟɧɧɵɟ ɰɟɥɢ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ:
ɚɧɚɥɢɡ ɜɪɟɞɨɧɨɫɧɨɝɨ ɩɪɨɝɪɚɦɦɧɨɝɨ ɨɛɟɫɩɟɱɟɧɢɹ;
ɚɧɚɥɢɡ ɭɹɡɜɢɦɨɫɬɟɣ ɩɪɨɝɪɚɦɦɧɨɝɨ ɨɛɟɫɩɟɱɟɧɢɹ ɫ ɡɚɤɪɵɬɵɦ ɢɫɯɨɞ-
ɧɵɦ ɤɨɞɨɦ;
ɚɧɚɥɢɡ ɫɨɜɦɟɫɬɢɦɨɫɬɢ ɫ ɡɚɤɪɵɬɵɦ ɢɫɯɨɞɧɵɦ ɤɨɞɨɦ;
ɜɚɥɢɞɚɰɢɹ ɤɨɦɩɢɥɹɬɨɪɚ;
ɨɬɨɛɪɚɠɟɧɢɟ ɤɨɦɚɧɞ ɩɪɨɝɪɚɦɦɵ ɜ ɩɪɨɰɟɫɫɟ ɨɬɥɚɞɤɢ.
Ⱥɧɚɥɢɡ ɜɪɟɞɨɧɨɫɧɨɝɨ ɩɪɨɝɪɚɦɦɧɨɝɨ ɨɛɟɫɩɟɱɟɧɢɹ. Ɋɚɡɪɚɛɨɬɱɢɤɢ «ɜɪɟɞɨɧɨɫɧɨɝɨ» ɩɪɨɝɪɚɦɦɧɨɝɨ ɨɛɟɫɩɟɱɟɧɢɹ ɧɟ ɩɪɟɞɨɫɬɚɜɥɹɸɬ ɢɫɯɨɞɧɵɣ
ɤɨɞ ɫɜɨɟɝɨ ɞɟɬɢɳɚ. Ȼɟɡ ɞɨɫɬɭɩɚ ɤ ɢɫɯɨɞɧɨɦɭ ɤɨɞɭ ɞɨɜɨɥɶɧɨ ɫɥɨɠɧɨ ɨɩɪɟ­ɞɟɥɢɬɶ ɩɨɜɟɞɟɧɢɟ «ɜɪɟɞɨɧɨɫɧɨɣ» ɩɪɨɝɪɚɦɦɵ. ɋɭɳɟɫɬɜɭɸɬ ɞɜɚ ɨɫɧɨɜɧɵɯ
97
ɦɟɬɨɞɚ ɟɟ ɢɫɫɥɟɞɨɜɚɧɢɹ – ɞɢɧɚɦɢɱɟɫɤɢɣ ɢ ɫɬɚɬɢɱɟɫɤɢɣ ɚɧɚɥɢɡ. Ⱦɢɧɚɦɢɱɟ­ɫɤɢɣ ɚɧɚɥɢɡ ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɢɫɩɨɥɧɟɧɢɢ ɩɪɨɝɪɚɦɦɵ ɜ ɬɳɚɬɟɥɶɧɨ ɤɨɧɬɪɨɥɢ­ɪɭɟɦɨɦ ɨɤɪɭɠɟɧɢɢ (ɩɟɫɨɱɧɢɰɟ) ɢ ɡɚɩɢɫɢ ɤɚɠɞɨɝɨ ɟɟ ɞɟɣɫɬɜɢɹ. ɋɬɚɬɢɱɟ- ɫɤɢɣ ɚɧɚɥɢɡ ɨɫɧɨɜɚɧ ɧɚ ɪɚɡɛɨɪɟ ɢɫɯɨɞɧɨɝɨ ɤɨɞɚ, ɤɨɬɨɪɵɣ ɜ ɫɥɭɱɚɟ ɡɚɩɭɫɤɚ
ɜɪɟɞɨɧɨɫɧɨɣ ɩɪɨɝɪɚɦɦɵ ɜ ɨɫɧɨɜɧɨɦ ɫɨɫɬɨɢɬ ɢɡ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɧɵɯ ɥɢ­ɫɬɢɧɝɨɜ.
Ⱥɧɚɥɢɡ ɭɹɡɜɢɦɨɫɬɟɣ. ɉɪɨɰɟɫɫ ɚɭɞɢɬɚ ɛɟɡɨɩɚɫɧɨɫɬɢ
ɞɥɹ ɩɪɨɫɬɨɬɵ
ɦɨɠɧɨ ɪɚɡɞɟɥɢɬɶ ɧɚ ɬɪɢ ɫɬɚɞɢɢ: ɩɨɢɫɤ ɭɹɡɜɢɦɨɫɬɟɣ, ɚɧɚɥɢɡ ɭɹɡɜɢɦɨɫɬɟɣ ɢ ɪɚɡɪɚɛɨɬɤɚ ɷɤɫɩɥɨɣɬɚ. Ɉɞɧɢ ɢ ɬɟ ɠɟ ɲɚɝɢ ɩɪɟɞɩɪɢɧɢɦɚɸɬɫɹ ɜɧɟ ɡɚɜɢɫɢɦɨ­ɫɬɢ ɨɬ ɬɨɝɨ, ɢɦɟɟɬɫɹ ɥɢ ɢɫɯɨɞɧɵɣ ɤɨɞ. Ɉɞɧɚɤɨ ɭɪɨɜɟɧɶ ɬɪɭɞɨɟɦɤɨɫɬɢ ɪɟɡ­ɤɨ ɜɨɡɪɚɫɬɚɟɬ, ɤɨɝɞɚ ɜ ɪɚɫɩɨɪɹɠɟɧɢɢ ɢɦɟɟɬɫɹ ɥɢɲɶ ɢɫɩɨɥɧɹɟɦɵɣ ɮɚɣɥ. ɉɟɪɜɵɣ ɲɚɝ – ɢɫɫɥɟɞɨɜɚɧɢɟ ɩɨɬɟɧɰɢɚɥɶɧɨ ɭɹɡɜɢɦɵɯ ɭɫɥɨɜɢɣ ɜ ɩɪɨɝɪɚɦ­ɦɟ, ɡɚɱɚɫɬɭɸ, ɞɨɫɬɢɝɚɟɬɫɹ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɞɢɧɚɦɢɱɟɫɤɢɯ ɬɟɯɧɢɤ, ɬɚɤɢɯ ɤɚɤ ɮɚɡɡɢɧɝ, ɚ ɬɚɤɠɟ ɦɨɠɟɬ ɛɵɬɶ ɪɟɚɥɢɡɨɜɚɧ (ɨɛɵɱɧɨ ɫɨ ɡɧɚɱɢɬɟɥɶɧɨ ɛɨɥɶɲɢɦɢ ɭɫɢɥɢɹɦɢ) ɩɨɫɪɟɞɫɬɜɨɦ ɫɬɚɬɢɱɟɫɤɨɝɨ ɚɧɚɥɢɡɚ. Ʉɚɤ ɬɨɥɶɤɨ ɩɪɨɛɥɟɦɚ ɨɛɧɚɪɭɠɟɧɚ, ɬɪɟɛɭɟɬɫɹ ɨɩɪɟɞɟɥɢɬɶ, ɹɜɥɹɟɬɫɹ ɥɢ ɨɧɚ ɭɹɡɜɢɦɨ­ɫɬɶɸ, ɟɫɥɢ ɞɚ, ɬɨ ɩɪɢ ɤɚɤɢɯ ɭɫɥɨɜɢɹɯ.
Ʌɢɫɬɢɧɝ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ ɩɨɡɜɨɥɹɟɬ ɩɨɧɹɬɶ, ɤɚɤɢɦ ɨɛɪɚɡɨɦ ɤɨɦ­ɩɢɥɹɬɨɪ ɪɚɫɩɨɥɨɠɢɥ ɩɟɪɟɦɟɧɧɵɟ ɜ ɩɚɦɹɬɢ. ɇɚɩɪɢɦɟɪ, ɨɛɴɹɜɥɟɧɧɵɣ ɩɪɨ­ɝɪɚɦɦɢɫɬɨɦ 70-ɛɚɣɬɧɵɣ ɦɚɫɫɢɜ ɫɢɦɜɨɥɨɜ ɩɪɢ ɪɚɫɩɪɟɞɟɥɟɧɢɢ ɩɚɦɹɬɢ ɤɨɦ­ɩɢɥɹɬɨɪɨɦ ɛɭɞɟɬ ɨɤɪɭɝɥɟɧ ɜ ɫɬɨɪɨɧɭ 80 ɛɚɣɬ.
Ʌɢɫɬɢɧɝɢ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ ɬɚɤɠɟ ɩɪɟɞɨɫɬɚɜɥɹɸɬ ɟɞɢɧɫɬɜɟɧɧɵɣ ɫɩɨɫɨɛ ɨɩɪɟɞɟɥɟɧɢɹ, ɨɛɴɹɜɥɟɧɵ ɥɢ ɩɟɪɟɦɟɧɧɵɟ ɝɥɨɛɚɥɶɧɨ ɢɥɢ ɜɧɭɬɪɢ ɮɭɧɤɰɢɣ. ɉɨɧɢɦɚɧɢɟ ɪɟɚɥɶɧɨɝɨ ɪɚɫɩɨɥɨɠɟɧɢɹ ɩɟɪɟɦɟɧɧɵɯ ɜ ɩɚɦɹɬɢ ɨɫɨ­ɛɟɧɧɨ ɜɚɠɧɨ ɩɪɢ ɪɚɡɪɚɛɨɬɤɟ ɷɤɫɩɥɨɣɬɨɜ.
Ⱥɧɚɥɢɡ ɫɨɜɦɟɫɬɢɦɨɫɬɢ. Ʉɨɝɞɚ ɩɪɨɝɪɚɦɦɵ ɞɨɫɬɭɩɧɵ ɬɨɥɶɤɨ ɜ
ɜɢɞɟ ɢɫɩɨɥɧɹɟɦɵɯ ɮɚɣɥɨɜ, ɫɬɨɪɨɧɧɢɦ ɪɚɡɪɚɛɨɬɱɢɤɚɦ ɤɪɚɣɧɟ ɫɥɨɠɧɨ ɨɛɟɫɩɟ­ɱɢɬɶ ɫɨɜɦɟɫɬɢɦɨɫɬɶ ɫ ɧɢɦɢ ɫɜɨɢɯ ɩɪɨɝɪɚɦɦ, ɚ ɬɚɤɠɟ ɪɚɫɲɢɪɢɬɶ ɢɯ ɮɭɧɤ­ɰɢɨɧɚɥɶɧɨɫɬɶ. ɇɚɩɪɢɦɟɪ, ɟɫɥɢ ɩɪɨɢɡɜɨɞɢɬɟɥɶ ɧɟ ɩɪɟɞɨɫɬɚɜɢɥ ɞɪɚɣɜɟɪ ɞɥɹ ɚɩɩɚɪɚɬɧɨɝɨ ɭɫɬɪɨɣɫɬɜɚ, ɬɨ ɪɟɜɟɪɫ-ɢɧɠɢɧɢɪɢɧɝ – ɩɪɚɤɬɢɱɟɫɤɢ ɟɞɢɧɫɬɜɟɧ­ɧɨɟ ɫɪɟɞɫɬɜɨ ɞɥɹ ɪɚɡɪɚɛɨɬɤɢ ɚɥɶɬɟɪɧɚɬɢɜɧɵɯ ɞɪɚɣɜɟɪɨɜ.
ȼɚɥɢɞɚɰɢɹ ɤɨɦɩɢɥɹɬɨɪɚ. Ⱦɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɟ ɦɨɠɟɬ ɛɵɬɶ ɫɪɟɞ-
ɫɬɜɨɦ ɩɪɨɜɟɪɤɢ ɫɨɨɬɜɟɬɫɬɜɢɹ ɪɚɛɨɬɵ ɤɨɦɩɢɥɹɬɨɪɚ
ɟɝɨ ɫɩɟɰɢɮɢɤɚɰɢɢ. ɂɫ­ɫɥɟɞɨɜɚɬɟɥɹ ɦɨɠɟɬ ɡɚɢɧɬɟɪɟɫɨɜɚɬɶ ɬɚɤɠɟ ɧɚɥɢɱɢɟ ɞɨɩɨɥɧɢɬɟɥɶɧɵɯ ɜɨɡ­ɦɨɠɧɨɫɬɟɣ, ɨɩɬɢɦɢɡɢɪɭɸɳɢɯ ɪɟɡɭɥɶɬɚɬ ɤɨɦɩɢɥɹɰɢɢ. ɋ ɬɨɱɤɢ ɡɪɟɧɢɹ ɛɟɡ­ɨɩɚɫɧɨɫɬɢ ɧɟɨɛɯɨɞɢɦɨ ɛɵɬɶ ɭɜɟɪɟɧɧɵɦ, ɱɬɨ ɤɨɞ, ɝɟɧɟɪɢɪɭɟɦɵɣ ɤɨɦɩɢɥɹ­ɬɨɪɨɦ, ɧɟ ɫɨɞɟɪɠɢɬ ɱɟɪɧɵɯ ɯɨɞɨɜ.
Ɉɬɥɚɞɤɚ. Ʉ ɫɨɠɚɥɟɧɢɸ, ɞɢɡɚɫɫɟɦɛɥɟɪɵ, ɜɫɬɪɨɟɧɧɵɟ ɜ ɨɬɥɚɞɱɢɤɢ, ɡɚ-
ɱɚɫɬɭɸ, ɦɚɥɨɷɮɮɟɤɬɢɜɧɵ (OllyDbg – ɢɫɤɥɸɱɟɧɢɟ). Ɉɧɢ ɧɟ ɩɪɟɞɧɚɡɧɚɱɟɧɵ ɞɥɹ ɫɟɪɢɣɧɨɝɨ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ ɢɥɢ
ɨɬɤɚɡɵɜɚɸɬɫɹ ɜɵɩɨɥɧɹɬɶ ɷɬɭ
ɮɭɧɤɰɢɸ, ɬɚɤ ɤɚɤ ɧɟ ɜ ɫɨɫɬɨɹɧɢɢ ɨɩɪɟɞɟɥɢɬɶ ɟɟ ɝɪɚɧɢɰɵ. ɉɨɷɬɨɦɭ ɞɥɹ
98
ɷɮɮɟɤɬɢɜɧɨɝɨ ɤɨɧɬɪɨɥɹ ɩɪɨɰɟɫɫɚ ɨɬɥɚɞɤɢ ɥɭɱɲɟ ɢɫɩɨɥɶɡɨɜɚɬɶ ɨɬɥɚɞɱɢɤ ɜ ɫɨɱɟɬɚɧɢɢ ɫ ɯɨɪɨɲɢɦ ɞɢɡɚɫɫɟɦɛɥɟɪɨɦ.
Ɍɢɩɢɱɧɵɟ ɡɚɞɚɱɢ, ɫ ɤɨɬɨɪɵɦɢ ɫɬɚɥɤɢɜɚɟɬɫɹ ɞɢɡɚɫɫɟɦɛɥɟɪ: ɜɡɹɬɶ 100 Ʉɛɚɣɬ ɢɡ ɢɫɯɨɞɧɨɝɨ ɮɚɣɥɚ, ɨɬɞɟɥɢɬɶ ɤɨɞ ɨɬ ɞɚɧɧɵɯ, ɩɪɟɨɛɪɚɡɨɜɚɬɶ ɟɝɨ ɤ ɹɡɵɤɭ ɚɫɫɟɦɛɥɟɪɚ, ɩɪɢ ɷɬɨɦ ɧɢɱɟɝɨ ɧɟ ɭɬɪɚɬɢɬɶ. ȼ ɷɬɨɬ ɫɩɢɫɨɤ ɦɨɠɧɨ ɞɨɛɚɜɢɬɶ ɞɨɩɨɥɧɢɬɟɥɶɧɵɟ ɩɨɠɟɥɚɧɢɹ, ɧɚɩɪɢɦɟɪ, ɨɩɪɟɞɟɥɟɧɢɟ ɝɪɚɧɢɰ ɮɭɧɤɰɢɣ, ɪɚɫɩɨɡɧɚɜɚɧɢɟ ɬɚɛɥɢɰ
ɩɟɪɟɯɨɞɨɜ, ɜɵɞɟɥɟɧɢɟ ɥɨɤɚɥɶɧɵɯ ɩɟɪɟ­ɦɟɧɧɵɯ ɢ ɬ. ɞ. ɗɬɨ ɡɧɚɱɢɬɟɥɶɧɨ ɭɫɥɨɠɧɢɬ ɟɝɨ ɪɚɛɨɬɭ. Ʉɚɱɟɫɬɜɨ ɪɟɡɭɥɶɬɢ­ɪɭɸɳɢɯ ɥɢɫɬɢɧɝɨɜ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ ɨɩɪɟɞɟɥɹɟɬɫɹ ɫɜɨɣɫɬɜɚɦɢ ɚɥɝɨ­ɪɢɬɦɨɜ, ɚ ɬɚɤɠɟ ɭɦɟɫɬɧɨɫɬɶɸ ɢɯ ɩɪɢɦɟɧɟɧɢɹ ɜ ɤɨɧɤɪɟɬɧɨɣ ɫɢɬɭɚɰɢɢ.
Ȼɚɡɨɜɵɣ ɚɥɝɨɪɢɬɦ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ
ɒɚɝ 1. ɉɟɪɜɵɦ ɲɚɝɨɦ ɜ ɩɪɨɰɟɫɫɟ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ ɹɜɥɹɟɬɫɹ
ɢɞɟɧɬɢɮɢɤɚɰɢɹ ɤɨɞɨɜɨɝɨ ɫɟɝɦɟɧɬɚ. Ɍɚɤ ɤɚɤ ɤɨɦɚɧɞɵ ɨɛɵɱɧɨ ɫɦɟɲɚɧɵ ɫ ɞɚɧɧɵɦɢ, ɬɨ ɞɢɡɚɫɫɟɦɛɥɟɪɭ ɧɟɨɛɯɨɞɢɦɨ ɢɯ ɪɚɡɝɪɚɧɢɱɢɬɶ.
ɒɚɝ 2. ɉɨɥɭɱɢɜ ɚɞɪɟɫ ɩɟɪɜɨɣ ɤɨɦɚɧɞɵ, ɧɟɨɛɯɨɞɢɦɨ ɩɪɨɱɢɬɚɬɶ ɡɧɚ-
ɱɟɧɢɟ, ɫɨɞɟɪɠɚɳɟɟɫɹ ɜ ɷɬɨɦ ɚɞɪɟɫɟ (ɢɥɢ ɫɦɟɳɟɧɢɸ ɜ ɮɚɣɥɟ) ɢ ɜɵɩɨɥɧɢɬɶ ɬɚɛɥɢɱɧɨɟ ɩɪɟɨɛɪɚɡɨɜɚɧɢɟ ɞɜɨɢɱɧɨɝɨ ɤɨɞɚ ɨɩɟɪɚɰɢɢ ɜ ɫɨɨɬɜɟɬɫɬɜɳɟɣ ɟɦɭ ɦɧɟɦɨɧɢɤɟ ɹɡɵɤɚ
ɚɫɫɟɦɛɥɟɪɚ.
ɒɚɝ 3. Ʉɚɤ ɬɨɥɶɤɨ ɤɨɦɚɧɞɚ ɛɵɥɚ ɨɛɧɚɪɭɠɟɧɚ ɢ ɞɟɤɨɞɢɪɨɜɚɧɚ, ɟɟ ɚɫ-
ɫɟɦɛɥɟɪɧɵɣ ɷɤɜɢɜɚɥɟɧɬ ɦɨɠɟɬ ɛɵɬɶ ɞɨɛɚɜɥɟɧ ɤ ɪɟɡɭɥɶɬɢɪɭɸɳɟɦɭ ɥɢ­ɫɬɢɧɝɭ. ɉɨɫɥɟ ɷɬɨɝɨ ɧɟɨɛɯɨɞɢɦɨ ɜɵɛɪɚɬɶ ɨɞɧɭ ɢɡ ɪɚɡɧɨɜɢɞɧɨɫɬɟɣ ɫɢɧɬɚɤ­ɫɢɫɚ ɹɡɵɤɚ ɚɫɫɟɦɛɥɟɪɚ.
ɒɚɝ 4. Ⱦɚɥɟɟ ɧɟɨɛɯɨɞɢɦɨ ɩɟɪɟɣɬɢ ɤ ɫɥɟɞɭɸɳɟɣ ɤɨɦɚɧɞɟ ɢ ɩɨɜɬɨɪɢɬɶ
ɩɪɟɞɵɞɭɳɢɟ ɲɚɝɢ ɞɨ ɬɟɯ ɩɨɪ, ɩɨɤɚ ɤɚɠɞɚɹ ɤɨɦɚɧɞɚ ɮɚɣɥɚ ɧɟ ɛɭɞɟɬ ɞɢɡɚɫ­ɫɟɦɛɥɢɪɨɜɚɧɚ.
Ⱥɥɝɨɪɢɬɦ ɥɢɧɟɣɧɨɣ ɪɚɡɜɟɪɬɤɢ
Ⱥɥɝɨɪɢɬɦ ɥɢɧɟɣɧɨɣ ɪɚɡɜɟɪɬɤɢ ɢɫɩɨɥɶɡɭɟɬ ɤɪɚɣɧɟ ɩɪɹɦɨɥɢɧɟɣɧɵɣ ɩɨɞɯɨɞ ɩɪɢ ɜɵɛɨɪɟ ɨɱɟɪɟɞɧɨɣ ɤɨɦɚɧɞɵ ɞɥɹ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ: ɬɚɦ, ɝɞɟ ɡɚɜɟɪɲɚɟɬɫɹ ɤɨɞ ɨɞɧɨɣ ɤɨɦɚɧɞɵ, ɧɚɱɢɧɚɟɬɫɹ ɤɨɞ ɧɨɜɨɣ. ȼ ɪɟɡɭɥɶɬɚɬɟ ɧɚɢɛɨɥɟɟ ɫɥɨɠɧɨɣ ɡɚɞɚɱɟɣ ɫɬɚɧɨɜɢɬɫɹ ɨɩɪɟɞɟɥɟɧɢɟ ɩɟɪɜɨɣ ɤɨɦɚɧɞɵ. Ⱦɢ­ɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɟ ɧɚɱɢɧɚɟɬɫɹ ɫ ɩɟɪɜɨɝɨ ɛɚɣɬɚ ɜ ɫɟɝɦɟɧɬɟ ɤɨɞɚ ɢ ɩɨɫɥɟɞɨ­ɜɚɬɟɥɶɧɨ ɩɪɨɞɜɢɝɚɟɬɫɹ, ɨɛɪɚɛɚɬɵɜɚɹ ɤɨɦɚɧɞɵ ɨɞɧɭ ɡɚ ɞɪɭɝɨɣ, ɩɨɤɚ ɧɟ
ɛɭ­ɞɟɬ ɞɨɫɬɢɝɧɭɬ ɤɨɧɟɰ ɫɟɝɦɟɧɬɚ. ɉɪɢ ɷɬɨɦ ɧɟ ɩɪɟɞɩɪɢɧɢɦɚɸɬ ɩɨɩɵɬɤɢ ɩɨ­ɧɹɬɶ ɥɨɝɢɤɭ ɩɟɪɟɞɚɱ ɭɩɪɚɜɥɟɧɢɹ ɜ ɩɪɨɝɪɚɦɦɟ ɩɨɫɪɟɞɫɬɜɨɦ ɪɚɫɩɨɡɧɚɜɚɧɢɹ ɬɚɤɢɯ ɤɨɦɚɧɞ ɩɟɪɟɯɨɞɚ, ɧɚɩɪɢɦɟɪ, ɤɚɤ ɭɫɥɨɜɢɹ.
Ƚɥɚɜɧɨɟ ɩɪɟɢɦɭɳɟɫɬɜɨ ɚɥɝɨɪɢɬɦɚ ɥɢɧɟɣɧɨɣ ɪɚɡɜɟɪɬɤɢ ɫɨɫɬɨɢɬ ɜ ɩɨɥ­ɧɨɦ ɩɨɤɪɵɬɢɢ ɤɨɞɨɜɨɝɨ ɫɟɝɦɟɧɬɚ. Ɉɞɧɢɦ ɢɡ ɨɫɧɨɜɧɵɯ ɧɟɞɨɫɬɚɬɤɨɜ ɹɜɥɹ­ɟɬɫɹ ɧɟɜɨɡɦɨɠɧɨɫɬɶ ɪɚɫɩɨɡɧɚɬɶ ɞɚɧɧɵɟ, ɟɫɥɢ ɨɧɢ ɫɨɜɦɟɳɟɧɵ ɫ ɤɨɞɨɦ.
99
Ⱥɥɝɨɪɢɬɦ ɪɟɤɭɪɫɢɜɧɨɝɨ ɫɩɭɫɤɚ
Ⱥɥɝɨɪɢɬɦ ɪɟɤɭɪɫɢɜɧɨɝɨ ɫɩɭɫɤɚ ɢɫɩɨɥɶɡɭɟɬ ɤɨɧɰɟɩɰɢɸ ɩɟɪɟɞɚɱɢ ɭɩɪɚɜɥɟɧɢɹ, ɨɩɪɟɞɟɥɹɸɳɭɸ, ɞɨɥɠɧɚ ɥɢ ɤɨɦɚɧɞɚ ɛɵɬɶ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɚ ɩɨ ɧɚɥɢɱɢɸ ɢɥɢ ɨɬɫɭɬɫɬɜɢɸ ɧɚ ɧɟɟ ɫɫɵɥɨɤ ɨɬ ɞɪɭɝɢɯ ɤɨɦɚɧɞ. Ⱦɥɹ ɩɨɧɢ­ɦɚɧɢɹ ɚɥɝɨɪɢɬɦɚ ɪɟɤɭɪɫɢɜɧɨɝɨ ɫɩɭɫɤɚ ɧɟɨɛɯɨɞɢɦɨ ɤɥɚɫɫɢɮɢɰɢɪɨɜɚɬɶ ɤɨɦɚɧɞɵ ɜ ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ ɢɯ ɜɥɢɹɧɢɹ ɧɚ ɫɱɟɬɱɢɤ ɤɨɦɚɧɞ CPU.
Ʉɨɦɚɧɞɵ, ɧɟ ɜɥɢɹɸɳɢɟ ɧɚ ɫɱɟɬɱɢɤ ɤɨɦɚɧɞ. ɉɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɬɚɤɨɣ ɤɨɦɚɧɞɵ ɭɩɪɚɜɥɟɧɢɟ ɩɟɪɟɯɨɞɢɬ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɤ ɫɥɟɞɭɸɳɟɣ ɤɨ­ɦɚɧɞɟ.
ɉɪɢɦɟɪɚɦɢ ɤɨɦɚɧɞɵ, ɧɟ ɜɥɢɹɸɳɟɣ ɧɚ ɫɱɟɬɱɢɤ ɤɨɦɚɧɞ, ɦɨɠɟɬ ɩɨ­ɫɥɭɠɢɬɶ ɚɪɢɮɦɟɬɢɱɟɫɤɚɹ, ɬɚɤɚɹ ɤɚɤ add. Ⱦɥɹ ɩɨɞɨɛɧɵɯ ɤɨɦɚɧɞ ɩɪɨɰɟɫɫ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ ɩɪɨɯɨɞɢɬ ɬɚɤ ɠɟ, ɤɚɤ ɢ ɩɪɢ ɥɢɧɟɣɧɨɣ ɪɚɡɜɟɪɬɤɟ.
Ʉɨɦɚɧɞɵ ɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ. Ʉɨɦɚɧɞɵ ɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ, ɬɚɤɢɟ ɤɚɤ ×86 jnz, ɨɛɪɚɡɭɸɬ ɞɜɟ ɜɨɡɦɨɠɧɵɯ ɜɟɬɜɢ ɢɫɩɨɥɧɟɧɢɹ.
ɉɨɫɤɨɥɶɤɭ ɜ ɫɬɚɬɢɱɟɫɤɨɦ ɤɨɧɬɟɤɫɬɟ ɨɛɵɱɧɨ ɧɟɜɨɡɦɨɠɧɨ ɨɩɪɟɞɟɥɢɬɶ ɢɫɯɨɞ ɩɪɨɜɟɪɤɢ ɭɫɥɨɜɢɹ, ɚɥɝɨɪɢɬɦ ɪɟɤɭɪɫɢɜɧɨɝɨ ɫɩɭɫɤɚ ɞɢɡɚɫɫɟɦɛɥɢɪɭɟɬ ɨɛɟ ɜɟɬɜɢ. Ⱥɞ­ɪɟɫ ɰɟɥɟɜɨɣ ɜɟɬɜɢ ɞɨɛɚɜɥɹɟɬɫɹ ɜ ɫɩɢɫɨɤ ɚɞɪɟɫɨɜ ɞɥɹ ɩɨɫɥɟɞɭɸɳɟɝɨ ɞɢ­ɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ. Ɉɧɨ ɩɪɨɞɨɥɠɚɟɬɫɹ, ɤɚɤ ɩɪɢ ɥɨɠɧɨɦ ɭɫɥɨɜɢɢ.
Ʉɨɦɚɧɞɵ ɛɟɡɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ. Ȼɟɡɭɫɥɨɜɧɵɟ ɩɟɪɟɯɨɞɵ ɩɪɢɜɨɞɹɬ
ɤ ɧɚɪɭɲɟɧɢɸ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɝɨ ɩɨɪɹɞɤɚ ɢɫɩɨɥɧɟɧɢɹ ɤɨɦɚɧɞ. Ʉɨɦɚɧɞɚ, ɩɨɥɭɱɚɸɳɚɹ ɭɩɪɚɜɥɟɧɢɟ ɩɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ
ɛɟɡɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ, ɦɨ­ɠɟɬ ɪɚɫɩɨɥɚɝɚɬɶɫɹ ɨɬ ɧɟɝɨ ɧɚ ɡɧɚɱɢɬɟɥɶɧɨɦ ɪɚɫɫɬɨɹɧɢɢ. Ʉɪɨɦɟ ɬɨɝɨ, ɤɨ­ɦɚɧɞɵ, ɫɥɟɞɭɸɳɢɟ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɡɚ ɤɨɦɚɧɞɨɣ ɛɟɡɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ, ɧɟ ɢɫɩɨɥɧɹɸɬɫɹ ɜɨɨɛɳɟ. Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɨɬɫɭɬɫɬɜɭɟɬ ɧɟɨɛɯɨɞɢɦɨɫɬɶ ɜ ɢɯ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɢ.
Ⱥɥɝɨɪɢɬɦ ɪɟɤɭɪɫɢɜɧɨɝɨ ɫɩɭɫɤɚ ɨɩɪɟɞɟɥɹɟɬ ɚɞɪɟɫ ɧɚɡɧɚɱɟɧɢɹ ɛɟɡ­ɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ ɢ ɡɚɧɨɫɢɬ ɟɝɨ ɜ ɫɩɢɫɨɤ ɚɞɪɟɫɨɜ ɞɥɹ ɩɨɫɥɟɞɭɸɳɟɝɨ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ. Ʉ ɫɨɠɚɥɟɧɢɸ,
ɧɟ ɜɫɟ ɛɟɡɭɫɥɨɜɧɵɟ ɩɟɪɟɯɨɞɵ ɦɨɝɭɬ ɛɵɬɶ ɤɨɪɪɟɤɬɧɨ ɨɛɪɚɛɨɬɚɧɵ ɞɚɧɧɵɦ ɚɥɝɨɪɢɬɦɨɦ. Ʉɨɝɞɚ ɚɞɪɟɫ ɧɚɡɧɚɱɟɧɢɹ ɩɟɪɟɯɨɞɚ ɡɚɜɢɫɢɬ ɨɬ ɩɚɪɚɦɟɬɪɚ, ɩɨɥɭɱɚɟɦɨɝɨ ɜ ɩɪɨɰɟɫɫɟ ɢɫɩɨɥɧɟɧɢɹ, ɟɝɨ ɨɩɪɟɞɟɥɟɧɢɟ ɦɟɬɨɞɚɦɢ ɫɬɚɬɢɱɟɫɤɨɝɨ ɚɧɚɥɢɡɚ ɫɬɚɧɨɜɢɬɫɹ ɧɟɜɨɡɦɨɠɧɵɦ.
Ʉɨɦɚɧɞɵ ɜɵɡɨɜɚ ɮɭɧɤɰɢɢ. Ʉɨɦɚɧɞɵ ɜɵɡɨɜɚ ɮɭɧɤɰɢɢ ɪɚɛɨɬɚɸɬ
ɚɧɚɥɨɝɢɱɧɵɦ ɨɛɪɚɡɨɦ ɫ ɤɨɦɚɧɞɚɦɢ ɛɟɡɭɫɥɨɜɧɵɯ ɩɟɪɟɯɨɞɨɜ (ɜɤɥɸɱɚɹ ɧɟ­ɜɨɡɦɨɠɧɨɫɬɶ ɨɩɪɟɞɟɥɟɧɢɹ ɚɞɪɟɫɚ ɧɚɡɧɚɱɟɧɢɹ ɤɨɦɚɧɞɵ, ɬɚɤɨɣ ɤɚɤ call eax). ɂɫɤɥɸɱɟɧɢɟ ɫɨɫɬɚɜɥɹɟɬ ɬɨ, ɱɬɨ ɩɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɮɭɧɤɰɢɢ ɭɩɪɚɜ­ɥɟɧɢɟ ɨɛɵɱɧɨ ɜɨɡɜɪɚɳɚɟɬɫɹ ɤɨɦɚɧɞɟ, ɫɥɟɞɭɸɳɟɣ ɡɚ ɟɟ ɜɵɡɨɜɨɦ. ɉɪɢ ɷɬɨɦ, ɤɚɤ ɢ ɜ ɫɥɭɱɚɟ ɫ ɭɫɥɨɜɧɵɦɢ ɩɟɪɟɯɨɞɚɦɢ, ɨɛɪɚɡɭɸɬɫɹ ɞɜɟ ɜɟɬɜɢ ɢɫ­ɩɨɥɧɟɧɢɹ. Ⱥɞɪɟɫ ɧɚɡɧɚɱɟɧɢɹ ɤɨɦɚɧɞɵ call ɞɨɛɚɜɥɹɟɬɫɹ ɜ ɫɩɢɫɨɤ ɚɞɪɟɫɨɜ ɞɥɹ ɩɨɫɥɟɞɭɸɳɟɝɨ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ, ɜ ɬɨ ɜɪɟɦɹ ɤɚɤ ɤɨɦɚɧɞɚ, ɫɥɟɞɭ­ɸɳɚɹ ɡɚ call
, ɞɢɡɚɫɫɟɦɛɥɢɪɭɟɬɫɹ ɫ ɢɫɩɨɥɶɡɨɜɚɧɢɟɦ ɚɥɝɨɪɢɬɦɚ ɥɢɧɟɣɧɨɣ
ɪɚɡɜɟɪɬɤɢ.
100
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]