Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессоры. Учебник
.pdf
–
ɩɪɨɫɬɪɚɧɫɬɜɚ ɩɚɦɹɬɢ, ɤɭɞɚ ɜɯɨɞɹɬ ɩɚɦɹɬɶ, ɚ ɬɚɤɠɟ ɜɢɞɟɨɛɭɮɟɪɵ ɢ
ɉɁɍ;
–
ɩɪɨɫɬɪɚɧɫɬɜɚ ɜɜɨɞɚ/ɜɵɜɨɞɚ (ɩɪɨɫɬɪɚɧɫɬɜɚ ɩɨɪɬɨɜ), ɤɭɞɚ ɜɤɥɸɱɟɧɵ
ɚɞɪɟɫɚ ɨɫɬɚɥɶɧɨɣ ɚɩɩɚɪɚɬɭɪɵ ɤɨɦɩɶɸɬɟɪɚ.
ȿɫɥɢ ɨɛɴɟɦ ɚɞɪɟɫɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɩɚɦɹɬɢ ɫɨɫɬɚɜɥɹɟɬ 1Ɇɛɚɣɬ (ɚ ɜ
ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɟ – 4 Ƚɛɚɣɬɚ), ɬɨ ɚɞɪɟɫɧɨɟ ɩɪɨɫɬɪɚɧɫɬɜɨ ɩɨɪɬɨɜ ɝɨɪɚɡɞɨ ɦɟɧɶɲɟ – ɟɝɨ ɪɚɡɦɟɪ ɫɨɫɬɚɜɥɹɟɬ ɜɫɟɝɨ 64 Ʉɛɚɣɬɚ. Ɏɨɪɦɚɬɨɦ ɤɨɦɚɧɞ
ɜɜɨɞɚ/ɜɵɜɨɞɚ ɨɩɪɟɞɟɥɹɟɬɫɹ ɷɬɚ ɜɟɥɢɱɢɧɚ. Ⱥɞɪɟɫ ɫɚɦɨɝɨ ɚɞɪɟɫɭɟɦɨɝɨ ɩɨɪɬɚ
ɞɨɥɠɟɧ ɛɵɬɶ ɡɚɩɢɫɚɧ ɜ ɪɟɝɢɫɬɪ DX (ɢ ɧɢ ɜ ɤɚɤɨɣ ɞɪɭɝɨɣ), ɢ, ɬɚɤɢɦ ɨɛɪɚɡɨɦ, ɦɚɤɫɢɦɚɥɶɧɨɟ
ɡɧɚɱɟɧɢɟ ɷɬɨɝɨ ɚɞɪɟɫɚ ɫɨɫɬɚɜɥɹɟɬ ɜɟɥɢɱɢɧɭ FFFFh. Ɋɟɚɥɶɧɨ ɢɡ 64Ʉɛɚɣɬ ɚɞɪɟɫɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɩɨɪɬɨɜ ɢɫɩɨɥɶɡɭɟɬɫɹ ɥɢɲɶ
ɨɱɟɧɶ ɧɟɡɧɚɱɢɬɟɥɶɧɚɹ ɱɚɫɬɶ.
.data
msg_title db "Title", 0
A DB 1h
buffer db 128 dup(?)
format db "%d",0
.code
start:
mov AL, A
.REPEAT
inc AL
.UNTIL AL==7
invoke wsprintf, addr buffer, addr format, AL
invoke MessageBox, 0, addr buffer, addr msg_title, MB_OK
invoke ExitProcess, 0
end start
Ɋɚɛɨɬɚ ɫ ɚɞɪɟɫɚɦɢ ɢ ɭɤɚɡɚɬɟɥɹɦɢ
ɉɪɢ ɧɚɩɢɫɚɧɢɢ ɩɪɨɝɪɚɦɦ ɧɚ ɚɫɫɟɦɛɥɟɪɟ ɩɪɨɢɡɜɨɞɢɬɫɹ ɢɧɬɟɧɫɢɜɧɚɹ
ɪɚɛɨɬɚ ɫ ɧɚɯɨɞɹɳɢɦɢɫɹ ɜ ɩɚɦɹɬɢ ɚɞɪɟɫɚɦɢ ɨɩɟɪɚɧɞɨɜ. Ⱦɥɹ ɩɨɞɞɟɪɠɤɢ ɬɚɤɨɝɨ ɪɨɞɚ ɨɩɟɪɚɰɢɣ ɫɭɳɟɫɬɜɭɟɬ ɫɩɟɰɢɚɥɶɧɚɹ ɝɪɭɩɩɚ ɤɨɦɚɧɞ:
ɡɚɝɪɭɡɤɚ ɷɮɮɟɤɬɢɜɧɨɝɨ ɚɞɪɟɫɚ
lea <ɩɪɢɟɦɧɢɤ>, <ɢɫɬɨɱɧɢɤ>
ɡɚɝɪɭɡɤɚ ɭɤɚɡɚɬɟɥɹ ɜ ɪɟɝɢɫɬɪ ɫɟɝɦɟɧɬɚ ɞɚɧɧɵɯ ds
lds <ɩɪɢɟɦɧɢɤ>, <ɢɫɬɨɱɧɢɤ>
31

ɡɚɝɪɭɡɤɚ ɭɤɚɡɚɬɟɥɹ ɜ ɪɟɝɢɫɬɪ ɞɨɩɨɥɧɢɬɟɥɶɧɨɝɨ ɫɟɝɦɟɧɬɚ ɞɚɧɧɵɯ es
les <ɩɪɢɟɦɧɢɤ>, <ɢɫɬɨɱɧɢɤ>
ɡɚɝɪɭɡɤɚ ɭɤɚɡɚɬɟɥɹ ɜ ɪɟɝɢɫɬɪ ɞɨɩɨɥɧɢɬɟɥɶɧɨɝɨ ɫɟɝɦɟɧɬɚ ɞɚɧɧɵɯ gs
lgs <ɩɪɢɟɦɧɢɤ>, <ɢɫɬɨɱɧɢɤ>
Ʉɨɦɚɧɞɚ LEA ɚɧɚɥɨɝɢɱɧɚ ɤɨɦɚɧɞɟ MOV ɬɟɦ, ɱɬɨ ɨɧɚ ɬɚɤɠɟ ɩɪɨɢɡɜɨɞɢɬ ɩɟɪɟɫɵɥɤɭ, ɧɨ ɧɟ ɞɚɧɧɵɯ, ɚ ɷɮɮɟɤɬɢɜɧɨɝɨ ɢɯ ɚɞɪɟɫɚ (ɬɨ ɟɫɬɶ ɫɦɟɳɟɧɢɹ
ɞɚɧɧɵɯ ɜ ɛɚɣɬɚɯ ɨɬɧɨɫɢɬɟɥɶɧɨ ɧɚɱɚɥɚ ɷɬɨɝɨ ɫɟɝɦɟɧɬɚ) ɜ
ɪɟɝɢɫɬɪ, ɭɤɚɡɚɧ-
ɧɵɣ ɨɩɟɪɚɧɞɨɦ <ɩɪɢɟɦɧɢɤ>.
.data
msg_title db "Title", 0
buffer db 128 dup(?)
format db "%d",0
.code
start:
mov eax, 1
mov edx, 1
.WHILE edx==1
inc eax
.IF eax==7
.BREAK
.ENDIF
.ENDW
invoke wsprintf, addr buffer, addr format, eax
invoke MessageBox, 0, addr buffer, addr msg_title, MB_OK
invoke ExitProcess, 0
Ⱦɥɹ ɜɵɩɨɥɧɟɧɢɹ ɧɟɤɨɬɨɪɵɯ ɞɟɣɫɬɜɢɣ ɜ ɩɪɨɝɪɚɦɦɟ ɡɚɱɚɫɬɭɸ ɧɟɞɨɫɬɚɬɨɱɧɨ ɡɧɚɬɶ ɡɧɚɱɟɧɢɟ ɨɞɧɨɝɨ ɥɢɲɶ ɷɮɮɟɤɬɢɜɧɨɝɨ ɚɞɪɟɫɚ ɞɚɧɧɵɯ, ɚ ɧɟɨɛɯɨɞɢɦɨ ɢɦɟɬɶ ɩɨɥɧɵɣ ɭɤɚɡɚɬɟɥɶ ɧɚ ɧɢɯ. ɉɨɥɧɵɣ ɭɤɚɡɚɬɟɥɶ ɧɚ ɞɚɧɧɵɟ ɫɨɫɬɨɢɬ ɢɡ ɫɟɝɦɟɧɬɧɨɣ ɫɨɫɬɚɜɥɹɸɳɟɣ ɢ ɫɦɟɳɟɧɢɹ. Ɉɫɬɚɥɶɧɵɟ ɤɨɦɚɧɞɵ ɷɬɨɣ
ɝɪɭɩɩɵ ɩɨɡɜɨɥɹɸɬ ɩɨɥɭɱɢɬɶ ɜ ɩɚɪɟ ɪɟɝɢɫɬɪɨɜ ɬɚɤɨɣ ɩɨɥɧɵɣ ɭɤɚɡɚɬɟɥɶ ɧɚ
ɨɩɟɪɚɧɞ ɜ ɩɚɦɹɬɢ
. ɉɪɢ ɷɬɨɦ ɢɦɹ ɫɟɝɦɟɧɬɧɨɝɨ ɪɟɝɢɫɬɪɚ, ɜ ɤɨɬɨɪɵɣ ɩɨɦɟɳɚɟɬɫɹ ɫɟɝɦɟɧɬɧɚɹ ɫɨɫɬɚɜɥɹɸɳɚɹ ɚɞɪɟɫɚ, ɨɩɪɟɞɟɥɹɟɬɫɹ ɤɨɞɨɦ ɨɩɟɪɚɰɢɢ.
ɋɨɨɬɜɟɬɫɬɜɟɧɧɨ, ɫɦɟɳɟɧɢɟ ɩɨɦɟɳɚɟɬɫɹ ɜ ɪɟɝɢɫɬɪ ɨɛɳɟɝɨ ɧɚɡɧɚɱɟɧɢɹ, ɭɤɚɡɚɧɧɵɣ ɨɩɟɪɚɧɞɨɦ <ɩɪɢɟɦɧɢɤ>. ɉɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɨɩɟɪɚɧɞɚ <ɢɫɬɨɱ-
ɧɢɤ> ɜ ɪɟɚɥɶɧɨɣ ɤɨɦɚɧɞɟ ɜ ɤɚɱɟɫɬɜɟ ɢɫɬɨɱɧɢɤɚ ɧɟɥɶɡɹ ɭɤɚɡɵɜɚɬɶ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɢɦɹ ɨɩɟɪɚɧɞɚ ɜ ɩɚɦɹɬɢ, ɧɚ ɤɨɬɨɪɵɣ ɧɟɨɛɯɨɞɢɦɨ
ɩɨɥɭɱɢɬɶ
ɭɤɚɡɚɬɟɥɶ.
ɉɪɟɞɜɚɪɢɬɟɥɶɧɨ ɬɪɟɛɭɟɬɫɹ ɩɨɥɭɱɢɬɶ ɡɧɚɱɟɧɢɟ ɩɨɥɧɨɝɨ ɭɤɚɡɚɬɟɥɹ ɜ
ɧɟɤɨɬɨɪɨɣ ɨɛɥɚɫɬɢ ɩɚɦɹɬɢ ɢ ɡɚɞɚɬɶ ɜ ɤɨɦɚɧɞɟ ɩɨɥɭɱɟɧɢɹ ɩɨɥɧɨɝɨ ɚɞɪɟɫɚ
ɢɦɹ ɷɬɨɣ ɨɛɥɚɫɬɢ. Ⱦɥɹ ɜɵɩɨɥɧɟɧɢɹ ɷɬɨɝɨ ɞɟɣɫɬɜɢɹ ɧɟɨɛɯɨɞɢɦɨ ɜɫɩɨɦɧɢɬɶ
ɞɢɪɟɤɬɢɜɵ ɪɟɡɟɪɜɢɪɨɜɚɧɢɹ ɢ ɢɧɢɰɢɚɥɢɡɚɰɢɢ ɩɚɦɹɬɢ.
32

ɉɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɷɬɢɯ ɞɢɪɟɤɬɢɜ ɜɨɡɦɨɠɟɧ ɱɚɫɬɧɵɣ ɫɥɭɱɚɣ, ɤɨɝɞɚ ɜ
ɩɨɥɟ ɨɩɟɪɚɧɞɨɜ ɭɤɚɡɵɜɚɟɬɫɹ ɢɦɹ ɞɪɭɝɨɣ ɞɢɪɟɤɬɢɜɵ ɨɩɪɟɞɟɥɟɧɢɹ ɞɚɧɧɵɯ
(ɮɚɤɬɢɱɟɫɤɢ ɷɬɨ ɛɭɞɟɬ ɢɦɹ ɩɟɪɟɦɟɧɧɨɣ). ȼ ɷɬɨɦ ɫɥɭɱɚɟ ɜ ɩɚɦɹɬɢ ɮɨɪɦɢɪɭɟɬɫɹ ɚɞɪɟɫ ɷɬɨɣ ɩɟɪɟɦɟɧɧɨɣ. Ɉɬ ɬɨɝɨ, ɤɚɤɨɣ ɚɞɪɟɫ ɛɭɞɟɬ ɫɮɨɪɦɢɪɨɜɚɧ ɩɨ
ɢɬɨɝɭ (ɷɮɮɟɤɬɢɜɧɵɣ ɢɥɢ ɩɨɥɧɵɣ), ɡɚɜɢɫɢɬ ɨɬ ɩɪɢɦɟɧɹɟɦɨɣ ɞɢɪɟɤɬɢɜɵ.
ȿɫɥɢ ɷɬɨ DW,
ɬɨ ɜ ɩɚɦɹɬɢ ɮɨɪɦɢɪɭɟɬɫɹ ɬɨɥɶɤɨ 16-ɪɚɡɪɹɞɧɨɟ ɡɧɚɱɟɧɢɟ
ɷɮɮɟɤɬɢɜɧɨɝɨ ɚɞɪɟɫɚ, ɟɫɥɢ DD – ɜ ɩɚɦɹɬɶ ɡɚɩɢɫɵɜɚɟɬɫɹ ɩɨɥɧɵɣ ɚɞɪɟɫ.
Ɋɚɡɦɟɳɟɧɢɟ ɷɬɨɝɨ ɚɞɪɟɫɚ ɜ ɩɚɦɹɬɢ ɩɪɨɢɫɯɨɞɢɬ ɫɥɟɞɭɸɳɢɦ ɨɛɪɚɡɨɦ: ɜ
ɦɥɚɞɲɟɦ ɫɥɨɜɟ ɧɚɯɨɞɢɬɫɹ ɫɦɟɳɟɧɢɟ, ɜ ɫɬɚɪɲɟɦ – 16-ɪɚɡɪɹɞɧɚɹ ɫɟɝɦɟɧɬɧɚɹ ɫɨɫɬɚɜɥɹɸɳɚɹ ɚɞɪɟɫɚ.
7. ɉɪɟɪɵɜɚɧɢɹ
ɉɪɟɪɵɜɚɧɢɹ – ɢɧɢɰɢɢɪɭɟɦɵɣ ɨɩɪɟɞɟɥɟɧɧɵɦ ɨɛɪɚɡɨɦ ɩɪɨɰɟɫɫ, ɜɪɟɦɟɧɧɨ ɩɟɪɟɤɥɸɱɚɸɳɢɣ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ ɧɚ ɜɵɩɨɥɧɟɧɢɟ ɞɪɭɝɨɣ ɩɪɨɝɪɚɦɦɵ ɫ ɩɨɫɥɟɞɭɸɳɢɦ ɜɨɡɨɛɧɨɜɥɟɧɢɟɦ ɩɪɟɪɜɚɧɧɨɣ ɩɪɨɝɪɚɦɦɵ. Ɇɟɯɚɧɢɡɦ
ɩɪɟɪɵɜɚɧɢɣ ɩɨɡɜɨɥɹɟɬ ɨɛɟɫɩɟɱɢɬɶ ɧɚɢɛɨɥɟɟ ɷɮɮɟɤɬɢɜɧɨɟ ɭɩɪɚɜɥɟɧɢɟ ɧɟ
ɬɨɥɶɤɨ ɜɧɟɲɧɢɦɢ ɭɫɬɪɨɣɫɬɜɚɦɢ, ɧɨ ɢ ɩɪɨɝɪɚɦɦɚɦɢ.
ɉɪɟɪɵɜɚɧɢɹ ɦɨɝɭɬ ɛɵɬɶ ɜɧɟɲɧɢɦɢ ɢ ɜɧɭɬɪɟɧɧɢɦɢ. ȼɧɟɲɧɢɟ ɩɪɟɪɵɜɚɧɢɹ ɜɵɡɵɜɚɸɬɫɹ ɜɧɟɲɧɢɦɢ ɩɨ ɨɬɧɨɲɟɧɢɸ ɤ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɭ ɫɨɛɵɬɢɹɦɢ. ɍ
ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɫɭɳɟɫɬɜɭɸɬ ɞɜɚ ɮɢɡɢɱɟɫɤɢɯ ɤɨɧɬɚɤɬɚ INTR (In-
terruɪt Request) ɢ NMI (Nɨn Mɚskɚble Interruɪt). ɇɚ ɧɢɯ ɢ ɮɨɪɦɢɪɭɸɬɫɹ
ɜɧɟɲɧɢɟ ɩɨ ɨɬɧɨɲɟɧɢɸ ɤ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɭ ɫɢɝɧɚɥɵ, ɜɨɡɪɚɫɬɚɸɳɢɟ ɮɪɨɧɬɵ ɤɨɬɨɪɵɯ ɢɡɜɟɳɚɸɬ ɨ ɬɨɦ, ɱɬɨ ɧɟɤɨɬɨɪɨɟ ɜɧɟɲɧɟɟ ɭɫɬɪɨɣɫɬɜɨ ɢɧɢɰɢɢɪɭɟɬ ɩɪɟɪɵɜɚɧɢɟ. ȼɯɨɞ INTR (Interrupt Request) ɩɪɟɞɧɚɡɧɚɱɟɧ ɞɥɹ ɮɢɤɫɚɰɢɢ ɡɚɩɪɨɫɨɜ ɨɬ ɪɚɡɥɢɱɧɵɯ ɩɟɪɢɮɟɪɢɣɧɵɯ ɭɫɬɪɨɣɫɬɜ. ȼɯɨɞ
NMI (Non
Maskable Interrupt) – ɧɟɦɚɫɤɢɪɭɟɦɨɟ ɩɪɟɪɵɜɚɧɢɟ, ɢɫɩɨɥɶɡɭɟɬɫɹ ɞɥɹ ɫɨ-
ɨɛɳɟɧɢɹ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɭ ɨ ɫɨɛɵɬɢɢ, ɬɪɟɛɭɸɳɟɦ ɛɟɡɨɬɥɚɝɚɬɟɥɶɧɨɣ ɨɛɪɚɛɨɬɤɢ, ɢɥɢ ɨ ɤɪɢɬɢɱɟɫɤɨɣ ɨɲɢɛɤɟ. ȼɧɟɲɧɢɟ ɩɪɟɪɵɜɚɧɢɹ ɨɬɧɨɫɹɬɫɹ ɤ ɧɟɩɥɚɧɢɪɭɟɦɵɦ.
ȼɧɭɬɪɟɧɧɢɟ ɩɪɟɪɵɜɚɧɢɹ ɜɨɡɧɢɤɚɸɬ ɜɧɭɬɪɢ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɜɨ ɜɪɟɦɹ ɜɵɱɢɫɥɢɬɟɥɶɧɨɝɨ ɩɪɨɰɟɫɫɚ. Ʉ ɢɯ ɜɨɡɛɭɠɞɟɧɢɸ ɩɪɢɜɨɞɢɬ ɨɞɧɚ ɢɡ ɞɜɭɯ
ɩɪɢɱɢɧ:
–
ɧɟɯɚɪɚɤɬɟɪɧɨɟ ɜɧɭɬɪɟɧɧɟɟ ɫɨɫɬɨɹɧɢɟ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ, ɜɨɡɧɢɤɲɟɟ
ɩɪɢ ɨɛɪɚɛɨɬɤɟ ɧɟɤɨɬɨɪɨɣ ɤɨɦɚɧɞɵ ɩɪɨɝɪɚɦɦɵ. Ɍɚɤɢɟ ɫɨɛɵɬɢɹ ɧɚɡɵɜɚɸɬ
ɢɫɤɥɸɱɢɬɟɥɶɧɵɦɢ ɫɢɬɭɚɰɢɹɦɢ (ɢɥɢ ɢɫɤɥɸɱɟɧɢɹɦɢ). ɗɬɨɬ ɜɢɞ ɩɪɟɪɵɜɚɧɢɣ
ɨɬɱɚɫɬɢ ɦɨɠɧɨ ɨɬɧɟɫɬɢ ɤ ɧɟɩɥɚɧɢɪɭɟɦɵɦ;
–
ɨɛɪɚɛɨɬɤɚ ɦɚɲɢɧɧɨɣ ɤɨɦɚɧɞɵ int xx. ɗɬɨɬ ɬɢɩ ɩɥɚɧɢɪɭɟɦɵɯ ɩɪɟɪɵɜɚɧɢɣ ɧɚɡɵɜɚɟɬɫɹ ɩɪɨɝɪɚɦɦɧɵɦ. ɋ ɢɯ ɩɨɦɨɳɶɸ ɩɪɨɝɪɚɦɦɢɫɬ ɨɛɪɚɳɚɟɬɫɹ ɜ ɥɸɛɨɟ ɜɪɟɦɹ ɡɚ ɨɛɫɥɭɠɢɜɚɧɢɟɦ ɫɜɨɢɯ ɡɚɩɪɨɫɨɜ, ɥɢɛɨ ɤ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɟ, ɥɢɛɨ ɤ BIOS, ɥɢɛɨ ɤ ɫɨɛɫɬɜɟɧɧɵɦ ɩɪɨɝɪɚɦɦɚɦ ɨɛɪɚɛɨɬɤɢ
ɩɪɟɪɵɜɚɧɢɣ.
33

