Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессоры. Учебник
.pdf
Ɋɢɫɭɧɨɤ 1 – Ɉɛɳɚɹ ɫɯɟɦɚ ɪɚɡɪɚɛɨɬɤɢ ɩɪɨɝɪɚɦɦɵ ɧɚ ɚɫɫɟɦɛɥɟɪɟ
Ɍɪɚɧɫɥɹɰɢɹ ɩɪɨɝɪɚɦɦɵ
ɇɚ ɷɬɨɦ ɲɚɝɟ ɮɨɪɦɢɪɭɟɬɫɹ ɨɛɴɟɤɬɧɵɣ ɦɨɞɭɥɶ (*.obj), ɤɨɬɨɪɵɣ ɜɤɥɸɱɚɟɬ ɜ ɫɟɛɹ ɩɪɟɞɫɬɚɜɥɟɧɢɟ ɢɫɯɨɞɧɨɣ ɢɧɮɨɪɦɚɰɢɢ ɜ ɦɚɲɢɧɧɵɯ ɤɨɞɚɯ.
ȼ ɪɟɡɭɥɶɬɚɬɟ ɧɚ ɷɤɪɚɧɟ ɮɨɪɦɢɪɭɟɬɫɹ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɫɬɪɨɤ. ȿɫɥɢ
ɩɪɨɝɪɚɦɦɚ ɫɨɞɟɪɠɢɬ ɨɲɢɛɤɢ, ɬɨ ɬɪɚɧɫɥɹɬɨɪ ɜɵɞɚɫɬ ɧɚ ɷɤɪɚɧ ɫɬɪɨɤɢ ɫɨɨɛɳɟɧɢɣ, ɧɚɱɢɧɚɸɳɢɯɫɹ ɫɨ ɫɥɨɜ «Error» ɢɥɢ «Warning» (ɨɲɢɛɤɚ ɢɥɢ
ɩɪɟɞɭɩɪɟɠɞɟɧɢɟ). ɇɚɥɢɱɢɟ ɨɲɢɛɨɤ ɫɜɢɞɟɬɟɥɶɫɬɜɭɟɬ ɨ ɬɨɦ, ɱɬɨ ɜ ɩɪɨɝɪɚɦɦɟ ɩɪɢɫɭɬɫɬɜɭɸɬ ɧɟɞɨɩɭɫɬɢɦɵɟ ɫ ɬɨɱɤɢ ɡɪɟɧɢɹ ɫɢɧɬɚɤɫɢɫɚ ɤɨɦɛɢɧɚɰɢɢ
ɫɢɦɜɨɥɨɜ. ɇɚɥɢɱɢɟ ɫɬɪɨɤɢ ɩɪɟɞɭɩɪɟɠɞɟɧɢɣ ɦɨɠɟɬ ɩɨɫɥɭɠɢɬɶ ɢɫɬɨɱɧɢɤɨɦ
ɩɨɫɥɟɞɭɸɳɢɯ ɨɲɢɛɨɤ. ɉɨɫɥɟ ɢɫɩɪɚɜɥɟɧɢɹ ɨɞɧɨɣ ɨɲɢɛɤɢ ɦɨɝɭɬ ɢɫɱɟɡɧɭɬɶ
ɩɨɫɥɟɞɭɸɳɢɟ, ɬɚɤ ɧɚɡɵɜɚɟɦɵɟ ɧɚɜɟɞɟɧɧɵɟ ɨɲɢɛɤɢ.
Ʉɨɦɩɨɧɨɜɤɚ ɩɪɨɝɪɚɦɦɵ – ɫɨɡɞɚɧɢɟ ɢɫɩɨɥɧɹɟɦɨɝɨ ɡɚɝɪɭɡɨɱɧɨɝɨ ɦɨɞɭɥɹ.
ɐɟɥɶ ɷɬɨɝɨ
ɲɚɝɚ – ɩɪɟɨɛɪɚɡɨɜɚɬɶ ɤɨɞ ɢ ɞɚɧɧɵɟ ɜ ɨɛɴɟɤɬɧɵɯ ɮɚɣɥɚɯ ɜ
ɢɯ ɩɟɪɟɦɟɳɚɟɦɨɟ ɜɵɩɨɥɧɹɟɦɨɟ ɨɬɨɛɪɚɠɟɧɢɟ (*.exe). ɉɪɨɰɟɫɫ ɫɨɡɞɚɧɢɹ
ɢɫɩɨɥɧɹɟɦɨɝɨ ɦɨɞɭɥɹ ɧɚ ɞɜɚ ɲɚɝɚ (ɬɪɚɧɫɥɹɰɢɹ ɢ ɤɨɦɩɨɧɨɜɤɚ) ɪɚɡɞɟɥɹɸɬ
ɧɚɦɟɪɟɧɧɨ ɞɥɹ ɨɛɴɟɞɢɧɟɧɢɹ ɧɟɫɤɨɥɶɤɢɯ ɦɨɞɭɥɟɣ. Ɋɟɡɭɥɶɬɚɬɨɦ ɪɚɛɨɬɵ
ɤɨɦɩɨɧɨɜɳɢɤɚ ɹɜɥɹɟɬɫɹ ɫɨɡɞɚɧɢɟ ɡɚɝɪɭɡɨɱɧɨɝɨ ɮɚɣɥɚ ɫ ɪɚɫɲɢɪɟɧɢɟɦ
«*.exe».
ɇɚ ɷɬɚɩɟ ɨɬɥɚɞɤɢ ɫ ɩɪɢɜɥɟɱɟɧɢɟɦ ɨɩɢɫɚɧɢɹ ɚɥɝɨɪɢɬɦɚ ɜɵɩɨɥɧɹɟɬɫɹ
ɤɨɧɬɪɨɥɶ ɩɪɚɜɢɥɶɧɨɫɬɢ
ɮɭɧɤɰɢɨɧɢɪɨɜɚɧɢɹ ɤɚɤ ɨɬɞɟɥɶɧɵɯ ɭɱɚɫɬɤɨɜ ɤɨɞɚ,
ɬɚɤ ɢ ɜɫɟɣ ɩɪɨɝɪɚɦɦɵ ɜ ɰɟɥɨɦ.
Ɉɬɥɚɞɱɢɤ, ɩɪɟɞɫɬɚɜɥɹɸɳɢɣ ɫɨɛɨɣ ɨɤɨɧɧɭɸ ɫɪɟɞɭ ɨɬɥɚɞɤɢ ɩɪɨɝɪɚɦɦ
ɧɚ ɭɪɨɜɧɟ ɢɫɯɨɞɧɨɝɨ ɬɟɤɫɬɚ, ɩɨɡɜɨɥɹɟɬ ɪɟɲɚɬɶ ɞɜɟ ɝɥɚɜɧɵɟ ɡɚɞɚɱɢ:
–
ɨɩɪɟɞɟɥɢɬɶ ɦɟɫɬɨ ɥɨɝɢɱɟɫɤɨɣ ɨɲɢɛɤɢ;
–
ɨɩɪɟɞɟɥɢɬɶ ɩɪɢɱɢɧɭ ɩɨɹɜɥɟɧɢɹ ɥɨɝɢɱɟɫɤɨɣ ɨɲɢɛɤɢ.
21

.486
.model flat, stdcall
option casemap: none
include /masm32/include/windows.inc
include /masm32/include/user32.inc
include /masm32/include/kernel32.inc
includelib /masm32/lib/user32.lib
includelib /masm32/lib/kernel32.lib
include /masm32/macros/macros.asm
uselib masm32, comctl32, ws2_32
.data
.code
start:
call GetCommandLine ; ɪɟɡɭɥɶɬɚɬ ɛɭɞɟɬ ɩɨɦɟɳɟɧ ɜ eax
push 0
push chr$("Command Line")
push eax ; ɬɟɤɫɬ ɞɥɹ ɜɵɜɨɞɚ ɛɟɪɟɦ ɢɡ eax
push 0
call MessageBox
push 0
call ExitProcess
end start
ɋɬɚɧɞɚɪɬɧɵɟ ɜɨɡɦɨɠɧɨɫɬɢ ɨɬɥɚɞɱɢɤɚ, ɩɨɡɜɨɥɹɸɳɢɟ ɧɚɣɬɢ ɦɟɫɬɨ
ɢ ɢɫɬɨɱɧɢɤ ɨɲɢɛɤɢ ɜ ɩɪɨɝɪɚɦɦɟ:
–
ɜɵɩɨɥɧɟɧɢɟ ɬɪɚɫɫɢɪɨɜɤɢ ɩɪɨɝɪɚɦɦɵ ɜ ɩɪɹɦɨɦ ɧɚɩɪɚɜɥɟɧɢɢ, ɬ. ɟ.
ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɟ ɢɫɩɨɥɧɟɧɢɟ ɩɪɨɝɪɚɦɦɵ, ɤɨɝɞɚ ɡɚ ɨɞɢɧ ɲɚɝ ɜɵɩɨɥɧɹɟɬɫɹ
ɨɞɧɚ ɦɚɲɢɧɧɚɹ ɢɧɫɬɪɭɤɰɢɹ;
–
ɜɵɩɨɥɧɟɧɢɟ ɬɪɚɫɫɢɪɨɜɤɢ ɩɪɨɝɪɚɦɦɵ ɜ ɨɛɪɚɬɧɨɦ ɧɚɩɪɚɜɥɟɧɢɢ, ɬ. ɟ.
ɩɨ ɨɞɧɨɣ ɤɨɦɚɧɞɟ, ɧɨ ɜ ɨɛɪɚɬɧɨɦ ɧɚɩɪɚɜɥɟɧɢɢ;
–
ɩɪɨɫɦɨɬɪ ɢ ɢɡɦɟɧɟɧɢɟ ɫɨɫɬɨɹɧɢɹ ɚɩɩɚɪɚɬɧɵɯ ɪɟɫɭɪɫɨɜ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɜɨ ɜɪɟɦɹ ɩɨɤɨɦɚɧɞɧɨɝɨ ɜɵɩɨɥɧɟɧɢɹ ɩɪɨɝɪɚɦɦɵ.
22

