Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессоры. Учебник
.pdf
–
ɪɫ = 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