Ɉɛɪɚɛɨɬɤɚ ɩɪɟɪɵɜɚɧɢɣ ɜ ɪɟɚɥɶɧɨɦ ɢ ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɚɯ ɨɫɭ-
ɳɟɫɬɜɥɹɟɬɫɹ ɩɪɢɧɰɢɩɢɚɥɶɧɨ ɪɚɡɧɵɦɢ ɦɟɬɨɞɚɦɢ.
.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
msg_title db "Title", 0
A DB 1h
x dd 0,1,2,3,4,5,6,7,8,9,10,11
n dd 12
buffer db 128 dup(?)
format db "%d",0
.code
start:
mov eax, 0
mov ecx, n
mov ebx, 0
L: add eax, x[ebx]
add ebx, type x
dec ecx
cmp ecx, 0
jne L
invoke wsprintf, addr buffer, addr format, eax
invoke MessageBox, 0, addr buffer, addr msg_title, MB_OK
invoke ExitProcess, 0
end start
ɋɢɫɬɟɦɚ ɩɪɟɪɵɜɚɧɢɣ – ɷɬɨ ɫɨɜɨɤɭɩɧɨɫɬɶ ɩɪɨɝɪɚɦɦɧɵɯ ɢ ɚɩɩɚɪɚɬ-
ɧɵɯ ɫɪɟɞɫɬɜ, ɪɟɚɥɢɡɭɸɳɢɯ ɦɟɯɚɧɢɡɦ ɩɪɟɪɵɜɚɧɢɣ. Ʉ ɚɩɩɚɪɚɬɧɵɦ ɫɪɟɞɫɬɜɚɦ ɨɬɧɨɫɹɬɫɹ:
34

