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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
–
ɩɪɨɫɬɪɚɧɫɬɜɚ ɩɚɦɹɬɢ, ɤɭɞɚ ɜɯɨɞɹɬ ɩɚɦɹɬɶ, ɚ ɬɚɤɠɟ ɜɢɞɟɨɛɭɮɟɪɵ ɢ
ɉɁɍ;
–
ɩɪɨɫɬɪɚɧɫɬɜɚ ɜɜɨɞɚ/ɜɵɜɨɞɚ (ɩɪɨɫɬɪɚɧɫɬɜɚ ɩɨɪɬɨɜ), ɤɭɞɚ ɜɤɥɸɱɟɧɵ
ɚɞɪɟɫɚ ɨɫɬɚɥɶɧɨɣ ɚɩɩɚɪɚɬɭɪɵ ɤɨɦɩɶɸɬɟɪɚ.
ȿɫɥɢ ɨɛɴɟɦ ɚɞɪɟɫɧɨɝɨ ɩɪɨɫɬɪɚɧɫɬɜɚ ɩɚɦɹɬɢ ɫɨɫɬɚɜɥɹɟɬ 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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]