ȽɅȺȼȺ 2. ɄɈɆȺɇȾɕ əɁɕɄȺ ASSEMBLER
5. ɋɢɫɬɟɦɚ ɤɨɦɚɧɞ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ
ɉɪɨɝɪɚɦɦɢɪɨɜɚɧɢɟ ɧɚ ɭɪɨɜɧɟ ɦɚɲɢɧɧɵɯ ɤɨɦɚɧɞ – ɷɬɨ ɦɢɧɢɦɚɥɶɧɵɣ
ɭɪɨɜɟɧɶ, ɧɚ ɤɨɬɨɪɨɦ ɜɨɡɦɨɠɧɨ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɟ ɤɨɦɩɶɸɬɟɪɚ. ɋɢɫɬɟɦɚ
ɦɚɲɢɧɧɵɯ ɤɨɦɚɧɞ ɞɨɥɠɧɚ ɛɵɬɶ ɞɨɫɬɚɬɨɱɧɨɣ ɞɥɹ ɬɨɝɨ, ɱɬɨɛɵ ɪɟɚɥɢɡɨɜɚɬɶ ɬɪɟɛɭɟɦɵɟ ɞɟɣɫɬɜɢɹ, ɜɵɞɚɜɚɹ ɭɤɚɡɚɧɢɹ ɚɩɩɚɪɚɬɭɪɟ ɦɚɲɢɧɵ.
Ʉɚɠɞɚɹ ɦɚɲɢɧɧɚɹ ɤɨɦɚɧɞɚ ɫɨɫɬɨɢɬ ɢɡ ɞɜɭɯ ɱɚɫɬɟɣ: ɨɩɟɪɚɰɢɨɧɧɨɣ ɱɚɫɬɢ, ɨɩɪɟɞɟɥɹɸɳɟɣ, ɱɬɨ ɞɟɥɚɬɶ, ɢ ɨɩɟɪɚɧɞɧɨɣ ɱɚɫɬɢ, ɨɩɪɟɞɟɥɹɸɳɟɣ ɨɛɴɟɤɬɵ ɨɛɪɚɛɨɬɤɢ.
ɦɚɲɢɧɧɭɸ ɤɨɦɚɧɞɭ ɹɜɧɨ ɢ ɧɟɹɜɧɨ ɜɤɥɸɱɟɧɵ ɫɥɟɞɭɸɳɢɟ ɷɥɟɦɟɧɬɵ:
ȼ
1. ɉɨɥɟ ɩɪɟɮɢɤɫɨɜ – ɷɥɟɦɟɧɬ ɤɨɦɚɧɞɵ, ɤɨɬɨɪɵɣ ɭɬɨɱɧɹɟɬ ɥɢɛɨ ɦɨɞɢ-
ɮɢɰɢɪɭɟɬ ɞɟɣɫɬɜɢɟ ɤɨɦɚɧɞɵ ɜ ɫɥɟɞɭɸɳɢɯ ɚɫɩɟɤɬɚɯ:
a. ɡɚɦɟɧɚ ɫɟɝɦɟɧɬɚ, ɟɫɥɢ ɧɟ ɭɞɨɜɥɟɬɜɨɪɹɟɬ ɢɦɟɸɳɢɣɫɹ ɫɟɝɦɟɧɬ ɩɨ
ɭɦɨɥɱɚɧɢɸ;
b. ɢɡɦɟɧɟɧɢɟ ɪɚɡɦɟɪɧɨɫɬɢ ɚɞɪɟɫɚ;
c. ɭɤɚɡɚɧɢɟ ɧɚ ɧɟɨɛɯɨɞɢɦɨɫɬɶ ɩɨɜɬɨɪɟɧɢɹ ɤɨɦɚɧɞɵ.
2. ɉɨɥɟ ɤɨɞɚ ɨɩɟɪɚɰɢɢ – ɨɩɪɟɞɟɥɹɸɳɟɟ ɞɟɣɫɬɜɢɟ ɤɨɦɚɧɞɵ
. Ɉɞɧɨɣ ɢ
ɬɨɣ ɠɟ ɤɨɦɚɧɞɟ ɦɨɝɭɬ ɫɨɨɬɜɟɬɫɬɜɨɜɚɬɶ ɧɟɫɤɨɥɶɤɨ ɤɨɞɨɜ ɨɩɟɪɚɰɢɣ ɜ ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ ɟɟ ɨɩɟɪɚɧɞɨɜ.
3. ɉɨɥɟ ɨɩɟɪɚɧɞɨɜ – ɫɨɞɟɪɠɢɬ ɨɬ ɧɭɥɹ ɞɨ ɞɜɭɯ ɷɥɟɦɟɧɬɨɜ.
Ɉɫɨɛɟɧɧɨɫɬɶ ɦɚɲɢɧɧɵɯ ɤɨɦɚɧɞ ɫɨɫɬɚɜɥɹɟɬ ɬɨ, ɱɬɨ ɨɧɢ ɧɟ ɦɨɝɭɬ ɦɚɧɢɩɭɥɢɪɨɜɚɬɶ ɨɞɧɨɜɪɟɦɟɧɧɨ ɞɜɭɦɹ ɨɩɟɪɚɧɞɚɦɢ, ɧɚɯɨɞɹɳɢɦɢɫɹ ɜ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ. ȼ ɤɨɦɚɧɞɟ ɦɨɝɭɬ ɛɵɬɶ ɢɫɩɨɥɶɡɨɜɚɧɵ: ɨɞɢɧ ɪɟɝɢɫɬɪ ɢɥɢ ɪɟɝɢɫɬɪ ɢ ɧɟɤɨɬɨɪɵɣ ɨɩɟɪɚɧɞ, ɤɨɬɨɪɵɣ ɦɨɠɟɬ ɥɢɛɨ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɧɚɯɨɞɢɬɶɫɹ ɜ ɤɨɦɚɧɞɟ, ɥɢɛɨ ɪɚɫɩɨɥɚɝɚɬɶɫɹ ɜ ɩɚɦɹɬɢ.
ɉɨ ɷɬɨɣ ɩɪɢɱɢɧɟ ɜɨɡɦɨɠɧɵ ɬɨɥɶɤɨ ɫɥɟɞɭɸɳɢɟ ɫɨɱɟɬɚɧɢɹ
ɨɩɟɪɚɧɞɨɜ ɜ
ɤɨɦɚɧɞɟ:
–
ɪɟɝɢɫɬɪ-ɪɟɝɢɫɬɪ;
–
ɪɟɝɢɫɬɪ-ɩɚɦɹɬɶ;
–
ɩɚɦɹɬɶ-ɪɟɝɢɫɬɪ;
–
ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɵɣ ɨɩɟɪɚɧɞ-ɪɟɝɢɫɬɪ;
–
ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɵɣ ɨɩɟɪɚɧɞ-ɩɚɦɹɬɶ.
ɉɪɟɮɢɤɫɵ – ɷɬɨ ɧɟɨɛɹɡɚɬɟɥɶɧɵɟ ɷɥɟɦɟɧɬɵ ɦɚɲɢɧɧɨɣ ɤɨɦɚɧɞɵ, ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɟ ɞɥɹ ɦɨɞɢɮɢɤɚɰɢɢ ɨɩɟɪɚɰɢɢ, ɜɵɩɨɥɧɹɟɦɨɣ ɷɬɨɣ ɤɨɦɚɧɞɨɣ.
ɉɪɟɮɢɤɫ ɡɚɦɟɧɵ ɫɟɝɦɟɧɬɚ – ɜ ɹɜɧɨɣ ɮɨɪɦɟ ɭɤɚɡɵɜɚɟɬ, ɤɚɤɨɣ ɫɟɝɦɟɧɬɧɵɣ ɪɟɝɢɫɬɪ ɢɫɩɨɥɶɡɭɟɬɫɹ ɜ ɞɚɧɧɨɣ ɤɨɦɚɧɞɟ ɞɥɹ ɚɞɪɟɫɚɰɢɢ ɫɬɟɤɚ ɢɥɢ
ɞɚɧɧɵɯ.
ɉɪɟɮɢɤɫ ɪɚɡɪɹɞɧɨɫɬɢ ɚɞɪɟɫɚ – ɭɬɨɱɧɹɟɬ ɪɚɡɪɹɞɧɨɫɬɶ ɚɞɪɟɫɚ 16- ɢɥɢ
32-ɪɚɡɪɹɞɧɵɣ ɚɞɪɟɫ.
23