1. ȼɵɜɨɞɵ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ:
a. INTR – ɜɵɜɨɞ ɞɥɹ ɜɯɨɞɧɨɝɨ ɫɢɝɧɚɥɚ ɜɧɟɲɧɟɝɨ ɩɪɟɪɵɜɚɧɢɹ. ɇɚ ɷɬɨɬ
ɜɯɨɞ ɩɨɫɬɭɩɚɟɬ ɜɵɯɨɞɧɨɣ ɫɢɝɧɚɥ ɨɬ ɦɢɤɪɨɫɯɟɦɵ ɤɨɧɬɪɨɥɥɟɪɚ ɩɪɟɪɵɜɚɧɢɣ
8259Ⱥ.
b. INTȺ – ɜɵɜɨɞ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɞɥɹ ɜɵɯɨɞɧɨɝɨ ɫɢɝɧɚɥɚ ɩɨɞɬɜɟɪ-
ɠɞɟɧɢɹ ɩɨɥɭɱɟɧɢɹ ɫɢɝɧɚɥɚ ɩɪɟɪɵɜɚɧɢɹ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɨɦ. ɗɬɨɬ ɜɵɯɨɞɧɨɣ ɫɢɝɧɚɥ ɩɨɫɬɭɩɚɟɬ ɧɚ ɨɞɧɨɢɦɟɧɧɵɣ ɜɯɨɞ INTȺ ɦɢɤɪɨɫɯɟɦɵ ɤɨɧɬɪɨɥɥɟɪɚ ɩɪɟɪɵɜɚɧɢɣ 8259Ⱥ.
c. NMI – ɜɵɜɨɞ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɞɥɹ ɜɯɨɞɧɨɝɨ ɫɢɝɧɚɥɚ ɧɟɦɚɫɤɢɪɭɟɦɨɝɨ ɩɪɟɪɵɜɚɧɢɹ.
2. Ɇɢɤɪɨɫɯɟɦɚ ɩɪɨɝɪɚɦɦɢɪɭɟɦɨɝɨ ɤɨɧɬɪɨɥɥɟɪɚ ɩɪɟɪɵɜɚɧɢɣ 8259Ⱥ.
ɉɪɟɞɧɚɡɧɚɱɟɧɚ ɞɥɹ ɮɢɤɫɢɪɨɜɚɧɢɹ ɫɢɝɧɚɥɨɜ ɩɪɟɪɵɜɚɧɢɣ ɨɬ ɜɨɫɶɦɢ ɪɚɡɥɢɱɧɵɯ ɜɧɟɲɧɢɯ ɭɫɬɪɨɣɫɬɜ.
3. ȼɧɟɲɧɢɟ ɭɫɬɪɨɣɫɬɜɚ: ɤɥɚɜɢɚɬɭɪɚ, ɬɚɣɦɟɪ, ɞɢɫɤɢ ɢ ɬ. ɞ.
Ʉ ɩɪɨɝɪɚɦɦɧɵɦ ɫɪɟɞɫɬɜɚɦ ɫɢɫɬɟɦɵ ɩɪɟɪɵɜɚɧɢɣ ɪɟɚɥɶɧɨɝɨ ɪɟɠɢɦɚ
ɨɬɧɨɫɹɬɫɹ:
1. Ɍɚɛɥɢɰɚ ɜɟɤɬɨɪɨɜ ɩɪɟɪɵɜɚɧɢɣ. ȼ ɧɟɣ ɜ ɨɩɪɟɞɟɥɟɧɧɨɦ ɮɨɪɦɚɬɟ, ɤɨ-
ɬɨɪɵɣ ɡɚɜɢɫɢɬ ɨɬ ɪɟɠɢɦɚ ɪɚɛɨɬɵ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ, ɫɨɞɟɪɠɚɬɫɹ ɭɤɚɡɚɬɟɥɢ
ɧɚ ɩɪɨɰɟɞɭɪɵ ɨɛɪɚɛɨɬɤɢ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɯ ɩɪɟɪɵɜɚɧɢɣ.
2. ɋɥɟɞɭɸɳɢɟ ɮɥɚɝɢ ɜ ɪɟɝɢɫɬɪɟ ɮɥɚɝɨɜ flags/eflags:
a. IF (Interrupt Flag) – ɮɥɚɝ ɩɪɟɪɵɜɚɧɢɹ, ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɣ ɞɥɹ ɦɚɫ-
ɤɢɪɨɜɚɧɢɹ (ɡɚɩɪɟɳɟɧɢɹ) ɚɩɩɚɪɚɬɧɵɯ ɩɪɟɪɵɜɚɧɢɣ ɩɨ ɜɯɨɞɭ INTR. ɇɚ ɨɛɪɚɛɨɬɤɭ ɩɪɟɪɵɜɚɧɢɣ ɨɫɬɚɥɶɧɵɯ ɬɢɩɨɜ ɮɥɚɝ IF ɧɢɤɚɤɨɝɨ ɜɥɢɹɧɢɹ ɧɟ ɨɤɚɡɵ-
ȿɫɥɢ ɮɥɚɝ IF = 1, ɬɨ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ ɨɛɪɚɛɚɬɵɜɚɟɬ ɜɧɟɲɧɢɟ ɩɪɟɪɵ-
ɜɚɟɬ.
ɜɚɧɢɹ, ɟɫɥɢ IF = 0, ɡɧɚɱɢɬ, ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ ɢɝɧɨɪɢɪɭɟɬ ɫɢɝɧɚɥɵ ɧɚ ɜɯɨɞɟ
INTR.
b. TF (Trɚɫe Flag) – ɮɥɚɝ ɬɪɚɫɫɢɪɨɜɤɢ. ȿɞɢɧɢɱɧɨɟ ɫɨɫɬɨɹɧɢɟ ɮɥɚɝɚ TF
ɩɟɪɟɜɨɞɢɬ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ ɜ ɪɟɠɢɦ ɩɨɤɨɦɚɧɞɧɨɣ ɪɚɛɨɬɵ, ɤɨɝɞɚ ɩɨɫɥɟ
ɜɵɩɨɥɧɟɧɢɹ ɤɚɠɞɨɣ ɦɚɲɢɧɧɨɣ ɤɨɦɚɧɞɵ ɜ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɟ ɝɟɧɟɪɢɪɭɟɬɫɹ
ɜɧɭɬɪɟɧɧɟɟ ɩɪɟɪɵɜɚɧɢɟ ɫ ɧɨɦɟɪɨɦ 1, ɢ ɞɚɥɟɟ ɫɥɟɞɭɸɬ ɞɟɣɫɬɜɢɹ ɜ ɩɨɥɧɨɦ
ɫɨɨɬɜɟɬɫɬɜɢɢ ɫ ɚɥɝɨɪɢɬɦɨɦ ɨɛɪɚɛɨɬɤɢ ɞɚɧɧɨɝɨ ɩɪɟɪɵɜɚɧɢɹ.
3. Ɇɚɲɢɧɧɵɟ ɤɨɦɚɧɞɵ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ int, into, iret, ɫli, sti.
Ɏɭɧɤɰɢɢ, ɜɵɩɨɥɧɹɟɦɵɟ ɦɢɤɪɨɫɯɟɦɨɣ ɤɨɧɬɪɨɥɥɟɪɚ ɩɪɟɪɵɜɚɧɢɣ:
–
ɮɢɤɫɢɪɨɜɚɧɢɟ ɡɚɩɪɨɫɨɜ ɧɚ ɨɛɪɚɛɨɬɤɭ ɩɪɟɪɵɜɚɧɢɹ ɨɬ ɜɨɫɶɦɢ ɢɫɬɨɱɧɢɤɨɜ, ɮɨɪɦɢɪɨɜɚɧɢɟ ɟɞɢɧɨɝɨ ɡɚɩɪɨɫɚ ɧɚ ɩɪɟɪɵɜɚɧɢɟ ɢ ɩɨɞɚɱɚ ɟɝɨ ɧɚ ɜɯɨɞ
INTR ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ;
–
ɮɨɪɦɢɪɨɜɚɧɢɟ ɧɨɦɟɪɚ ɜɟɤɬɨɪɚ ɩɪɟɪɵɜɚɧɢɹ ɢ ɜɵɞɚɱɚ ɟɝɨ ɧɚ ɲɢɧɭ
ɞɚɧɧɵɯ;
–
ɨɪɝɚɧɢɡɚɰɢɹ ɩɪɢɨɪɢɬɟɬɧɨɣ ɨɛɪɚɛɨɬɤɢ ɩɪɟɪɵɜɚɧɢɣ;
–
ɡɚɩɪɟɳɟɧɢɟ (ɦɚɫɤɢɪɨɜɚɧɢɟ) ɩɪɟɪɵɜɚɧɢɣ ɫ ɨɩɪɟɞɟɥɟɧɧɵɦɢ ɧɨɦɟɪɚɦɢ.
35

ȼɚɠɧɨɟ ɫɜɨɣɫɬɜɨ ɤɨɧɬɪɨɥɥɟɪɚ i8259Ⱥ ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɜɨɡɦɨɠɧɨɫɬɢ ɟɝɨ
ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ, ɱɬɨ ɩɨɡɜɨɥɹɟɬ ɩɪɨɝɪɚɦɦɢɫɬɭ ɨɩɟɪɚɬɢɜɧɨ ɢɡɦɟɧɹɬɶ ɚɥɝɨɪɢɬɦɵ ɨɛɪɚɛɨɬɤɢ ɚɩɩɚɪɚɬɧɵɯ ɩɪɟɪɵɜɚɧɢɣ. ɋ ɭɱɟɬɨɦ ɷɬɨɝɨ ɫɜɨɣɫɬɜɚ
ɦɢɤɪɨɫɯɟɦɚ ɢɦɟɟɬ ɞɜɚ ɫɨɫɬɨɹɧɢɹ:
–
ɫɨɫɬɨɹɧɢɟ ɧɚɫɬɪɨɣɤɢ ɩɚɪɚɦɟɬɪɨɜ ɨɛɫɥɭɠɢɜɚɧɢɹ ɩɪɟɪɵɜɚɧɢɣ, ɜɨ
ɜɪɟɦɹ ɤɨɬɨɪɨɝɨ ɩɭɬɟɦ ɩɨɫɵɥɚ ɜ ɨɩɪɟɞɟɥɟɧɧɨɦ ɩɨɪɹɞɤɟ ɬɚɤ ɧɚɡɵɜɚɟɦɵɯ
ɭɩɪɚɜɥɹɸɳɢɯ ɫɥɨɜ ɩɪɨɢɡɜɨɞɢɬɫɹ ɢɧɢɰɢɚɥɢɡɚɰɢɹ ɤɨɧɬɪɨɥɥɟɪɚ;
–
ɫɨɫɬɨɹɧɢɟ ɪɚɛɨɬɵ – ɨɛɵɱɧɨɟ ɞɥɹ ɤɨɧɬɪɨɥɥɟɪɚ i8259Ⱥ, ɜ ɤɨɬɨɪɨɦ
ɩɪɨɢɡɜɨɞɢɬɫɹ ɮɢɤɫɚɰɢɹ ɡɚɩɪɨɫɨɜ ɧɚ ɩɪɟɪɵɜɚɧɢɟ ɢ ɮɨɪɦɢɪɨɜɚɧɢɟ ɭɩɪɚɜɥɹɸɳɟɣ ɢɧɮɨɪɦɚɰɢɢ ɞɥɹ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɜ ɫɨɨɬɜɟɬɫɬɜɢɢ ɫ ɩɚɪɚɦɟɬɪɚɦɢ
ɧɚɫɬɪɨɣɤɢ.
ɇɚɡɧɚɱɟɧɢɟ ɨɫɧɨɜɧɵɯ ɫɬɪɭɤɬɭɪɧɵɯ ɤɨɦɩɨɧɟɧɬɨɜ ɤɨɧɬɪɨɥɥɟɪɚ ɩɪɟ-
ɪɵɜɚɧɢɣ:
1. Ɋɟɝɢɫɬɪ ɡɚɩɪɨɫɨɜ ɧɚ ɩɪɟɪɵɜɚɧɢɹ IRR (interrupt request register) –
ɜɨɫɶɦɢɪɚɡɪɹɞɧɵɣ ɪɟɝɢɫɬɪ, ɮɢɤɫɢɪɭɸɳɢɣ ɩɨɫɬɭɩɥɟɧɢɟ ɫɢɝɧɚɥɚ ɧɚ ɨɞɢɧ ɢɡ
ɜɯɨɞɨɜ irq0-irq7. Ɏɢɤɫɚɰɢɹ ɜɵɪɚɠɚɟɬɫɹ ɜ ɭɫɬɚɧɨɜɤɟ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɝɨ
ɛɢɬɚ ɜ ɟɞɢɧɢɱɧɨɟ ɫɨɫɬɨɹɧɢɟ.
2. Ɋɟɝɢɫɬɪ ɦɚɫɤɢɪɨɜɚɧɢɹ ɩɪɟɪɵɜɚɧɢɣ IMR (interrupt mask register) –
ɜɨɫɶɦɢɪɚɡɪɹɞɧɵɣ ɪɟɝɢɫɬɪ, ɫ ɩɨɦɨɳɶɸ ɤɨɬɨɪɨɝɨ ɦɨɠɧɨ ɡɚɩɪɟɬɢɬɶ ɨɛɪɚɛɨɬɤɭ ɡɚɩɪɨɫɨɜ ɧɚ ɩɪɟɪɵɜɚɧɢɹ, ɩɨɫɬɭɩɚɸɳɢɯ ɧɚ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɟ ɜɯɨɞɵ
irq0-irq7. Ⱦɥɹ ɡɚɩɪɟɳɟɧɢɹ ɨɩɪɟɞɟɥɟɧɧɵɯ ɭɪɨɜɧɟɣ ɩɪɟɪɵɜɚɧɢɣ ɧɟɨɛɯɨɞɢɦɨ ɭɫɬɚɧɨɜɢɬɶ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɟ ɛɢɬɵ ɪɟɝɢɫɬɪɚ IMR. ɗɬɚ ɨɩɟɪɚɰɢɹ ɨɫɭɳɟɫɬɜɥɹɟɬɫɹ ɩɭɬɟɦ ɩɪɨɝɪɚɦɦɢɪɨɜɚɧɢɹ ɩɨɪɬɚ 21h.
3. Ɋɟɝɢɫɬɪ ɨɛɫɥɭɠɢɜɚɟɦɵɯ ɩɪɟɪɵɜɚɧɢɣ ISR (interruɪt serviɫe
register) – ɜɨɫɶɦɢɪɚɡɪɹɞɧɵɣ ɪɟɝɢɫɬɪ, ɟɞɢɧɢɱɧɨɟ ɫɨɫɬɨɹɧɢɟ ɪɚɡɪɹɞɨɜ ɤɨɬɨ-
ɪɨɝɨ ɩɨɤɚɡɵɜɚɟɬ, ɩɪɟɪɵɜɚɧɢɹ ɤɚɤɢɯ ɭɪɨɜɧɟɣ ɨɛɪɚɛɚɬɵɜɚɸɬɫɹ ɜ ɞɚɧɧɵɣ
ɦɨɦɟɧɬ ɜ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɟ.
4. Ⱥɪɛɢɬɪ ɩɪɢɨɪɢɬɟɬɨɜ Ɋ
R (ɪriɨrity resɨlver) – ɮɭɧɤɰɢɟɣ ɹɜɥɹɟɬɫɹ ɪɚɡ-
ɪɟɲɟɧɢɟ ɤɨɧɮɥɢɤɬɚ ɩɪɢ ɨɞɧɨɜɪɟɦɟɧɧɨɦ ɩɨɫɬɭɩɥɟɧɢɢ ɡɚɩɪɨɫɨɜ ɧɚ ɜɯɨɞɵ.
5. Ȼɥɨɤ ɭɩɪɚɜɥɟɧɢɹ – ɨɫɧɨɜɧɨɣ ɮɭɧɤɰɢɟɣ ɹɜɥɹɟɬɫɹ ɨɪɝɚɧɢɡɚɰɢɹ ɢɧ-
ɮɨɪɦɚɰɢɨɧɧɨɝɨ ɨɛɦɟɧɚ ɤɨɧɬɪɨɥɥɟɪɚ ɩɪɟɪɵɜɚɧɢɣ ɢ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɱɟɪɟɡ «ɲɢɧɭ» ɞɚɧɧɵɯ.
ɉɪɢ ɩɨɫɬɭɩɥɟɧɢɢ ɫɢɝɧɚɥɚ ɧɚ ɜɯɨɞ INTR ɜ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɟ ɩɪɨɢɫɯɨ-
ɞɹɬ ɫɥɟɞɭɸɳɢɟ ɞɟɣɫɬɜɢɹ:
1) ɚɧɚɥɢɡɢɪɭɟɬɫɹ ɮɥɚɝ IF;
2) ɟɫɥɢ ɩɪɟɪɵɜɚɧɢɹ ɡɚɩɪɟɳɟɧɵ, ɬɨ ɡɚɩɪɨɫ ɧɚ ɧɢɯ ɩɨɜɢɫɚɟɬ ɞɨ ɦɨɦɟɧɬɚ
ɭɫɬɚɧɨɜɤɢ ɮɥɚɝɚ IF ɜ ɟɞɢɧɢɰɭ;
3) ɟɫɥɢ ɩɪɟɪɵɜɚɧɢɹ ɪɚɡɪɟɲɟɧɵ, ɬɨ:
a. ɫɛɪɚɫɵɜɚɟɬ ɮɥɚɝ IF ɜ ɧɨɥɶ;
b. ɮɨɪɦɢɪɭɟɬ ɫɢɝɧɚɥ ɩɨɞɬɜɟɪɠɞɟɧɢɹ ɩɪɟɪɵɜɚɧɢɹ ɧɚ ɜɯɨɞɟ ɦɢɤɪɨɩɪɨ
ɰɟɫɫɨɪɚ INTA.
36
-