ɉɪɟɮɢɤɫ ɪɚɡɪɹɞɧɨɫɬɢ ɨɩɟɪɚɧɞɚ – ɭɤɚɡɵɜɚɟɬ ɧɚ ɪɚɡɪɹɞɧɨɫɬɶ ɨɩɟɪɚɧɞɚ, ɫ ɤɨɬɨɪɵɦ ɪɚɛɨɬɚɟɬ ɤɨɦɚɧɞɚ (16- ɢɥɢ 32-ɪɚɡɪɹɞɧɵɣ).
ɉɪɟɮɢɤɫ ɩɨɜɬɨɪɟɧɢɹ ɡɚɰɢɤɥɢɜɚɟɬ ɤɨɦɚɧɞɭ ɞɥɹ ɨɛɪɚɛɨɬɤɢ ɜɫɟɯ ɷɥɟɦɟɧɬɨɜ ɰɟɩɨɱɤɢ. Ⱦɜɚ ɬɢɩɚ ɩɪɟɮɢɤɫɨɜ: ɛɟɡɭɫɥɨɜɧɵɟ ɢ ɭɫɥɨɜɧɵɟ, ɤɨɬɨɪɵɟ
ɩɪɨɜɟɪɹɸɬ ɧɟɤɨɬɨɪɵɟ ɮɥɚɝɢ ɢ ɜ ɪɟɡɭɥɶɬɚɬɟ ɩɪɨɜɟɪɤɢ ɨɫɭɳɟɫɬɜɥɹɸɬ ɞɨɫɪɨɱɧɵɣ ɢɯ ɜɵɯɨɞ ɢɡ ɰɢɤɥɚ.
ɇɚ ɦɢɤɪɨɩɪɨɝɪɚɦɦɧɨɦ ɭɪɨɜɧɟ ɨɩɟɪɚɧɞ ɡɚɞɚɟɬɫɹ ɧɟɹɜɧɨ
. ȼ ɷɬɨɦ ɫɥɭɱɚɟ ɤɨɦɚɧɞɚ ɹɜɧɨ ɧɟ ɫɨɞɟɪɠɢɬ ɨɩɟɪɚɧɞɨɜ, ɚ ɚɥɝɨɪɢɬɦ ɜɵɩɨɥɧɟɧɢɹ ɷɬɨɣ
ɤɨɦɚɧɞɵ ɢɫɩɨɥɶɡɭɟɬ ɧɟɤɨɬɨɪɵɟ ɨɛɴɟɤɬɵ ɩɨ ɭɦɨɥɱɚɧɢɸ (ɪɟɝɢɫɬɪɵ, ɮɥɚɝɢ
eflags).
ɇɟɩɨɫɪɟɞɫɬɜɟɧɧɵɣ ɨɩɟɪɚɧɞ ɡɚɞɚɟɬɫɹ ɜ ɫɚɦɨɣ ɤɨɦɚɧɞɟ. Ɉɩɟɪɚɧɞ ɧɚɯɨɞɢɬɫɹ ɜ ɤɨɞɟ ɤɨɦɚɧɞɵ, ɬ. ɟ. ɹɜɥɹɟɬɫɹ ɟɟ ɱɚɫɬɶɸ. Ⱦɥɹ ɯɪɚɧɟɧɢɹ ɬɚɤɨɝɨ ɨɩɟɪɚɧɞɚ ɜ ɤɨɦɚɧɞɟ ɜɵɞɟɥɹɟɬɫɹ ɩɨɥɟ ɞɥɢɧɨɣ ɞɨ 32-ɯ ɛɢɬ. Ɉɩɟɪɚɧɞ ɦɨɠɟɬ
ɧɚɯɨɞɢɬɶɫɹ ɜ ɨɞɧɨɦ ɢɡ ɪɟɝɢɫɬɪɨɜ. Ɋɟɝɢɫɬɪɨɜɵɟ ɨɩɟɪɚɧɞɵ ɭɤɚɡɵɜɚɸɬɫɹ
ɢɦɟɧɚɦɢ ɪɟɝɢɫɬɪɨɜ (ɬɚɛɥɢɰɚ 1).
Ɍɚɛɥɢɰɚ 1 – ɋɨɨɬɜɟɬɫɬɜɢɟ ɢɦɟɧ ɢ ɪɚɡɦɟɪɧɨɫɬɢ ɪɟɝɢɫɬɪɨɜ
32-ɪɚɡɪɹɞɧɵɟ ɪɟɝɢɫɬɪɵ
EȺX, EBX, EɋX, EDX, ESI, EDI,
ESɊ, EBɊ
16-ɪɚɡɪɹɞɧɵɟ ɪɟɝɢɫɬɪɵ ȺX, BX, ɋX, DX, SI, DI, SɊ, BɊ
8-ɪɚɡɪɹɞɧɵɟ ɪɟɝɢɫɬɪɵ ȺH, ȺL, BH, BL, ɋH, ɋL, DH, DL
ɋɟɝɦɟɧɬɧɵɟ ɪɟɝɢɫɬɪɵ ɋS, DS, SS, ES, FS, GS
Ɉɩɟɪɚɧɞ ɪɚɫɩɨɥɚɝɚɟɬɫɹ ɜ ɩɚɦɹɬɢ ɢ ɩɨɡɜɨɥɹɟɬ ɪɟɚɥɢɡɨɜɚɬɶ ɞɜɚ ɨɫɧɨɜɧɵɯ ɜɢɞɚ ɚɞɪɟɫɚɰɢɢ: ɩɪɹɦɭɸ ɢ ɤɨɫɜɟɧɧɭɸ.
Ɉɩɟɪɚɧɞɨɦ ɹɜɥɹɟɬɫɹ ɬɚɤɠɟ ɩɨɪɬ ɜɜɨɞɚ/ɜɵɜɨɞɚ. Ɇɢɤɪɨɩɪɨɰɟɫɫɨɪ ɩɨɞɞɟɪɠɢɜɚɟɬ ɚɞɪɟɫɧɨɟ ɩɪɨɫɬɪɚɧɫɬɜɨ ɜɜɨɞɚ/ɜɵɜɨɞɚ, ɤɨɬɨɪɨɟ ɢɫɩɨɥɶɡɭɟɬɫɹ ɞɥɹ
ɞɨɫɬɭɩɚ ɤ ɭɫɬɪɨɣɫɬɜɚɦ ɜɜɨɞɚ/ɜɵɜɨɞɚ. ȼ ɤɚɱɟɫɬɜɟ ɢɫɬɨɱɧɢɤɚ ɢɧɮɨɪɦɚɰɢɢ
ɢɥɢ ɩɨɥɭɱɚɬɟɥɹ ɩɪɢɦɟɧɹɸɬ ɪɟɝɢɫɬɪɵ-ɚɤɤɭɦɭɥɹɬɨɪɵ eɚx, ɚx, ɚl.
Ʌɨɝɢɱɟɫɤɢɟ ɤɨɦɚɧɞɵ
1. Ɉɩɟɪɚɰɢɹ ɥɨɝɢɱɟɫɤɨɝɨ ɭɦɧɨɠɟɧɢɹ. Ʉɨɦɚɧɞɚ ɜɵɩɨɥɧɹɟɬ ɩɨɪɚɡɪɹɞɧɨ
ɥɨɝɢɱɟɫɤɭɸ ɨɩɟɪɚɰɢɸ «ɂ», ɤɨɧɴɸɧɤɰɢɸ, &. Ɋɟɡɭɥɶɬɚɬ ɡɚɩɢɫɵɜɚɟɬɫɹ ɧɚ
ɦɟɫɬɨ «ɨɩɟɪɚɧɞ_1».
and ɨɩɟɪɚɧɞ_1, ɨɩɟɪɚɧɞ_2
2. Ɉɩɟɪɚɰɢɹ ɥɨɝɢɱɟɫɤɨɝɨ ɫɥɨɠɟɧɢɹ. Ʉɨɦɚɧɞɚ ɜɵɩɨɥɧɹɟɬ ɩɨɪɚɡɪɹɞɧɨ
ɥɨɝɢɱɟɫɤɭɸ ɨɩɟɪɚɰɢɸ «ɂɅɂ», ɞɢɡɴɸɧɤɰɢɸ, . Ɋɟɡɭɥɶɬɚɬ ɡɚɩɢɫɵɜɚɟɬɫɹ ɧɚ
ɦɟɫɬɨ ɨɩɟɪɚɧɞ_1.
ɨr ɨɩɟɪɚɧɞ_1, ɨɩɟɪɚɧɞ_2
3. Ɉɩɟɪɚɰɢɹ ɢɫɤɥɸɱɚɸɳɟɝɨ «ɂɅɂ». Ɋɟɡɭɥɶɬɚɬ ɧɚ ɦɟɫɬɨ ɨɩɟɪɚɧɞ_1.
xɨr ɨɩɟɪɚɧɞ_1, ɨɩɟɪɚɧɞ
_2
24