ȼ ɩɪɨɰɟɫɫɟ ɡɚɝɪɭɡɤɢ ɢ ɪɚɛɨɬɵ ɤɨɦɩɶɸɬɟɪɚ ɤɨɧɬɪɨɥɥɟɪ ɩɪɟɪɵɜɚɧɢɣ
ɧɚɫɬɪɚɢɜɚɟɬɫɹ ɧɚ ɪɚɛɨɬɭ ɜ ɨɞɧɨɦ ɢɡ ɱɟɬɵɪɟɯ ɪɟɠɢɦɨɜ:
1. FNM – ɪɟɠɢɦ ɜɥɨɠɟɧɧɵɯ ɩɪɟɪɵɜɚɧɢɣ. ȼ ɧɟɦ ɤɚɠɞɨɦɭ ɜɯɨɞɭ ɩɪɢ-
ɫɜɚɢɜɚɟɬɫɹ ɮɢɤɫɢɪɨɜɚɧɧɨɟ ɡɧɚɱɟɧɢɟ ɩɪɢɨɪɢɬɟɬɚ, ɩɪɢɱɟɦ ɭɪɨɜɟɧɶ irq0
ɢɦɟɟɬ ɧɚɢɜɵɫɲɢɣ ɩɪɢɨɪɢɬɟɬ, ɚ irq7 – ɧɢɡɲɢɣ. ɉɪɢɨɪɢɬɟɬɧɨɫɬɶ ɩɪɟɪɵɜɚɧɢɣ ɨɩɪɟɞɟɥɹɟɬ ɢɯ ɩɪɚɜɨ ɧɚ ɩɪɟɪɵɜɚɧɢɟ ɨɛɪɚɛɨɬɤɢ ɦɟɧɟɟ ɩɪɢɨɪɢɬɟɬɧɨɝɨ
ɩɪɟɪɵɜɚɧɢɹ
ɛɨɥɟɟ ɩɪɢɨɪɢɬɟɬɧɵɦ.
2. ARM – ɪɟɠɢɦ ɰɢɤɥɢɱɟɫɤɨɣ ɨɛɪɚɛɨɬɤɢ ɩɪɟɪɵɜɚɧɢɣ. ȼ ɧɟɦ ɡɧɚɱɟɧɢɹ
ɩɪɢɨɪɢɬɟɬɨɜ ɭɪɨɜɧɟɣ ɩɪɟɪɵɜɚɧɢɣ ɬɚɤɠɟ ɥɢɧɟɣɧɨ ɭɩɨɪɹɞɨɱɟɧɵ, ɧɨ ɧɟ
ɮɢɤɫɢɪɨɜɚɧɧɵɦ ɫɩɨɫɨɛɨɦ. Ɉɧɢ ɢɡɦɟɧɹɸɬɫɹ ɩɨɫɥɟ ɨɛɪɚɛɨɬɤɢ ɨɱɟɪɟɞɧɨɝɨ
ɩɪɟɪɵɜɚɧɢɹ ɩɨ ɫɥɟɞɭɸɳɟɦɭ ɩɪɢɧɰɢɩɭ: ɜɟɥɢɱɢɧɟ ɩɪɢɨɪɢɬɟɬɚ ɩɨɫɥɟɞɧɟɝɨ
ɨɛɫɥɭɠɟɧɧɨɝɨ ɩɪɟɪɵɜɚɧɢɹ ɩɪɢɫɜɚɢɜɚɟɬɫɹ ɧɚɢɦɟɧɶɲɟɟ ɡɧɚɱɟɧɢɟ. ɋɥɟɞɭɸɳɢɣ ɩɨ ɩɨɪɹɞɤɭ ɭɪɨɜɟɧɶ ɩɨɥɭɱɚɟɬ ɧɚɢɜɵɫɲɟɟ ɡɧɚɱɟɧɢɟ, ɢ ɩɨɷɬɨɦɭ ɩɪɢ
ɨɞɧɨɜɪɟɦɟɧɧɵɯ
ɡɚɩɪɨɫɚɯ ɧɚ ɩɪɟɪɵɜɚɧɢɹ ɨɬ ɧɟɫɤɨɥɶɤɢɯ ɢɫɬɨɱɧɢɤɨɜ ɩɪɟɢɦɭɳɟɫɬɜɨ ɛɭɞɟɬ ɢɦɟɬɶ ɷɬɨɬ ɭɪɨɜɟɧɶ, ɱɬɨ ɨɛɟɫɩɟɱɢɜɚɟɬ ɪɚɜɧɨɩɪɚɜɢɟ ɩɪɢ
ɨɛɪɚɛɨɬɤɟ ɩɪɟɪɵɜɚɧɢɣ.
8. Ʉɨɦɚɧɞɵ ɩɟɪɟɞɚɱɢ ɭɩɪɚɜɥɟɧɢɹ
Ɉɛɵɱɧɨ ɜ ɩɪɨɝɪɚɦɦɟ ɟɫɬɶ ɬɨɱɤɢ, ɜ ɤɨɬɨɪɵɯ ɧɭɠɧɨ ɩɪɢɧɹɬɶ ɪɟɲɟɧɢɟ ɨ
ɬɨɦ, ɤɚɤɚɹ ɤɨɦɚɧɞɚ ɛɭɞɟɬ ɜɵɩɨɥɧɹɬɶɫɹ ɫɥɟɞɭɸɳɟɣ. ɗɬɨ ɪɟɲɟɧɢɟ ɦɨɠɟɬ
ɛɵɬɶ:
–
ɛɟɡɭɫɥɨɜɧɵɦ – ɜ ɬɨɱɤɟ ɧɟɨɛɯɨɞɢɦɨ ɩɟɪɟɞɚɬɶ ɭɩɪɚɜɥɟɧɢɟ ɧɟ ɫɥɟɞɭ-
ɸɳɟɣ ɤɨɦɚɧɞɟ, ɚ ɤɨɦɚɧɞɟ, ɤɨɬɨɪɚɹ ɧɚɯɨɞɢɬɫɹ ɧɚ ɧɟɤɨɬɨɪɨɦ ɭɞɚɥɟɧɢɢ ɨɬ
ɬɟɤɭɳɟɣ;
–
ɭɫɥɨɜɧɵɦ – ɪɟɲɟɧɢɟ ɨ ɬɨɦ, ɤɚɤɚɹ ɤɨɦɚɧɞɚ ɛɭɞɟɬ ɜɵɩɨɥɧɹɬɶɫɹ ɫɥɟ-
ɞɭɸɳɟɣ, ɩɪɢɧɢɦɚɟɬɫɹ ɧɚ ɨɫɧɨɜɟ ɚɧɚɥɢɡɚ ɧɟɤɨɬɨɪɵɯ ɭɫɥɨɜɢɣ, ɝɪɭɩɩɵ
ɭɫɥɨɜɢɣ ɢɥɢ ɞɚɧɧɵɯ.
Ɉ ɜɵɩɨɥɧɟɧɢɢ ɫɥɟɞɭɸɳɟɣ ɤɨɦɚɧɞɵ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ ɭɡɧɚɟɬ ɩɨ ɫɨɞɟɪɠɢɦɨɦɭ ɩɚɪɵ ɪɟɝɢɫɬɪɨɜ cs:(e)iɪ, ɜ ɤɨɬɨɪɨɣ:
–
ɫs – ɫɟɝɦɟɧɬɧɵɣ ɪɟɝɢɫɬɪ ɤɨɞɚ, ɜ ɤɨɬɨɪɨɦ ɧɚɯɨɞɢɬɫɹ ɮɢɡɢɱɟɫɤɢɣ
(ɛɚɡɨɜɵɣ) ɚɞɪɟɫ ɬɟɤɭɳɟɝɨ ɫɟɝɦɟɧɬɚ ɤɨɞɚ;
–
eiɪ/iɪ – ɪɟɝɢɫɬɪ ɭɤɚɡɚɬɟɥɹ ɤɨɦɚɧɞɵ, ɜ ɤɨɬɨɪɨɦ ɧɚɯɨɞɢɬɫɹ ɡɧɚɱɟɧɢɟ,
ɩɪɟɞɫɬɚɜɥɹɸɳɟɟ ɫɨɛɨɣ ɫɦɟɳɟɧɢɟ ɜ ɩɚɦɹɬɢ ɫɥɟɞɭɸɳɟɣ ɤɨɦɚɧɞɵ, ɩɨɞɥɟɠɚɳɟɣ ɜɵɩɨɥɧɟɧɢɸ, ɨɬɧɨɫɢɬɟɥɶɧɨ ɧɚɱɚɥɚ ɬɟɤɭɳɟɝɨ ɫɟɝɦɟɧɬɚ ɤɨɞɚ.
Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɤɨɦɚɧɞɵ ɩɟɪɟɞɚɱɢ ɭɩɪɚɜɥɟɧɢɹ ɢɡɦɟɧɹɸɬ ɫɨɞɟɪɠɢɦɨɟ
ɪɟɝɢɫɬɪɨɜ, ɜ ɪɟɡɭɥɶɬɚɬɟ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ ɜɵɛɢɪɚɟɬ ɞɥɹ ɜɵɩɨɥɧɟɧɢɹ ɧɟ ɫɥɟɞɭɸɳɭɸ ɩɨ ɩɨɪɹɞɤɭ ɤɨɦɚɧɞɭ, ɚ ɧɚɯɨɞɹɳɭɸɫɹ ɜ ɧɟɤɨɬɨɪɨɦ ɞɪɭɝɨɦ ɭɱɚɫɬɤɟ
ɩɪɨɝɪɚɦɦɵ. Ʉɨɧɜɟɣɟɪ ɜɧɭɬɪɢ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɩɪɢ ɷɬɨɦ ɫɛɪɚɫɵɜɚɟɬɫɹ.
37

ɉɨ ɩɪɢɧɰɢɩɭ ɞɟɣɫɬɜɢɹ ɤɨɦɚɧɞɵ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ, ɨɛɟɫɩɟɱɢɜɚɸɳɢɟ ɨɪɝɚɧɢɡɚɰɢɸ ɩɟɪɟɯɨɞɨɜ ɜ ɩɪɨɝɪɚɦɦɟ, ɦɨɠɧɨ ɪɚɡɞɟɥɢɬɶ ɧɚ ɬɪɢ
ɝɪɭɩɩɵ:
1. Ʉɨɦɚɧɞɵ ɛɟɡɭɫɥɨɜɧɨɣ ɩɟɪɟɞɚɱɢ ɭɩɪɚɜɥɟɧɢɹ:
1.1. ɛɟɡɭɫɥɨɜɧɵɣ ɩɟɪɟɯɨɞ;
1.2. ɜɵɡɨɜ ɩɪɨɰɟɞɭɪɵ ɢ ɜɨɡɜɪɚɬ ɢɡ ɧɟɟ;
1.3. ɜɵɡɨɜ ɩɪɨɝɪɚɦɦɧɵɯ ɩɪɟɪɵɜɚɧɢɣ ɢ ɜɨɡɜɪɚɬ ɢɡ ɧɢɯ.
2. Ʉɨɦɚɧɞɵ ɭɫɥɨɜɧɨɣ ɩɟɪɟɞɚɱɢ ɭɩɪɚɜɥɟɧɢɹ:
2.1. ɩɟɪɟɯɨɞ ɩɨ ɪɟɡɭɥɶɬɚɬɭ ɤɨɦɚɧɞɵ ɫɪɚɜɧɟɧɢɹ;
2.2. ɩɟɪɟɯɨɞ ɩɨ
ɫɨɫɬɨɹɧɢɸ ɨɩɪɟɞɟɥɟɧɧɨɝɨ ɮɥɚɝɚ;
2.3. ɩɟɪɟɯɨɞ ɩɨ ɫɨɞɟɪɠɢɦɨɦɭ ɪɟɝɢɫɬɪɚ eɫx/ɫx.
3. Ʉɨɦɚɧɞɵ ɭɩɪɚɜɥɟɧɢɹ ɰɢɤɥɨɦ:
3.1. ɨɪɝɚɧɢɡɚɰɢɹ ɰɢɤɥɚ ɫɨ ɫɱɟɬɱɢɤɨɦ eɫx/ɫx;
3.2. ɨɪɝɚɧɢɡɚɰɢɹ ɰɢɤɥɚ ɫɨ ɫɱɟɬɱɢɤɨɦ eɫx/ɫx ɢ ɜɨɡɦɨɠɧɨɫɬɶɸ ɞɨ-
ɫɪɨɱɧɨɝɨ ɜɵɯɨɞɚ ɢɡ ɰɢɤɥɚ ɩɨ ɞɨɩɨɥɧɢɬɟɥɶɧɨɦɭ ɭɫɥɨɜɢɸ.
Ɇɟɫɬɨ, ɜ ɤɨɬɨɪɨɟ ɧɟɨɛɯɨɞɢɦɨ ɩɟɪɟɞɚɬɶ ɭɩɪɚɜɥɟɧɢɟ ɜ ɹɡɵɤɟ ɚɫɫɟɦɛɥɟɪɚ, ɨɛɨɡɧɚɱɚɟɬɫɹ ɫ ɩɨɦɨɳɶɸ ɦɟɬɨɤ.
Ɇɟɬɤɚ – ɷɬɨ ɫɢɦɜɨɥɢɱɟɫɤɨɟ ɢɦɹ, ɨɛɨɡɧɚɱɚɸɳɟɟ ɨɩɪɟɞɟɥɟɧɧɭɸ ɹɱɟɣɤɭ ɩɚɦɹɬɢ ɢ ɩɪɟɞɧɚɡɧɚɱɟɧɧɨɟ ɞɥɹ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɜ ɤɚɱɟɫɬɜɟ ɨɩɟɪɚɧɞɚ ɜ
ɤɨɦɚɧɞɚɯ ɩɟɪɟɞɚɱɢ ɭɩɪɚɜɥɟɧɢɹ.
Ɍɪɚɧɫɥɹɬɨɪ ɚɫɫɟɦɛɥɟɪɚ ɩɪɢɫɜɚɢɜɚɟɬ ɦɟɬɤɟ ɬɪɢ ɚɬɪɢɛɭɬɚ:
1) ɢɦɹ ɫɟɝɦɟɧɬɚ ɤɨɞɚ, ɬɨ ɟɫɬɶ ɦɟɫɬɨ, ɝɞɟ ɷɬɚ ɦɟɬɤɚ ɨɩɢɫɚɧɚ
;
2) ɫɦɟɳɟɧɢɟ – ɪɚɫɫɬɨɹɧɢɟ ɜ ɛɚɣɬɚɯ ɨɬ ɧɚɱɚɥɚ ɫɟɝɦɟɧɬɚ ɤɨɞɚ, ɜ ɤɨɬɨɪɨɦ
ɨɩɢɫɚɧɚ ɦɟɬɤɚ;
3) ɬɢɩ ɦɟɬɤɢ ɢɥɢ ɚɬɪɢɛɭɬ ɪɚɫɫɬɨɹɧɢɹ, ɤɨɬɨɪɵɣ ɦɨɠɟɬ ɩɪɢɧɢɦɚɬɶ ɞɜɚ
ɡɧɚɱɟɧɢɹ:
–
neɚr – ɩɟɪɟɯɨɞ ɧɚ ɷɬɭ ɦɟɬɤɭ ɜɨɡɦɨɠɟɧ ɬɨɥɶɤɨ ɜ ɩɪɟɞɟɥɚɯ ɫɟɝɦɟɧɬɚ
ɤɨɞɚ, ɜ ɤɨɬɨɪɨɦ ɷɬɚ ɦɟɬɤɚ ɨɩɢɫɚɧɚ. Ɏɢɡɢɱɟɫɤɢ ɷɬɨ ɨɛɨɡɧɚɱɚɟɬ, ɱɬɨ ɞɥɹ ɩɟɪɟɯɨɞɚ ɧɚ ɦɟɬɤɭ ɞɨɫɬɚɬɨɱɧɨ ɢɡɦɟɧɢɬɶ ɬɨɥɶɤɨ ɫɨɞɟɪɠɢɦɨɟ ɪɟɝɢɫɬɪɚ eiɪ/iɪ;
–
fɚr – ɩɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ ɜɨɡɦɨɠɟɧ ɬɨɥɶɤɨ ɜ ɪɟɡɭɥɶɬɚɬɟ ɦɟɠɫɟɝɦɟɧɬ-
ɧɨɣ ɩɟɪɟɞɚɱɢ ɭɩɪɚɜɥɟɧɢɹ, ɞɥɹ ɨɫɭɳɟɫɬɜɥɟɧɢɹ ɤɨɬɨɪɨɣ ɬɪɟɛɭɟɬɫɹ ɢɡɦɟɧɟɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɤɚɤ ɪɟɝɢɫɬɪɚ eiɪ/iɪ, ɬɚɤ ɢ ɪɟɝɢɫɬɪɚ ɫs.
Ɇɟɬɤɭ ɦɨɠɧɨ ɨɩɪɟɞɟɥɢɬɶ ɞɜɭɦɹ ɫɩɨɫɨɛɚɦɢ:
1) ɨɩɟɪɚɬɨɪɨɦ «ɞɜɨɟɬɨɱɢɟ» – ɫ ɩɨɦɨɳɶɸ ɷɬɨɝɨ ɫɩɨɫɨɛɚ ɭɫɬɚɧɚɜɥɢɜɚɸɬ
ɦɟɬɤɭ ɬɨɥɶɤɨ ɛɥɢɠɧɟɝɨ ɬɢɩɚ. ɋɢɦɜɨɥɢɱɟɫɤɨɟ ɢɦɹ ɜ ɩɪɨɝɪɚɦɦɟ ɦɨɠɟɬ ɛɵɬɶ
ɨɩɪɟɞɟɥɟɧɨ ɬɨɥɶɤɨ ɨɞɢɧ ɪɚɡ. Ɉɩɪɟɞɟɥɟɧɧɭɸ ɬɚɤɢɦ ɨɛɪɚɡɨɦ ɦɟɬɤɭ ɦɨɠɧɨ
ɢɫɩɨɥɶɡɨɜɚɬɶ ɜ ɤɚɱɟɫɬɜɟ ɨɩɟɪɚɧɞɚ ɜ ɤɨɦɚɧɞɚɯ ɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ jɫɫ ɢ ɛɟɡɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ jmɪ, ɫɚll. ɗɬɢ ɤɨɦɚɧɞɵ
, ɟɫɬɟɫɬɜɟɧɧɨ, ɞɨɥɠɧɵ ɛɵɬɶ ɜ
ɫɟɝɦɟɧɬɟ ɤɨɞɚ, ɝɞɟ ɨɩɪɟɞɟɥɟɧɚ ɦɟɬɤɚ;
2) ɞɢɪɟɤɬɢɜɨɣ label – ɨɛɵɱɧɨ ɞɢɪɟɤɬɢɜɭ label ɢɫɩɨɥɶɡɭɸɬ ɞɥɹ ɨɩɪɟɞɟ-
ɥɟɧɢɹ ɢɞɟɧɬɢɮɢɤɚɬɨɪɚ ɡɚɞɚɧɧɨɝɨ ɬɢɩɚ. Ⱦɪɭɝɨɣ ɱɚɫɬɨ ɜɫɬɪɟɱɚɸɳɢɣɫɹ ɫɥɭ-
38