4. Ɉɩɟɪɚɰɢɹ «ɉɊɈȼȿɊɂɌɖ». Ʉɨɦɚɧɞɚ ɜɵɩɨɥɧɹɟɬ ɩɨɪɚɡɪɹɞɧɨ ɥɨɝɢɱɟ-
ɫɤɭɸ ɨɩɟɪɚɰɢɸ «ɂ» ɧɚɞ ɛɢɬɚɦɢ ɨɩɟɪɚɬɨɪɨɜ. ɋɨɫɬɨɹɧɢɟ ɨɩɟɪɚɧɞɨɜ ɨɫɬɚɟɬɫɹ ɩɪɟɠɧɢɦ, ɢɡɦɟɧɹɸɬɫɹ ɬɨɥɶɤɨ ɮɥɚɝɢ zf, sf, ɪf, ɱɬɨ ɞɚɟɬ ɜɨɡɦɨɠɧɨɫɬɶ
ɚɧɚɥɢɡɢɪɨɜɚɬɶ ɫɨɫɬɨɹɧɢɟ ɨɬɞɟɥɶɧɵɯ ɛɢɬɨɜ ɨɩɟɪɚɧɞɚ ɛɟɡ ɟɝɨ ɢɡɦɟɧɟɧɢɹ.
test ɨɩɟɪɚɧɞ_1, ɨɩɟɪɚɧɞ_2
5. Ɉɩɟɪɚɰɢɹ ɥɨɝɢɱɟɫɤɨɝɨ ɨɬɪɢɰɚɧɢɹ. Ʉɨɦɚɧɞɚ ɜɵɩɨɥɧɹɟɬ ɩɨɪɚɡɪɹɞɧɨɟ
ɢɧɜɟɪɬɢɪɨɜɚɧɢɟ ɤɚɠɞɨɝɨ ɛɢɬɚ ɨɩɟɪɚɧɞɚ.
nɨt ɨɩɟɪɚɧɞ
Ɏɥɚɝɢ
ɂɫɯɨɞɹ ɢɡ ɨɫɨɛɟɧɧɨɫɬɟɣ ɢɫɩɨɥɶɡɨɜɚɧɢɹ, ɮɥɚɝɢ ɪɟɝɢɫɬɪɚ eflags/flags
ɦɨɠɧɨ ɪɚɡɞɟɥɢɬɶ ɧɚ ɬɪɢ ɝɪɭɩɩɵ:
1. ȼɨɫɟɦɶ ɮɥɚɝɨɜ ɫɨɫɬɨɹɧɢɹ. ɗɬɢ ɮɥɚɝɢ ɦɨɝɭɬ ɢɡɦɟɧɹɬɶ ɫɜɨɟ ɫɨɫɬɨɹ-
ɧɢɟ ɩɨɫɥɟ ɜɵɩɨɥɧɟɧɢɹ ɦɚɲɢɧɧɵɯ ɤɨɦɚɧɞ. Ɏɥɚɝɢ ɪɟɝɢɫɬɪɚ eflags ɨɬɪɚɠɚɸɬ ɨɫɨɛɟɧɧɨɫɬɢ ɪɟɡɭɥɶɬɚɬɚ ɢɫɩɨɥɧɟɧɢɹ ɚɪɢɮɦɟɬɢɱɟɫɤɢɯ ɢɥɢ ɥɨɝɢɱɟɫɤɢɯ
ɨɩɟɪɚɰɢɣ. ɗɬɨ ɩɨɡɜɨɥɹɟɬ ɚɧɚɥɢɡɢɪɨɜɚɬɶ ɫɨɫɬɨɹɧɢɟ ɜɵɱɢɫɥɢɬɟɥɶɧɨɝɨ ɩɪɨɰɟɫɫɚ ɢ ɪɟɚɝɢɪɨɜɚɬɶ ɧɚ ɧɟɝɨ
ɫ ɩɨɦɨɳɶɸ ɤɨɦɚɧɞ ɭɫɥɨɜɧɵɯ ɩɟɪɟɯɨɞɨɜ ɢ ɜɵ-
ɡɨɜɚ ɩɨɞɩɪɨɝɪɚɦɦ.
2. Ɉɞɢɧ ɮɥɚɝ ɭɩɪɚɜɥɟɧɢɹ df (directory flag). Ɉɧ ɢɫɩɨɥɶɡɭɟɬɫɹ ɰɟɩɨɱɟɱ-
ɧɵɦɢ ɤɨɦɚɧɞɚɦɢ. Ɂɧɚɱɟɧɢɟ ɮɥɚɝɚ ɨɩɪɟɞɟɥɹɟɬ ɧɚɩɪɚɜɥɟɧɢɟ ɩɨɷɥɟɦɟɧɬɧɨɣ
ɨɛɪɚɛɨɬɤɢ: ɨɬ ɧɚɱɚɥɚ ɫɬɪɨɤɢ ɤ ɤɨɧɰɭ (df = 0) ɥɢɛɨ, ɧɚɨɛɨɪɨɬ, ɨɬ ɤɨɧɰɚ
ɫɬɪɨɤɢ ɤ ɟɟ ɧɚɱɚɥɭ (df = 1).
3. ɉɹɬɶ ɫɢɫɬɟɦɧɵɯ ɮɥɚɝɨɜ. ɍɩɪɚɜɥɹɸɬ ɜɜɨɞɨɦ/ɜɵɜɨɞɨɦ, ɦɚɫɤɢɪɭɟ-
ɦɵɦɢ ɩɪɟɪɵɜɚɧɢɹɦɢ,
ɨɬɥɚɞɤɨɣ, ɫɢɫɬɟɦɨɣ ɩɟɪɟɤɥɸɱɟɧɢɹ ɦɟɠɞɭ ɡɚɞɚɱɚɦɢ.
.486
.model flat, stdcall
option casemap: none
include /masm32/include/windows.inc
include /masm32/include/user32.inc
include /masm32/include/kernel32.inc
includelib /masm32/lib/user32.lib
includelib /masm32/lib/kernel32.lib
include /masm32/macros/macros.asm
uselib masm32, comctl32, ws2_32
.data
.code
start:
mov eax, 123
25

mov ebx, -90
add eax, ebx
test eax, eax
jz zero
invoke MessageBox, 0, chr$("ȼ eax ɧɟ 0!"), chr$("Info"), 0
jmp lexit
zero:
invoke MessageBox, 0, chr$("ȼ eax 0!"), chr$("Info"), 0
lexit:
invoke ExitProcess, 0
end start
ɇɚ ɪɢɫɭɧɤɟ 2 ɫɢɫɬɟɦɚɬɢɡɢɪɨɜɚɧɵ ɨɫɧɨɜɧɵɟ ɰɟɥɨɱɢɫɥɟɧɧɵɟ ɤɨɦɚɧɞɵ,
ɩɪɢɦɟɧɹɟɦɵɟ ɩɪɢ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɢ ɧɚ ɹɡɵɤɟ ɚɫɫɟɦɛɥɟɪɚ.
Ɋɢɫɭɧɨɤ 2 – ɐɟɥɨɱɢɫɥɟɧɧɵɟ ɚɪɢɮɦɟɬɢɱɟɫɤɢɟ ɤɨɦɚɧɞɵ
26

6. Ʉɨɦɚɧɞɵ ɨɛɦɟɧɚ ɞɚɧɧɵɦɢ
Ʉ ɝɪɭɩɩɟ ɤɨɦɚɧɞ ɩɟɪɟɫɵɥɤɢ ɞɚɧɧɵɯ ɨɬɧɨɫɹɬɫɹ ɫɥɟɞɭɸɳɢɟ:
mov <ɨɩɟɪɚɧɞ ɧɚɡɧɚɱɟɧɢɹ>, <ɨɩɟɪɚɧɞ-ɢɫɬɨɱɧɢɤ>
xchg <ɨɩɟɪɚɧɞ 1>, <ɨɩɟɪɚɧɞ 2>
MOV – ɷɬɨ ɨɫɧɨɜɧɚɹ ɤɨɦɚɧɞɚ ɩɟɪɟɫɵɥɤɢ ɞɚɧɧɵɯ, ɪɟɚɥɢɡɭɸɳɚɹ ɫɚɦɵɟ
ɪɚɡɧɨɨɛɪɚɡɧɵɟ ɜɚɪɢɚɧɬɵ ɩɟɪɟɫɵɥɤɢ. Ɉɬɦɟɬɢɦ ɨɫɨɛɟɧɧɨɫɬɢ ɩɪɢɦɟɧɟɧɢɹ
ɷɬɨɣ ɤɨɦɚɧɞɵ. ɋ ɟɟ ɩɨɦɨɳɶɸ MOV ɧɟɜɨɡɦɨɠɧɨ ɩɟɪɟɫɵɥɚɬɶ ɞɚɧɧɵɟ ɢɡ
ɨɞɧɨɣ ɨɛɥɚɫɬɢ ɩɚɦɹɬɢ ɜ ɞɪɭɝɭɸ. ȼ ɫɥɭɱɚɟ ɧɟɨɛɯɨɞɢɦɨɫɬɢ ɜ ɤɚɱɟɫɬɜɟ ɩɪɨɦɟɠɭɬɨɱɧɨɝɨ ɛɭɮɟɪɚ
ɢɫɩɨɥɶɡɭɸɬ ɥɸɛɨɣ ɞɨɫɬɭɩɧɵɣ ɜ ɞɚɧɧɵɣ ɦɨɦɟɧɬ ɪɟ-
ɝɢɫɬɪ ɨɛɳɟɝɨ ɧɚɡɧɚɱɟɧɢɹ.
ɇɟɜɨɡɦɨɠɧɨ ɡɚɝɪɭɡɢɬɶ ɜ ɫɟɝɦɟɧɬɧɵɣ ɪɟɝɢɫɬɪ ɡɧɚɱɟɧɢɟ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɢɡ ɩɚɦɹɬɢ. Ⱦɥɹ ɷɬɨɝɨ ɬɪɟɛɭɟɬɫɹ ɩɪɨɦɟɠɭɬɨɱɧɵɣ ɨɛɴɟɤɬ, ɧɚɩɪɢɦɟɪ, ɪɟɝɢɫɬɪ ɨɛɳɟɝɨ ɧɚɡɧɚɱɟɧɢɹ ɢɥɢ ɫɬɟɤ.
ɇɟɜɨɡɦɨɠɧɨ ɩɟɪɟɫɥɚɬɶ ɫɨɞɟɪɠɢɦɨɟ ɨɞɧɨɝɨ ɫɟɝɦɟɧɬɧɨɝɨ ɪɟɝɢɫɬɪɚ ɜ
ɞɪɭɝɨɣ ɫɟɝɦɟɧɬɧɵɣ ɪɟɝɢɫɬɪ. ɗɬɨ ɨɛɴɹɫɧɹɟɬɫɹ ɬɟɦ, ɱɬɨ ɜ ɫɢɫɬɟɦɟ ɤɨɦɚɧɞ
ɨɬɫɭɬɫɬɜɭɟɬ
ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɣ ɤɨɞ ɨɩɟɪɚɰɢɢ. Ɉɞɧɚɤɨ ɧɟɨɛɯɨɞɢɦɨɫɬɶ ɜ ɫɨ-
ɜɟɪɲɟɧɢɢ ɬɚɤɨɝɨ ɞɟɣɫɬɜɢɹ ɱɚɫɬɨ ɜɨɡɧɢɤɚɟɬ. ȼɵɩɨɥɧɢɬɶ ɬɚɤɭɸ ɩɟɪɟɫɵɥɤɭ
ɦɨɠɧɨ ɛɥɚɝɨɞɚɪɹ ɢɫɩɨɥɶɡɨɜɚɧɢɸ ɜ ɤɚɱɟɫɬɜɟ ɩɪɨɦɟɠɭɬɨɱɧɵɯ ɪɟɝɢɫɬɪɵ
ɨɛɳɟɝɨ ɧɚɡɧɚɱɟɧɢɹ.
ɂɡɜɟɫɬɟɧ ɞɪɭɝɨɣ ɫɩɨɫɨɛ ɜɵɩɨɥɧɟɧɢɹ ɞɚɧɧɨɣ ɨɩɟɪɚɰɢɢ – ɢɫɩɨɥɶɡɨɜɚɧɢɟ ɫɬɟɤɚ ɢ ɤɨɦɚɧɞ PUSH ɢ POP (ɬɚɛɥɢɰɚ 2).
Ɍɚɛɥɢɰɚ 2 – Ɂɧɚɱɟɧɢɟ ɤɨɦɚɧɞ ɪɚɛɨɬɵ ɫɨ ɫɬɟɤɨɦ
Push ds ɉɨɦɟɫɬɢɬɶ ɡɧɚɱɟɧɢɟ ɪɟɝɢɫɬɪɚ ds ɜ ɫɬɟɤ
Poɪ es Ɂɚɩɢɫɚɬɶ ɜ es ɱɢɫɥɨ ɢɡ ɫɬɟɤɚ
ɋɟɝɦɟɧɬɧɵɣ ɪɟɝɢɫɬɪ CS ɧɟɜɨɡɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɜ ɤɚɱɟɫɬɜɟ ɨɩɟɪɚɧɞɚ ɧɚɡɧɚɱɟɧɢɹ. ȼ ɚɪɯɢɬɟɤɬɭɪɟ ɩɪɨɰɟɫɫɨɪɚ ɩɚɪɚ CS:IP ɫɨɞɟɪɠɢɬ ɚɞɪɟɫ ɤɨɦɚɧɞɵ, ɤɨɬɨɪɚɹ ɞɨɥɠɧɚ ɜɵɩɨɥɧɹɬɶɫɹ ɫɥɟɞɭɸɳɟɣ. ɂɡɦɟɧɟɧɢɟ ɤɨɦɚɧɞɨɣ
MOV ɫɨɞɟɪɠɢɦɨɝɨ ɪɟɝɢɫɬɪɚ CS ɮɚɤɬɢɱɟɫɤɢ ɨɛɨɡɧɚɱɚɟɬ ɨɩɟɪɚɰɢɸ ɩɟɪɟɯɨɞɚ, ɚ ɧɟ ɩɟɪɟɫɵɥɤɢ, ɱɬɨ ɧɟɞɨɩɭɫɬɢɦɨ. ȼ ɫɜɹɡɢ ɫ ɩɪɢɦɟɧɟɧɢɟɦ ɤɨɦɚɧɵ
MOV ɨɬɦɟɬɢɦ: ɩɭɫɬɶ ɜ ɪɟɝɢɫɬɪɟ ȼɏ ɫɨɞɟɪɠɢɬɫɹ
ɚɞɪɟɫ ɧɟɤɨɬɨɪɨɝɨ ɩɨɥɹ,
ɬ. ɟ. ɦɵ ɢɫɩɨɥɶɡɭɟɦ ɤɨɫɜɟɧɧɭɸ ɛɚɡɨɜɭɸ ɚɞɪɟɫɚɰɢɸ. ȿɝɨ ɫɨɞɟɪɠɢɦɨɟ
ɧɟɨɛɯɨɞɢɦɨ ɩɟɪɟɫɥɚɬɶ ɜ ɪɟɝɢɫɬɪ Ⱥɏ, ɬɨ ɩɪɢɦɟɧɹɸɬ ɤɨɦɚɧɞɭ MOV ɫ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɦ ɫɢɧɬɚɤɫɢɫɨɦ:
mɨv ɚx, [bɯ]
Ɍɪɚɧɫɥɹɬɨɪ ɪɟɲɚɟɬ ɡɚɞɚɱɭ ɨ ɬɨɦ, ɱɬɨ ɚɞɪɟɫɭɟɬ ɪɟɝɢɫɬɪ ȼɏ ɜ ɩɚɦɹɬɢ –
ɫɥɨɜɨ ɢɥɢ ɛɚɣɬ. Ɉɛɵɱɧɨ ɜ ɷɬɨɦ ɫɥɭɱɚɟ ɨɧ ɩɪɢɧɢɦɚɟɬ ɪɟɲɟɧɢɟ ɫɚɦ, ɩɨ ɪɚɡɦɟɪɭ ɛɨɥɶɲɟɝɨ ɨɩɟɪɚɧɞɚ, ɧɨ ɦɨɠɟɬ ɢ ɜɵɞɚɬɶ ɩɪɟɞɭɩɪɟɠɞɚɸɳɟɟ ɫɨɨɛɳɟɧɢɟ ɨ ɜɨɡɦɨɠɧɨɦ ɧɟɫɨɜɩɚɞɟɧɢɢ ɬɢɩɨɜ ɨɩɟɪɚɧɞɨɜ.
27