ɱɚɣ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɞɢɪɟɤɬɢɜɵ label ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɨɪɝɚɧɢɡɚɰɢɢ ɞɨɫɬɭɩɚ ɤ
ɨɞɧɨɣ ɨɛɥɚɫɬɢ ɩɚɦɹɬɢ, ɫɨɞɟɪɠɚɳɟɣ ɞɚɧɧɵɟ ɪɚɡɧɵɯ ɬɢɩɨɜ.
Ɇɟɬɤɚ ɦɨɠɟɬ ɛɵɬɶ ɬɨɥɶɤɨ ɨɞɧɨɝɨ ɬɢɩɚ – ɥɢɛɨ near, ɥɢɛɨ far.
ɋɭɳɟɫɬɜɭɟɬ ɟɳɟ ɨɞɧɨ ɜɚɠɧɨɟ ɩɨɧɹɬɢɟ ɚɫɫɟɦɛɥɟɪɚ, ɢɦɟɸɳɟɟ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨɟ ɨɬɧɨɲɟɧɢɟ ɤ ɦɟɬɤɚɦ – ɫɱɟɬɱɢɤ ɚɞɪɟɫɚ ɤɨɦɚɧɞ.
Ɍɪɚɧɫɥɹɬɨɪ ɚɫɫɟɦɛɥɟɪɚ ɨɛɪɚɛɚɬɵɜɚɟɬ ɢɫɯɨɞɧɭɸ ɩɪɨɝɪɚɦɦɭ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨ – ɤɨɦɚɧɞɚ ɡɚ ɤɨɦɚɧɞɨɣ. ɉɪɢ ɷɬɨɦ ɨɧ ɜɟɞɟɬ ɫɱɟɬɱɢɤ ɚɞɪɟɫɚ ɤɨɦɚɧɞ, ɤɨɬɨɪɵɣ ɞɥɹ ɩɟɪɜɨɣ ɢɫɩɨɥɧɹɟɦɨɣ ɤɨɦɚɧɞɵ ɪɚɜɟɧ ɧɭɥɸ, ɚ
ɞɚɥɟɟ ɩɨ
ɯɨɞɭ ɨɛɪɚɛɨɬɤɢ ɨɱɟɪɟɞɧɨɣ ɤɨɦɚɧɞɵ ɬɪɚɧɫɥɹɬɨɪɨɦ ɭɜɟɥɢɱɢɜɚɟɬɫɹ ɧɚ ɞɥɢɧɭ
ɷɬɨɣ ɤɨɦɚɧɞɵ. ɋɱɟɬɱɢɤ ɚɞɪɟɫɚ ɤɨɦɚɧɞ – ɷɬɨ ɫɦɟɳɟɧɢɟ ɤɨɧɤɪɟɬɧɨɣ ɤɨɦɚɧɞɵ ɨɬɧɨɫɢɬɟɥɶɧɨ ɧɚɱɚɥɚ ɬɟɤɭɳɟɝɨ ɫɟɝɦɟɧɬɚ ɤɨɞɚ. Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɤɚɠɞɚɹ
ɤɨɦɚɧɞɚ ɜɨ ɜɪɟɦɹ ɬɪɚɧɫɥɹɰɢɢ ɢɦɟɟɬ ɚɞɪɟɫ, ɪɚɜɧɵɣ ɡɧɚɱɟɧɢɸ ɫɱɟɬɱɢɤɚ ɚɞɪɟɫɚ ɤɨɦɚɧɞ.
Ɍɪɚɧɫɥɹɬɨɪ ɚɫɫɟɦɛɥɟɪɚ ɨɛɟɫɩɟɱɢɜɚɟɬ ɞɜɟ ɜɨɡɦɨɠɧɨɫɬɢ ɪɚɛɨɬɵ ɫ ɷɬɢɦ
ɫɱɟɬɱɢɤɨɦ:
–
ɢɫɩɨɥɶɡɨɜɚɧɢɟ ɦɟɬɨɤ, ɚɬɪɢɛɭɬɭ ɫɦɟɳɟɧɢɹ ɤɨɬɨɪɵɯ ɬɪɚɧɫɥɹɬɨɪ ɩɪɢɫɜɚɢɜɚɟɬ ɡɧɚɱɟɧɢɟ ɫɱɟɬɱɢɤɚ ɚɞɪɟɫɚ ɬɨɣ ɤɨɦɚɧɞɵ, ɩɟɪɟɞ ɤɨɬɨɪɨɣ ɨɧɢ ɩɨɹɜɢɥɢɫɶ;
–
ɩɪɢɦɟɧɟɧɢɟ ɫɩɟɰɢɚɥɶɧɨɝɨ ɫɢɦɜɨɥɚ $ ɞɥɹ ɨɛɨɡɧɚɱɟɧɢɹ ɫɱɟɬɱɢɤɚ ɚɞɪɟɫɚ ɤɨɦɚɧɞ, ɩɨɡɜɨɥɹɸɳɟɝɨ ɜ ɥɸɛɨɦ ɦɟɫɬɟ ɩɪɨɝɪɚɦɦɵ ɢɫɩɨɥɶɡɨɜɚɬɶ ɱɢɫɥɟɧɧɨɟ ɡɧɚɱɟɧɢɟ ɫɱɟɬɱɢɤɚ ɚɞɪɟɫɚ.
.model tiny
.code
org 100h
begin:
jmp start
coded db 0c9h,0cbh,0bbh,0cch,0ceh,0b9h,0c8h,0cah,0bch,0d7h
start:
mov ah,01h
int 16h
jz start
xor ax,ax
int 16h
cmp al,1bh
je exit
cmp al,30h
jl start
cmp al,39h
jg start
push cs
39

pop ds
mov bx,offset coded
and al,0fh
xlatb
mov ah,0ah
xor bh,bh
mov cx,1
int 10h
jmp start
exit:
ret
end begin
Ȼɟɡɭɫɥɨɜɧɵɟ ɩɟɪɟɯɨɞɵ
Ɉɩɪɟɞɟɥɟɧɢɟ ɬɨɝɨ, ɱɬɨ ɢɦɟɧɧɨ ɞɨɥɠɧɨ ɩɨɞɜɟɪɝɧɭɬɶɫɹ ɦɨɞɢɮɢɤɚɰɢɢ,
ɡɚɜɢɫɢɬ:
–
ɨɬ ɬɢɩɚ ɨɩɟɪɚɧɞɚ ɜ ɤɨɦɚɧɞɟ ɛɟɡɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ (ɛɥɢɠɧɢɣ ɢɥɢ
ɞɚɥɶɧɢɣ);
–
ɨɬ ɭɤɚɡɚɧɢɹ ɜ ɤɨɦɚɧɞɟ ɩɟɪɟɯɨɞɚ ɩɟɪɟɞ ɚɞɪɟɫɨɦ ɩɟɪɟɯɨɞɚ ɦɨɞɢɮɢɤɚɬɨɪɚ. ɉɪɢ ɷɬɨɦ ɫɚɦ ɚɞɪɟɫ ɩɟɪɟɯɨɞɚ ɦɨɠɟɬ ɧɚɯɨɞɢɬɶɫɹ ɥɢɛɨ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɜ ɤɨɦɚɧɞɟ (ɩɪɹɦɨɣ ɩɟɪɟɯɨɞ), ɥɢɛɨ ɜ ɪɟɝɢɫɬɪɟ ɢɥɢ ɹɱɟɣɤɟ ɩɚɦɹɬɢ
(ɤɨɫɜɟɧɧɵɣ ɩɟɪɟɯɨɞ).
Ɇɨɞɢɮɢɤɚɬɨɪ ɦɨɠɟɬ ɩɪɢɧɢɦɚɬɶ ɫɥɟɞɭɸɳɢɟ ɡɧɚɱɟɧɢɹ:
Neɚr ɪtr – ɩɪɹɦɨɣ ɩɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ ɜɧɭɬɪɢ ɬɟɤɭɳɟɝɨ ɫɟɝɦɟɧɬɚ ɤɨɞɚ.
Fɚr ɪtr – ɩɪɹɦɨɣ ɩɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ ɜ ɞɪɭɝɨɦ ɫɟɝɦɟɧɬɟ ɤɨɞɚ. Ⱥɞɪɟɫ ɩɟ-
ɪɟɯɨɞɚ ɡɚɞɚɟɬɫɹ ɜ ɜɢɞɟ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨɝɨ ɨɩɟɪɚɧɞɚ ɢɥɢ ɚɞɪɟɫɚ.
Wɨrd ɪtr – ɤɨɫɜɟɧɧɵɣ ɩɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ ɜɧɭɬɪɢ ɬɟɤɭɳɟɝɨ ɫɟɝɦɟɧɬɚ
ɤɨɞɚ.
Dwɨrd ɪtr – ɤɨɫɜɟɧɧɵɣ ɩɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ ɜ ɞɪɭɝɨɦ ɫɟɝɦɟɧɬɟ ɤɨɞɚ [17].
Ʉɨɦɚɧɞɚ ɛɟɡɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ Jmp.
Jmp [ɦɨɞɢɮɢɤɚɬɨɪ] ɚɞɪɟɫ_ɩɟɪɟɯɨɞɚ – ɷɬɨ ɛɟɡɭɫɥɨɜɧɵɣ ɩɟɪɟɯɨɞ ɛɟɡ
ɫɨɯɪɚɧɟɧɢɹ ɢɧɮɨɪɦɚɰɢɢ ɨ ɬɨɱɤɟ ɜɨɡɜɪɚɬɚ. Ɇɨɠɧɨ ɜɵɞɟɥɢɬɶ ɬɪɢ ɜɚɪɢɚɧɬɚ
ɜɧɭɬɪɢɫɟɝɦɟɧɬɧɨɝɨ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɤɨɦɚɧɞɵ jmp:
–
ɩɪɹɦɨɣ ɤɨɪɨɬɤɢɣ;
–
ɩɪɹɦɨɣ;
–
ɤɨɫɜɟɧɧɵɣ.
Ⱥɞɪɟɫ_ɩɟɪɟɯɨɞɚ ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɚɞɪɟɫ ɜ ɜɢɞɟ ɦɟɬɤɢ ɥɢɛɨ ɚɞɪɟɫ
ɨɛɥɚɫɬɢ ɩɚɦɹɬɢ, ɜ ɤɨɬɨɪɨɣ ɧɚɯɨɞɢɬɫɹ ɭɤɚɡɚɬɟɥɶ ɩɟɪɟɯɨɞɚ. Ⱦɚɥɶɧɨɫɬɶ ɩɟɪɟɯɨɞɚ ɨɩɪɟɞɟɥɹɟɬɫɹ ɦɟɫɬɨɩɨɥɨɠɟɧɢɟɦ ɨɩɟɪɚɧɞɚ ɚɞɪɟɫ_ɩɟɪɟɯɨɞɚ. ȼɧɭɬɪɢɫɟɝɦɟɧɬɧɵɣ ɩɟɪɟɯɨɞ ɩɪɟɞɩɨɥɚɝɚɟɬ, ɱɬɨ ɢɡɦɟɧɹɟɬɫɹ ɫɨɞɟɪɠɢɦɨɟ ɬɨɥɶɤɨ ɪɟɝɢɫɬɪɚ eip/ip.
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