Ⱦɥɹ ɭɬɨɱɧɟɧɢɹ ɚɞɪɟɫɚ ɪɟɝɢɫɬɪɚ ȼɏ ɜ ɩɚɦɹɬɢ – ɛɚɣɬ, ɫɥɨɜɨ ɢɥɢ ɞɜɨɣɧɨɟ ɫɥɨɜɨ ɞɨɩɭɫɬɢɦ ɬɚɤɠɟ, ɱɬɨ ɬɪɟɛɭɟɬɫɹ ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɬɶ ɩɨɥɟ, ɚɞɪɟɫɭ-
ɟɦɨɟ ɪɟɝɢɫɬɪɨɦ ȼɏ, ɡɧɚɱɟɧɢɟɦ 0. Ɉɱɟɜɢɞɧɵɦ ɹɜɥɹɟɬɫɹ ɩɪɢɦɟɧɟɧɢɟ ɨɞɧɨɝɨ
ɢɡ ɪɟɲɟɧɢɣ – ɤɨɦɚɧɞɵ MOV:
mov [bx] ,0
Ɍɪɚɧɫɥɹɬɨɪ ɪɟɲɚɟɬ ɡɚɞɚɱɭ: ɤɚɤɭɸ ɦɚɲɢɧɧɭɸ ɤɨɦɚɧɞɭ ɤɨɧɫɬɪɭɢɪɨ-
ɜɚɬɶ ɞɥɹ ɢɧɢɰɢɚɥɢɡɚɰɢɢ ɛɚɣɬɚ, ɫɥɨɜɚ, ɞɜɨɣɧɨɝɨ ɫɥɨɜɚ.
ȼɨ ɜɫɟɯ ɫɥɭɱɚɹɯ ɧɟɨɛɯɨɞɢɦɨ
ɭɬɨɱɧɹɬɶ ɬɢɩ ɢɫɩɨɥɶɡɭɟɦɵɯ ɨɩɟɪɚɧɞɨɜ.
Ⱦɥɹ ɷɬɨɝɨ ɫɭɳɟɫɬɜɭɟɬ ɫɩɟɰɢɚɥɶɧɵɣ ɨɩɟɪɚɬɨɪ ɚɫɫɟɦɛɥɟɪɚ ɊTR. ɉɪɢɜɟɞɟɧɧɵɟ ɪɚɧɟɟ ɤɨɦɚɧɞɵ ɦɨɠɧɨ ɡɚɩɢɫɚɬɶ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ:
–
mov ax, wɨrd ɪtr [bx]; ɟɫɥɢ [bx] ɚɞɪɟɫɭɟɬ ɫɥɨɜɨ ɜ ɩɚɦɹɬɢ;
–
inc byte ptr [bx]; ɟɫɥɢ [bx] ɚɞɪɟɫɭɟɬ ɛɚɣɬ ɜ ɩɚɦɹɬɢ;
–
dec dword ptr [bx]; ɟɫɥɢ [bɯ] ɚɞɪɟɫɭɟɬ ɞɜɨɣɧɨɟ ɫɥɨɜɨ ɜ ɩɚɦɹɬɢ;
–
mov word ptr [bx], 0; ɟɫɥɢ [bɯ] ɚɞɪɟɫɭɟɬ ɫɥɨɜɨ ɜ ɩɚɦɹɬɢ.
Ɇɨɠɧɨ ɪɟɤɨɦɟɧɞɨɜɚɬɶ ɢɫɩɨɥɶɡɨɜɚɬɶ ɨɩɟɪɚɬɨɪ ɊTR ɜɨ ɜɫɟɯ ɫɨɦɧɢɬɟɥɶɧɵɯ ɨɬɧɨɫɢɬɟɥɶɧɨ ɫɨɝɥɚɫɨɜɚɧɢɹ ɪɚɡɦɟɪɨɜ ɨɩɟɪɚɧɞɨɜ ɫɥɭɱɚɹɯ. ɗɬɨɬ
ɨɩɟɪɚɬɨɪ ɬɚɤɠɟ ɧɟɨɛɯɨɞɢɦɨ ɩɪɢɦɟɧɹɬɶ, ɤɨɝɞɚ ɬɪɟɛɭɟɬɫɹ ɩɪɢɧɭɞɢɬɟɥɶɧɨ
ɢɡɦɟɧɢɬɶ ɪɚɡɦɟɪɧɨɫɬɶ ɨɩɟɪɚɧɞɨɜ. ɇɟɫɦɨɬɪɹ ɧɚ ɬɨ, ɱɬɨ ɩɨɥɟ flɪ ɢɦɟɟɬ ɬɢɩ
WɈRD, ɦɵ ɫɨɨɛɳɚɟɦ ɚɫɫɟɦɛɥɟɪɭ ɨ ɬɨɦ, ɱɬɨ ɩɨɥɟ ɧɭɠɧɨ ɬɪɚɤɬɨɜɚɬɶ ɤɚɤ
ɛɚɣɬɨɜɨɟ, ɢ ɡɚɫɬɚɜɥɹɟɦ ɜɵɱɢɫɥɢɬɶ ɡɧɚɱɟɧɢɟ
ɷɮɮɟɤɬɢɜɧɨɝɨ ɚɞɪɟɫɚ ɜɬɨɪɨɝɨ
ɨɩɟɪɚɧɞɚ ɤɚɤ ɫɦɟɳɟɧɢɟ flɪ ɩɥɸɫ ɟɞɢɧɢɰɚ. Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɩɨɥɭɱɚɟɦ ɞɨɫɬɭɩ ɤɨ ɜɬɨɪɨɦɭ ɛɚɣɬɭ ɩɨɥɹ flɪ. Ⱦɥɹ ɞɜɭɧɚɩɪɚɜɥɟɧɧɨɣ ɩɟɪɟɫɵɥɤɢ ɞɚɧɧɵɯ
ɩɪɢɦɟɧɹɸɬ ɤɨɦɚɧɞɭ XɋHG ɢɥɢ ɢɫɩɨɥɶɡɭɸɬ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɢɡ ɧɟɫɤɨɥɶɤɢɯ ɤɨɦɚɧɞ MɈV. Ɉɞɧɚɤɨ ɷɬɚ ɨɩɟɪɚɰɢɹ ɨɛɦɟɧɚ ɩɪɢɦɟɧɹɟɬɫɹ ɞɨɜɨɥɶɧɨ ɱɚɫɬɨ, ɩɨɷɬɨɦɭ ɪɚɡɪɚɛɨɬɱɢɤɢ ɫɢɫɬɟɦɵ ɤɨɦɚɧɞ ɩɪɨɰɟɫɫɨɪɚ
ɩɨɫɱɢɬɚɥɢ
ɧɭɠɧɵɦ ɜɜɟɫɬɢ ɨɬɞɟɥɶɧɭɸ ɤɨɦɚɧɞɭ ɨɛɦɟɧɚ – XɋHG. ȿɫɬɟɫɬɜɟɧɧɨ, ɱɬɨ
ɨɩɟɪɚɧɞɵ ɞɨɥɠɧɵ ɢɦɟɬɶ ɨɞɢɧ ɬɢɩ. ɇɟ ɞɨɩɭɫɤɚɟɬɫɹ (ɤɚɤ ɢ ɞɥɹ ɜɫɟɯ ɤɨɦɚɧɞ
ɚɫɫɟɦɛɥɟɪɚ) ɧɚɩɪɹɦɭɸ ɨɛɦɟɧɢɜɚɬɶ ɦɟɠɞɭ ɫɨɛɨɣ ɫɨɞɟɪɠɢɦɨɟ ɞɜɭɯ ɹɱɟɟɤ
ɩɚɦɹɬɢ. ɇɚɩɪɢɦɟɪ,
ɨɛɦɟɧɹɬɶ ɫɨɞɟɪɠɢɦɨɟ ɪɟɝɢɫɬɪɨɜ ɚɯ ɢ bɯ
xchg ɚɯ, bɯ
ɨɛɦɟɧɹɬɶ ɫɨɞɟɪɠɢɦɨɟ ɪɟɝɢɫɬɪɚ ɚɯ ɢ ɫɥɨɜɚ ɜ ɩɚɦɹɬɢ ɩɨ ɚɞɪɟɫɭ
ɜ [si]
xchg ɚx, wɨrd ɪtr [si]
ȼɜɨɞ/ɜɵɜɨɞ ɜ ɩɨɪɬ
ɋɢɫɬɟɦɚ ɜɜɨɞɚ/ɜɵɜɨɞɚ, ɬ. ɟ. ɤɨɦɩɥɟɤɫ ɫɪɟɞɫɬɜ ɨɛɦɟɧɚ ɢɧɮɨɪɦɚɰɢɟɣ ɫ
ɜɧɟɲɧɢɦɢ ɭɫɬɪɨɣɫɬɜɚɦɢ, ɹɜɥɹɟɬɫɹ ɜɚɠɧɟɣɲɟɣ ɱɚɫɬɶɸ ɚɪɯɢɬɟɤɬɭɪɵ ɩɪɨɰɟɫɫɨɪɚ ɢ ɦɚɲɢɧɵ ɜ ɰɟɥɨɦ. Ʉ ɫɢɫɬɟɦɟ ɜɜɨɞɚ-ɜɵɜɨɞɚ ɦɨɠɧɨ ɨɬɧɟɫɬɢ ɫɩɨɫɨɛɵ ɩɨɞɤɥɸɱɟɧɢɹ ɤ ɫɢɫɬɟɦɧɨɣ ɲɢɧɟ ɪɚɡɥɢɱɧɨɝɨ ɨɛɨɪɭɞɨɜɚɧɢɹ ɢ ɩɪɨɰɟɞɭɪɵ ɜɡɚɢɦɨɞɟɣɫɬɜɢɹ ɩɪɨɰɟɫɫɨɪɚ ɫ ɷɬɢɦ ɨɛɨɪɭɞɨɜɚɧɢɟɦ, ɚ ɬɚɤɠɟ ɤɨɦɚɧɞɵ
ɩɪɨɰɟɫɫɨɪɚ, ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɟ ɞɥɹ ɨɛɦɟɧɚ ɞɚɧɧɵɦɢ ɫ ɜɧɟɲɧɢɦɢ ɭɫɬɪɨɣ-
28

ɫɬɜɚɦɢ. ɇɟɩɪɟɪɵɜɧɨɟ ɫɨɜɟɪɲɟɧɫɬɜɨɜɚɧɢɟ ɬɟɯɧɨɥɨɝɢɱɟɫɤɨɝɨ ɩɪɨɰɟɫɫɚ
ɩɪɨɢɡɜɨɞɫɬɜɚ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɨɜ ɢ ɧɚɩɪɚɜɥɟɧɢɟ ɧɚ ɦɚɤɫɢɦɚɥɶɧɨɟ ɩɨɜɵɲɟɧɢɟ ɩɪɨɢɡɜɨɞɢɬɟɥɶɧɨɫɬɢ ɜɵɱɢɫɥɢɬɟɥɶɧɨɣ ɫɢɫɬɟɦɵ ɩɪɢɜɟɥɢ ɤ ɫɭɳɟɫɬɜɟɧɧɨɦɭ ɭɫɥɨɠɧɟɧɢɸ ɜɧɭɬɪɟɧɧɟɣ ɨɪɝɚɧɢɡɚɰɢɢ ɤɨɦɩɶɸɬɟɪɨɜ: ɭɜɟɥɢɱɟɧɢɸ ɪɚɡɪɹɞɧɨɫɬɢ ɲɢɧ, ɩɨɹɜɥɟɧɢɸ ɜɧɭɬɪɟɧɧɢɯ ɛɵɫɬɪɨɞɟɣɫɬɜɭɸɳɢɯ ɦɚɝɢɫɬɪɚɥɟɣ ɨɛɦɟɧɚ ɞɚɧɧɵɦɢ, ɢɫɩɨɥɶɡɨɜɚɧɢɸ ɤɷɲ-ɛɭɮɟɪɨɜ ɞɥɹ ɭɫɤɨɪɟɧɢɹ
ɩɪɨɰɟɫɫɚ ɨɛɦɟɧɚ ɫ ɩɚɦɹɬɶɸ ɢ ɞɢɫɤɚɦɢ. ȿɫɥɢ ɨɬɜɥɟɱɶɫɹ ɨɬ ɜɚɠɧɵɯ, ɫ
ɬɨɱɤɢ
ɡɪɟɧɢɹ ɩɪɨɢɡɜɨɞɢɬɟɥɶɧɨɫɬɢ, ɧɨ ɧɟɫɭɳɟɫɬɜɟɧɧɵɯ ɞɥɹ ɩɪɨɝɪɚɦɦɢɫɬɚ ɞɟɬɚɥɟɣ, ɬɨ ɥɨɝɢɱɟɫɤɭɸ ɫɯɟɦɭ ɫɨɜɪɟɦɟɧɧɨɝɨ ɤɨɦɩɶɸɬɟɪɚ ɦɨɠɧɨ ɩɪɟɞɫɬɚɜɢɬɶ
ɬɪɚɞɢɰɢɨɧɧɵɦ ɨɛɪɚɡɨɦ ɜ ɜɢɞɟ ɫɢɫɬɟɦɧɨɣ ɲɢɧɵ (ɦɚɝɢɫɬɪɚɥɢ), ɤ ɤɨɬɨɪɨɣ
ɩɨɞɤɥɸɱɚɸɬɫɹ ɫɚɦ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ ɢ ɜɫɟ ɭɫɬɪɨɣɫɬɜɚ ɤɨɦɩɶɸɬɟɪɚ.
ɋɢɫɬɟɦɧɚɹ ɲɢɧɚ ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɧɚɛɨɪ ɥɢɧɢɣ – ɩɪɨɜɨɞɨɜ, ɤ ɤɨɬɨɪɵɦ ɟɞɢɧɨɨɛɪɚɡɧɨ ɩɨɞɤɥɸɱɚɸɬɫɹ ɜɫɟ ɭɫɬɪɨɣɫɬɜɚ ɤɨɦɩɶɸɬɟɪɚ. ȼ ɛɨɥɟɟ
ɲɢɪɨɤɨɦ
ɡɧɚɱɟɧɢɢ ɜ ɩɨɧɹɬɢɟ «ɫɢɫɬɟɦɧɚɹ ɲɢɧɚ» ɫɥɟɞɭɟɬ ɜɤɥɸɱɢɬɶ ɷɥɟɤɬɪɢɱɟɫɤɢɟ ɢ ɥɨɝɢɱɟɫɤɢɟ ɯɚɪɚɤɬɟɪɢɫɬɢɤɢ ɫɢɝɧɚɥɨɜ, ɞɟɣɫɬɜɭɸɳɢɯ ɧɚ ɥɢɧɢɹɯ ɲɢɧɵ, ɢɯ ɧɚɡɧɚɱɟɧɢɟ, ɚ ɬɚɤɠɟ ɩɪɚɜɢɥɚ ɢɯ ɜɡɚɢɦɨɞɟɣɫɬɜɢɹ ɩɪɢ ɜɵɩɨɥɧɟɧɢɢ ɪɚɡɥɢɱɧɵɯ ɨɩɟɪɚɰɢɣ ɧɚ ɲɢɧɟ – ɩɪɨɬɨɤɨɥɵ ɨɛɦɟɧɚ ɢɧɮɨɪɦɚɰɢɟɣ.
ɋɢɝɧɚɥɵ, ɪɚɫɩɪɨɫɬɪɚɧɹɸɳɢɟɫɹ ɩɨ ɲɢɧɟ, ɞɨɫɬɭɩɧɵ ɜɫɟɦ ɩɨɞɤɥɸɱɟɧɧɵɦ ɤ
ɧɟɣ ɭɫɬɪɨɣɫɬɜɚɦ, ɢ ɜ ɡɚɞɚɱɭ ɤɚɠɞɨɝɨ ɢɡ ɧɢɯ
ɜɯɨɞɹɬ ɜɵɛɨɪ ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɯ ɟɦɭ ɫɢɝɧɚɥɨɜ ɢ ɨɛɟɫɩɟɱɟɧɢɟ ɪɟɚɤɰɢɢ ɧɚ ɧɢɯ, ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɣ ɩɪɨɬɨɤɨɥɭ ɨɛɦɟɧɚ. ɉɪɨɰɟɫɫɨɪ ɫɜɹɡɚɧ ɫ ɫɢɫɬɟɦɧɨɣ ɲɢɧɨɣ ɛɨɥɶɲɢɦ ɤɨɥɢɱɟɫɬɜɨɦ
ɥɢɧɢɣ ɫɜɹɡɢ (ɩɪɚɤɬɢɱɟɫɤɢ ɜɫɟɦɢ ɜɵɜɨɞɚɦɢ), ɨɫɬɚɧɨɜɢɦɫɹ ɧɚ ɥɢɧɢɹɯ ɬɪɟɯ
ɤɚɬɟɝɨɪɢɣ: ɧɚɛɨɪ ɥɢɧɢɣ ɚɞɪɟɫɨɜ, ɧɚɛɨɪ ɥɢɧɢɣ ɞɚɧɧɵɯ ɢ ɨɞɢɧ ɢɡ ɫɢɝɧɚɥɨɜ
ɭɩɪɚɜɥɟɧɢɹ. ɉɨɫɥɟɞɧɢɣ ɫɢɝɧɚɥ ɫɨɞɟɪɠɢɬɫɹ ɬɨɥɶɤɨ ɫɪɟɞɢ ɜɵɯɨɞɧɵɯ ɫɢɝɧɚɥɨɜ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ. ɉɪɨɰɟɫɫɨɪ ɞɥɹ ɡɚɩɢɫɢ ɞɚɧɧɵɯ ɩɨ ɧɟɤɨɬɨɪɨɦɭ ɚɞɪɟɫɭ ɜ ɩɚɦɹɬɢ ɜɵɫɬɚɜɥɹɟɬ ɧɚ ɥɢɧɢɢ ɚɞɪɟɫɨɜ ɬɪɟɛɭɟɦɵɣ ɚɞɪɟɫ, ɚ ɧɚ ɥɢɧɢɢ
ɞɚɧɧɵɯ – ɬɪɟɛɭɟɦɵɟ ɞɚɧɧɵɟ. ɍɫɬɪɨɣɫɬɜɨ ɭɩɪɚɜɥɟɧɢɹ ɩɚɦɹɬɶɸ ɪɚɫɲɢɮɪɨɜɵɜɚɟɬ ɩɨɫɬɭɩɢɜɲɢɣ ɚɞɪɟɫ, ɟɫɥɢ ɨɧ ɩɪɢɧɚɞɥɟɠɢɬ ɩɚɦɹɬɢ, ɩɪɢɧɢɦɚɟɬ ɫ ɥɢɧɢɣ ɞɚɧɧɵɯ ɩɨɫɬɭɩɢɜɲɢɟ ɫɜɟɞɟɧɢɹ ɢ ɡɚɧɨɫɢɬ ɢɯ ɜ ɫɨɨɬɜɟɬɫɬɜɭɸɳɭɸ
ɹɱɟɣɤɭ ɩɚɦɹɬɢ. Ɉɩɢɫɚɧɧɚɹ ɩɪɨɰɟɞɭɪɚ
ɨɬɪɚɠɚɟɬ ɜɵɩɨɥɧɟɧɢɟ ɩɪɨɰɟɫɫɨɪɨɦ
ɤɨɦɚɧɞɵ ɬɢɩɚ:
mɨv mem, ȺX,
ɝɞɟ mem – ɫɢɦɜɨɥɢɱɟɫɤɨɟ ɨɛɨɡɧɚɱɟɧɢɟ ɹɱɟɣɤɢ ɩɚɦɹɬɢ, ɩɪɢɧɚɞɥɟɠɚɳɟɣ
ɫɟɝɦɟɧɬɭ ɞɚɧɧɵɯ ɩɪɨɝɪɚɦɦɵ. ȿɫɥɢ ɩɪɨɰɟɫɫɨɪ, ɜɵɩɨɥɧɹɹ ɤɨɦɚɧɞɭ ɬɢɩɚ:
mɨv ȺX, mem,
ɞɨɥɠɟɧ ɩɪɨɱɢɬɚɬɶ ɞɚɧɧɵɟ ɢɡ ɩɚɦɹɬɢ, ɨɧ ɜɵɫɬɚɜɥɹɟɬ ɧɚ ɥɢɧɢɢ ɚɞɪɟɫɨɜ ɬɪɟɛɭɟɦɵɣ ɚɞɪɟɫ ɢ ɨɠɢɞɚɟɬ ɩɨɫɬɭɩɥɟɧɢɹ ɫɜɟɞɟɧɢɣ. ɍɫɬɪɨɣɫɬɜɨ ɭɩɪɚɜɥɟɧɢɹ
ɩɚɦɹɬɶɸ ɩɨɫɥɟ ɪɚɫɲɢɮɪɨɜɤɢ ɩɨɫɬɭɩɢɜɲɟɝɨ ɩɨ ɥɢɧɢɢ ɚɞɪɟɫɚ, ɭɛɟɞɢɜɲɢɫɶ
ɜ ɟɝɨ ɧɚɥɢɱɢɢ, ɨɬɵɫɤɢɜɚɟɬ ɜ ɩɚɦɹɬɢ ɬɪɟɛɭɟɦɭɸ ɹɱɟɣɤɭ, ɫɱɢɬɵɜɚɟɬ ɢɡ ɧɟɟ
ɫɜɟɞɟɧɢɹ ɢ ɜɵɫɬɚɜɥɹɟɬ ɢɯ ɧɚ ɥɢɧɢɸ ɞɚɧɧɵɯ. ɉɪɨɰɟɫɫɨɪ ɫɧɢɦɚɟɬ ɢɯ ɫ ɲɢ-
29

ɧɵ ɢ ɨɬɩɪɚɜɥɹɟɬ ɜ ɭɤɚɡɚɧɧɵɣ ɜ ɤɨɦɚɧɞɟ ɨɩɟɪɚɧɞ (ɜ ɞɚɧɧɨɦ ɫɥɭɱɚɟ ɜ ɪɟɝɢɫɬɪ Ⱥɏ).
Ɉɩɢɫɚɧɧɵɟ ɩɪɨɰɟɞɭɪɵ ɡɚɩɢɫɢ ɢ ɱɬɟɧɢɹ ɫɩɪɚɜɟɞɥɢɜɵ ɧɟ ɬɨɥɶɤɨ ɩɨ ɨɬɧɨɲɟɧɢɢ ɤ ɩɚɦɹɬɢ. Ⱦɥɹ ɜɫɟɯ ɨɫɬɚɥɶɧɵɯ ɭɫɬɪɨɣɫɬɜ ɤɨɦɩɶɸɬɟɪɚ ɨɧɢ ɫɨɜɩɚɞɚɸɬ. Ɂɚ ɤɚɠɞɵɦ ɭɫɬɪɨɣɫɬɜɨɦ ɡɚɤɪɟɩɥɟɧɚ ɨɩɪɟɞɟɥɟɧɧɚɹ ɝɪɭɩɩɚ ɚɞɪɟɫɨɜ,
ɧɚ ɤɨɬɨɪɵɟ ɨɧɨ ɞɨɥɠɧɨ ɨɬɡɵɜɚɬɶɫɹ. ɍɫɬɪɨɣɫɬɜɨ, ɨɛɧɚɪɭɠɢɜ ɫɜɨɣ
ɚɞɪɟɫ ɧɚ
ɦɚɝɢɫɬɪɚɥɢ, ɜ ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ ɡɚɞɚɧɧɨɝɨ ɩɪɨɰɟɫɫɨɪɨɦ ɧɚɩɪɚɜɥɟɧɢɹ ɩɟɪɟɞɚɱɢ ɞɚɧɧɵɯ ɜɵɩɨɥɧɹɟɬ ɨɞɧɨ ɢɡ ɫɥɟɞɭɸɳɢɯ ɞɟɣɫɬɜɢɣ: ɥɢɛɨ ɫɱɢɬɵɜɚɟɬ ɫ
ɦɚɝɢɫɬɪɚɥɢ ɩɨɫɬɭɩɢɜɲɢɟ ɞɚɧɧɵɟ, ɥɢɛɨ, ɧɚɨɛɨɪɨɬ, ɭɫɬɚɧɚɜɥɢɜɚɟɬ ɢɦɟɸɳɢɟɫɹ ɜ ɧɟɦ ɞɚɧɧɵɟ ɧɚ ɦɚɝɢɫɬɪɚɥɶ.
Ⱥɧɚɥɨɝɢɱɧɚɹ ɫɢɬɭɚɰɢɹ ɧɚɛɥɸɞɚɟɬɫɹ ɫɨ ɦɧɨɝɢɦɢ ɞɪɭɝɢɦɢ ɭɫɬɪɨɣɫɬɜɚɦɢ ɤɨɦɩɶɸɬɟɪɚ. ɇɚɩɪɢɦɟɪ, ɤɨɧɬɪɨɥɥɟɪ ɩɪɟɪɵɜɚɧɢɣ, ɫɥɭɠɚɳɢɣ ɞɥɹ ɨɛɴɟɞɢɧɟɧɢɹ ɫɢɝɧɚɥɨɜ
ɩɪɟɪɵɜɚɧɢɣ ɨɬ ɜɫɟɯ ɭɫɬɪɨɣɫɬɜ ɤɨɦɩɶɸɬɟɪɚ ɢ ɧɚɩɪɚɜɥɟɧɢɹ ɢɯ ɧɚ ɟɞɢɧɫɬɜɟɧɧɵɣ ɜɯɨɞ ɩɪɟɪɵɜɚɧɢɹ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ, ɭɩɪɚɜɥɹɟɬɫɹ ɱɟɪɟɡ ɞɜɚ ɚɞɪɟɫɚ. ɉɨɫɤɨɥɶɤɭ ɜ ɫɨɫɬɚɜ ɦɚɲɢɧɵ ɜɫɟɝɞɚ ɜɤɥɸɱɚɸɬ ɞɜɚ
ɤɨɧɬɪɨɥɥɟɪɚ, ɞɥɹ ɧɢɯ ɜɵɞɟɥɹɸɬɫɹ ɞɜɟ ɩɚɪɵ ɚɞɪɟɫɨɜ. ȼɨ ɜɫɟɯ ɤɨɦɩɶɸɬɟɪɚɯ
ɬɢɩɚ IBM Ɋɋ ɤɨɧɬɪɨɥɥɟɪɚɦ ɩɪɟɪɵɜɚɧɢɣ ɧɚɡɧɚɱɚɸɬɫɹ ɚɞɪɟɫɚ 20h-21h ɢ
Ⱥ0h-Ⱥlh, ɤɨɬɨɪɵɟ ɨɞɧɨɜɪɟɦɟɧɧɨ ɨɬɜɟɱɚɸɬ ɧɟɤɨɬɨɪɵɦ ɛɚɣɬɚɦ
ɨɩɟɪɚɬɢɜɧɨɣ
ɩɚɦɹɬɢ.
ɉɪɨɝɪɚɦɦɧɨɟ ɪɚɡɞɟɥɟɧɢɟ ɭɫɬɪɨɣɫɬɜ ɪɟɚɥɢɡɭɟɬɫɹ ɫ ɩɨɦɨɳɶɸ ɞɜɭɯ
ɧɚɛɨɪɨɜ ɤɨɦɚɧɞ ɩɪɨɰɟɫɫɨɪɚ – ɞɥɹ ɩɚɦɹɬɢ ɢ ɞɥɹ ɭɫɬɪɨɣɫɬɜ ɜɜɨɞɚ/ɜɵɜɨɞɚ.
ȼ ɩɟɪɜɭɸ ɝɪɭɩɩɭ ɜɯɨɞɹɬ ɩɪɚɤɬɢɱɟɫɤɢ ɜɫɟ ɤɨɦɚɧɞɵ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ, ɫ
ɩɨɦɨɳɶɸ ɤɨɬɨɪɵɯ ɦɨɠɧɨ ɨɛɪɚɬɢɬɶɫɹ ɩɨ ɬɨɦɭ ɢɥɢ ɢɧɨɦɭ ɚɞɪɟɫɭ: ɩɟɪɟɫɵɥɤɢ
mov ɢ movs, ɚɪɢɮɦɟɬɢɱɟɫɤɢɯ ɞɟɣɫɬɜɢɣ add, mul ɢ div, ɫɞɜɢɝɨɜ rol, ror, sal
ɢ sar, ɚɧɚɥɢɡɚ ɫɨɞɟɪɠɢɦɨɝɨ ɛɚɣɬɚ ɢɥɢ ɫɥɨɜɚ test ɢ ɦɧɨɝɢɟ ɞɪɭɝɢɟ. Ɏɚɤɬɢɱɟɫɤɢ ɜ ɩɟɪɜɭɸ ɝɪɭɩɩɭ ɤɨɦɚɧɞɵ ɜɯɨɞɢɬ ɛɨɥɶɲɢɧɫɬɜɨ ɤɨɦɚɧɞ ɩɪɨɰɟɫɫɨɪɚ.
ȼɬɨɪɭɸ ɝɪɭɩɩɭ ɨɛɪɚɡɭɸɬ ɫɩɟɰɢɮɢɱɟɫɤɢɟ ɚɫɫɟɦɛɥɟɪɧɵɟ ɤɨɦɚɧɞɵ ɜɜɨɞɚ/
ɜɵɜɨɞɚ. ȼ Ɇɉ 8086 ɜɫɟɝɨ ɞɜɟ ɤɨɦɚɧɞɵ: ɜɜɨɞɚ in ɢ ɜɵɜɨɞɚ out. Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɩɪɢ ɨɛɪɚɳɟɧɢɢ ɤ ɩɚɦɹɬɢ ɢɥɢ ɤ ɜɢɞɟɨɛɭɮɟɪɭ ɢɧɠɟɧɟɪ-
ɩɪɨɝɪɚɦɦɢɫɬ
ɦɨɠɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶ ɜɫɟ ɩɨɞɯɨɞɹɳɢɟ ɩɨ ɫɦɵɫɥɭ ɤɨɦɚɧɞɵ ɩɪɨɰɟɫɫɨɪɚ. ɉɪɢ
ɷɬɨɦ, ɪɚɛɨɬɚɹ, ɧɚɩɪɢɦɟɪ, ɫ ɜɢɞɟɨɛɭɮɟɪɨɦ, ɦɨɠɧɨ ɧɟ ɬɨɥɶɤɨ ɡɚɫɵɥɚɬɶ ɜ ɧɟɝɨ (ɢɥɢ ɩɨɥɭɱɚɬɶ ɢɡ ɧɟɝɨ) ɞɚɧɧɵɟ, ɧɨ ɢ ɜɵɩɨɥɧɹɬɶ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɜ ɧɟɦ
ɥɸɛɵɟ ɚɪɢɮɦɟɬɢɱɟɫɤɢɟ, ɥɨɝɢɱɟɫɤɢɟ ɢ ɞɪɭɝɢɟ ɨɩɟɪɚɰɢɢ. Ɉɛɪɚɳɚɬɶɫɹ ɤ
ɤɨɧɬɪɨɥɥɟɪɚɦ ɬɟɯ ɢɥɢ ɢɧɵɯ ɭɫɬɪɨɣɫɬɜ (ɤ ɜɢɞɟɨɚɞɚɩɬɟɪɭ ɜ ɬɨɦ ɱɢɫɥɟ
) ɞɨ-
ɩɭɫɬɢɦɨ ɬɨɥɶɤɨ ɫ ɩɨɦɨɳɶɸ ɞɜɭɯ ɤɨɦɚɧɞ – in ɢ out.
ɉɪɨɜɟɞɟɧɢɟ ɚɪɢɮɦɟɬɢɱɟɫɤɢɯ ɨɩɟɪɚɰɢɣ ɢɥɢ ɚɧɚɥɢɡɚ ɞɚɧɧɵɯ ɜ ɭɫɬɪɨɣ-
ɫɬɜɟ ɧɟɜɨɡɦɨɠɧɨ. ɇɟɨɛɯɨɞɢɦɨ ɫɧɚɱɚɥɚ ɩɪɨɱɢɬɚɬɶ ɜ ɩɪɨɰɟɫɫɨɪɟ ɞɚɧɧɵɟ ɢɡ
ɜɧɟɲɧɟɝɨ ɭɫɬɪɨɣɫɬɜɚ ɢ ɥɢɲɶ ɡɚɬɟɦ ɜɵɩɨɥɧɹɬɶ ɧɚɞ ɧɢɦ ɬɪɟɛɭɟɦɭɸ ɨɩɟɪɚɰɢɸ. ɇɚɥɢɱɢɟ ɞɜɭɯ ɤɚɬɟɝɨɪɢɣ ɚɞɪɟɫɨɜ ɭɫɬɪɨɣɫɬɜ ɫɜɢɞɟɬɟɥɶɫɬɜɭɟɬ ɨ ɫɭɳɟɫɬɜɨɜɚɧɢɢ ɞɜɭɯɚɞɪɟɫɧɵɯ ɩɪɨɫɬɪɚɧɫɬɜ:
30
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
