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

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

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
Ⱥɥɝɨɪɢɬɦ ɪɟɤɭɪɫɢɜɧɨɝɨ ɫɩɭɫɤɚ ɦɨɠɟɬ ɨɤɚɡɚɬɶɫɹ ɧɟɷɮɮɟɤɬɢɜɧɵɦ ɜ ɫɥɭɱɚɟ, ɟɫɥɢ ɩɪɢ ɜɨɡɜɪɚɳɟɧɢɢ ɢɡ ɜɵɡɵɜɚɟɦɨɣ ɮɭɧɤɰɢɢ ɩɨɜɟɞɟɧɢɟ ɩɪɨ­ɝɪɚɦɦɵ ɨɬɤɥɨɧɹɟɬɫɹ ɨɬ ɨɠɢɞɚɟɦɨɝɨ. ɇɚɩɪɢɦɟɪ, ɜ ɤɨɞɟ ɮɭɧɤɰɢɢ ɦɨɠɟɬ ɩɪɟɞɧɚɦɟɪɟɧɧɨ ɦɨɞɢɮɢɰɢɪɨɜɚɬɶɫɹ ɚɞɪɟɫ ɜɨɡɜɪɚɬɚ.
Ʉɨɦɚɧɞɵ ɜɨɡɜɪɚɬɚ. ȼ ɧɟɤɨɬɨɪɵɯ ɫɥɭɱɚɹɯ ɚɥɝɨɪɢɬɦ ɪɟɤɭɪɫɢɜɧɨɝɨ ɫɩɭɫɤɚ ɧɟ ɦɨɠɟɬ ɛɵɬɶ ɜɵɩɨɥɧɟɧ. Ʉɨɦɚɧɞɚ ɜɨɡɜɪɚɬɚ ɢɡ ɮɭɧɤɰɢɢ (ɧɚɩɪɢ­ɦɟɪ, ret ×86) ɧɟ ɩɪɟɞɨɫɬɚɜɥɹɟɬ ɢɧɮɨɪɦɚɰɢɢ
ɨ ɬɨɦ, ɤɚɤɚɹ ɤɨɦɚɧɞɚ ɛɭɞɟɬ ɜɵɩɨɥɧɟɧɚ ɞɚɥɟɟ. ȿɫɥɢ ɩɪɨɝɪɚɦɦɚ ɛɭɞɟɬ ɧɚ ɫɚɦɨɦ ɞɟɥɟ ɡɚɩɭɳɟɧɚ, ɬɨ ɭɩɪɚɜɥɟɧɢɟ ɛɭɞɟɬ ɩɟɪɟɞɚɧɨ ɩɨ ɚɞɪɟɫɭ, ɪɚɫɩɨɥɨɠɟɧɧɨɦɭ ɧɚ ɜɟɪɲɢɧɟ ɫɬɟ­ɤɚ. ɍ ɞɢɡɚɫɫɟɦɛɥɟɪɚ ɨɬɫɭɬɫɬɜɭɟɬ ɜɨɡɦɨɠɧɨɫɬɶ ɞɨɫɬɭɩɚ ɤ ɫɬɟɤɭ. ȼɦɟɫɬɨ ɷɬɨɝɨ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɟ ɜɧɟɡɚɩɧɨ ɨɫɬɚɧɚɜɥɢɜɚɟɬɫɹ. ȼ ɷɬɨɦ ɫɥɭɱɚɟ ɚɥ­ɝɨɪɢɬɦ ɪɟɤɭɪɫɢɜɧɨɝɨ ɫɩɭɫɤɚ ɨɛɪɚɳɚɟɬɫɹ ɤ ɫɩɢɫɤɭ ɨɬɥɨɠɟɧɧɵɯ ɚɞɪɟɫɨɜ, ɢ ɩɪɨɰɟɫɫ ɞɢɡɚɫɫɟɦɛɥɢɪɨɜɚɧɢɹ ɜɨɡɨɛɧɨɜɥɹɟɬɫɹ. ɗɬɨɬ ɪɟɤɭɪɫɢɜɧɵɣ ɩɪɨɰɟɫɫ ɨɬɪɚɠɚɟɬ ɫɦɵɫɥ ɧɚɡɜɚɧɢɹ ɚɥɝɨɪɢɬɦɚ.
ȼɵɩɨɥɧɟɧɢɟ ɚɥɝɨɪɢɬɦɚ ɪɟɤɭɪɫɢɜɧɨɝɨ ɫɩɭɫɤɚ ɩɨɡɜɨɥɹɟɬ ɪɚɡɞɟɥɢɬɶ ɤɨɞ ɢ ɞɚɧɧɵɟ. Ƚɥɚɜɧɵɦ ɧɟɞɨɫɬɚɬɤɨɦ ɬɚɤɨɝɨ ɩɨɞɯɨɞɚ ɹɜɥɹɟɬɫɹ ɧɟɫɩɨɫɨɛ­ɧɨɫɬɶ ɪɚɫɩɨɡɧɚɜɚɬɶ ɜɟɬɜɢ, ɨɛɪɚɡɭɟɦɵɟ ɬɚɤɢɦ ɤɨɦɚɧɞɚɦɢ, ɤɚɤ jump ɢ call, ɢɫɩɨɥɶɡɭɸɳɢɦɢ ɞɥɹ ɚɞɪɟɫɚɰɢɢ ɬɚɛɥɢɰɵ ɩɨɢɫɤɚ. ȼ ɫɨɱɟɬɚɧɢɢ ɫ ɷɜɪɢɫɬɢ­ɱɟɫɤɢɦɢ ɦɟɬɨɞɚɦɢ ɞɥɹ ɪɚɫɩɨɡɧɚɜɚɧɢɹ ɭɤɚɡɚɬɟɥɟɣ ɧɚ ɤɨɞ, ɚɥɝɨɪɢɬɦ ɪɟɤɭɪ­ɫɢɜɧɨɝɨ ɫɩɭɫɤɚ ɫɩɨɫɨɛɟɧ ɨɛɟɫɩɟɱɢɬɶ ɯɨɪɨɲɟɟ ɩɨɤɪɵɬɢɟ ɤɨɞɚ ɜ ɫɨɱɟɬɚɧɢɢ ɫ ɪɚɡɞɟɥɟɧɢɟɦ ɤɨɞɚ ɢ ɞɚɧɧɵɯ.
22. ɉɪɨɝɪɚɦɦɚ «*.EXE»
ȼ ɨɬɥɢɱɢɟ ɨɬ com-ɩɪɨɝɪɚɦɦɵ, ɡɚɝɪɭɠɚɟɦɨɣ ɜɫɟɝɞɚ ɜ ɨɞɢɧ ɫɟɝɦɟɧɬ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ (ɨɛɴɟɦɨɦ 64 K), ɩɪɨɝɪɚɦɦɚ ɬɢɩɚ «.exe» ɦɨɠɟɬ ɡɚɧɢ­ɦɚɬɶ ɧɟɫɤɨɥɶɤɨ ɬɚɤɢɯ ɫɟɝɦɟɧɬɨɜ. ɋɥɟɞɫɬɜɢɟɦ ɷɬɨɝɨ ɹɜɥɹɟɬɫɹ ɧɚɥɢɱɢɟ ɜ ɩɪɨɝɪɚɦɦɟ ɤɨɦɚɧɞ, ɜɵɩɨɥɧɹɸɳɢɯ ɡɚɩɢɫɶ ɜ ɪɟɝɢɫɬɪɵ ɚɞɪɟɫɨɜ-ɫɟɝɦɟɧɬɨɜ, ɬɪɟɛɭɸɳɢɯ ɧɚɫɬɪɨɣɤɢ ɜɨ ɜɪɟɦɹ ɡɚɝɪɭɡɤɢ.
ȼ ɪɟɡɭɥɶɬɚɬɟ ɩɨɥɭɱɟɧɢɟ «.exe» ɩɪɨɝɪɚɦɦɵ ɧɟ ɬɨɥɶɤɨ ɬɪɟɛɭɟɬ ɤɨɩɢɪɨ­ɜɚɧɢɹ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɝɨ ɮɚɣɥɚ ɜ ɨɩɟɪɚɬɢɜɧɭɸ ɩɚɦɹɬɶ, ɧɨ ɩɪɟɞɩɨɥɚɝɚɟɬ ɩɪɟɨɛɪɚɡɨɜɚɧɢɟ ɷɬɨɝɨ ɮɚɣɥɚ ɡɚɝɪɭɡɱɢɤɨɦ. ȼ ɪɟɡɭɥɶɬɚɬɟ, ɜɨ-ɩɟɪɜɵɯ, ɡɚɩɢ­ɫɵɜɚɸɬɫɹ PSP ɩɪɨɝɪɚɦɦɵ, ɚ ɜɨ-ɜɬɨɪɵɯ, ɧɚɫɬɪɚɢɜɚɸɬɫɹ ɧɟɤɨɬɨɪɵɟ ɚɞɪɟɫɚ ɜ ɩɨɥɹɯ ɦɚɲɢɧɧɵɯ ɤɨɦɚɧɞ. ɇɚɥɢɱɢɟ ɩɟɪɜɨɣ ɢɡ ɷɬɢɯ ɮɭɧɤɰɢɣ ɨɛɭɫɥɨɜɥɟ­ɧɨ ɬɟɦ, ɱɬɨ ɩɪɟɨɛɪɚɡɭɟɦɵɣ exe-ɮɚɣɥ ɜɨɨɛɳɟ ɧɟ ɫɨɞɟɪɠɢɬ PSP. ȼɦɟɫɬɨ ɧɟɝɨ ɜ ɧɚɱɚɥɟ ɷɬɨɝɨ ɮɚɣɥɚ ɧɚɯɨɞɢɬɫɹ ɡɚɝɨɥɨɜɨɤ,
ɪɚɡɦɟɪ ɤɨɬɨɪɨɝɨ ɤɪɚɬɟɧ 512 ɛɚɣɬɚɦ, ɫɨɞɟɪɠɚɳɢɣ ɭɩɪɚɜɥɹɸɳɭɸ ɢɧɮɨɪɦɚɰɢɸ, ɢɫɩɨɥɶɡɭɟɦɭɸ ɡɚ­ɝɪɭɡɱɢɤɨɦ ɞɥɹ ɩɨɥɭɱɟɧɢɹ «.exe» ɩɪɨɝɪɚɦɦɵ.
ɋɜɨɸ ɪɚɛɨɬɭ ɩɨ ɫɨɡɞɚɧɢɸ «.exe» ɮɚɣɥɚ ɪɟɞɚɤɬɨɪ ɫɜɹɡɟɣ ɧɚɱɢɧɚɟɬ ɫ ɬɨɝɨ, ɱɬɨ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨ ɡɚɩɢɫɵɜɚɟɬ ɜ ɫɜɨɸ ɩɚɦɹɬɶ ɤɨɞ (ɤɨɦɚɧɞɵ), ɞɚɧɧɵɟ ɢ ɫɬɟɤ ɛɭɞɭɳɟɣ ɩɪɨɝɪɚɦɦɵ. ɉɨɪɹɞɨɤ ɪɚɫɩɨɥɨɠɟɧɢɹ ɷɬɢɯ ɱɚɫɬɟɣ ɩɪɨɝɪɚɦɦɵ, ɜ ɨɬɥɢɱɢɟ ɨɬ «.com» ɮɚɣɥɚ, ɦɨɠɟɬ ɛɵɬɶ ɥɸɛɵɦ. ɂɯ ɫɨɞɟɪ-
101
ɠɢɦɨɟ ɪɟɞɚɤɬɨɪ ɫɜɹɡɟɣ ɫɱɢɬɵɜɚɟɬ ɢɡ ɞɨɫɬɭɩɧɵɯ ɟɦɭ ɨɛɴɟɤɬɧɵɯ ɦɨɞɭɥɟɣ ɩɪɨɝɪɚɦɦɵ. Ɋɟɞɚɤɬɨɪ ɫɜɹɡɟɣ, ɜɵɩɨɥɧɹɹ ɪɚɡɦɟɳɟɧɢɟ ɩɪɨɝɪɚɦɦɵ ɜ ɩɚɦɹɬɢ, ɨɛɪɚɳɚɟɬɫɹ ɫ ɟɟ ɚɞɪɟɫɚɦɢ ɬɚɤ, ɤɚɤ ɛɭɞɬɨ ɩɪɨɝɪɚɦɦɚ ɡɚɝɪɭɠɟɧɚ ɜ ɨɩɟɪɚ­ɬɢɜɧɭɸ ɩɚɦɹɬɶ, ɧɚɱɢɧɚɹ ɫ ɭɫɥɨɜɧɨɝɨ ɚɞɪɟɫɚ 00000h. ɉɨɷɬɨɦɭ ɫɱɢɬɚɟɬɫɹ, ɱɬɨ ɱɚɫɬɶ ɩɪɨɝɪɚɦɦɵ (ɤɨɞ, ɞɚɧɧɵɟ ɢɥɢ ɫɬɟɤ), ɪɚɡɦɟɳɚɟɦɚɹ ɩɟɪɜɨɣ, ɢɦɟɟɬ ɧɚɱɚɥɶɧɵɣ ɥɨɝɢɱɟɫɤɢɣ ɚɞɪɟɫ 0000h:0000h. ȿɫɥɢ, ɧɚɩɪɢɦɟɪ
, ɜɬɨɪɚɹ ɱɚɫɬɶ ɩɪɨɝɪɚɦɦɵ ɧɚɱɢɧɚɟɬɫɹ ɫ ɭɫɥɨɜɧɨɝɨ ɪɟɚɥɶɧɨɝɨ ɚɞɪɟɫɚ 000E7h, ɬɨ ɟɦɭ ɫɨ­ɨɬɜɟɬɫɬɜɭɟɬ ɧɚɱɚɥɶɧɵɣ ɥɨɝɢɱɟɫɤɢɣ ɚɞɪɟɫ 000Eh:0007h. ɉɪɢɦɟɧɟɧɢɟ ɬɚɤɢɯ ɭɫɥɨɜɧɵɯ ɚɞɪɟɫɨɜ ɩɨɡɜɨɥɹɟɬ ɪɟɞɚɤɬɨɪɭ ɫɜɹɡɟɣ ɜɵɩɨɥɧɢɬɶ ɡɚɩɢɫɶ ɱɢɫɥɟɧ­ɧɵɯ ɡɧɚɱɟɧɢɣ ɞɥɹ ɜɫɟɯ ɜɧɟɲɧɢɯ ɚɞɪɟɫɨɜ, ɨɫɬɚɜɲɢɯɫɹ ɧɟ ɩɪɨɫɬɚɜɥɟɧɧɵɦɢ ɩɨɫɥɟ ɬɪɚɧɫɥɹɰɢɢ.
ɂɫɤɥɸɱɟɧɢɟ ɫɨɫɬɚɜɥɹɸɬ ɤɨɦɚɧɞɵ, ɜɵɩɨɥɧɹɸɳɢɟ ɡɚɩɢɫɶ ɜ ɪɟɝɢɫɬɪɵ
ɡɧɚɱɟɧɢɣ ɚɞɪɟɫɨɜ-ɫɟɝɦɟɧɬɨɜ. Ʉ ɬɚɤɢɦ ɤɨɦɚɧɞɚɦ ɨɬɧɨɫɹɬɫɹ,
ɜɨ-ɩɟɪɜɵɯ, ɤɨɦɚɧɞɵ ɞɚɥɶɧɟɝɨ ɩɟɪɟɯɨɞɚ JMP ɢ CALL (ɨɧɢ ɜɵɩɨɥɧɹɸɬ ɡɚɩɢɫɶ ɚɞɪɟɫɚ­ɫɟɝɦɟɧɬɚ ɜ ɪɟɝɢɫɬɪ CS), ɚ ɜɨ-ɜɬɨɪɵɯ, ɤɨɦɚɧɞɵ MOV, ɜɵɩɨɥɧɹɸɳɢɟ ɡɚ­ɩɢɫɶ ɚɞɪɟɫɨɜ-ɫɟɝɦɟɧɬɨɜ ɜ ɪɟɝɢɫɬɪɵ ɞɚɧɧɵɯ (ɢɡ ɧɢɯ ɞɪɭɝɢɟ ɤɨɦɚɧɞɵ MOV ɩɟɪɟɩɢɫɵɜɚɸɬ ɡɧɚɱɟɧɢɹ ɜ ɪɟɝɢɫɬɪɵ ɫɟɝɦɟɧɬɨɜ DS, ES ɢɥɢ SS).
ɇɚɩɪɢɦɟɪ, ɫɥɟɞɭɸɳɢɟ ɞɜɚ ɨɩɟɪɚɬɨɪɚ ɢɫɯɨɞɧɨɣ ɩɪɨɝɪɚɦɦɵ ɜɵɩɨɥ­ɧɹɸɬ ɡɚɩɢɫɶ ɜ ɪɟɝɢɫɬɪ DS ɬɨɝɨ ɚɞɪɟɫɚ-ɫɟɝɦɟɧɬɚ, ɤɨɬɨɪɵɣ ɫɨɨɬɜɟɬɫɬɜɭɟɬ ɬɨɱɤɟ ɢɫɯɨɞɧɨɣ ɩɪɨɝɪɚɦɦɵ ɫ ɦɟɬɤɨɣ Msg:
MOV DX, SEG
Msg MOV DS, DX
ɉɟɪɜɵɣ ɨɩɟɪɚɬɨɪ MOV ɬɪɚɧɫɥɢɪɭɟɬɫɹ ɜ ɬɪɟɯ-, ɚ ɜɬɨɪɨɣ – ɜ 2-ɛɚɣ­ɬɨɜɭɸ ɦɚɲɢɧɧɭɸ ɤɨɦɚɧɞɭ. ɉɪɢ ɷɬɨɦ ɜɬɨɪɨɣ ɢ ɬɪɟɬɢɣ ɛɚɣɬɵ ɩɟɪɜɨɣ ɤɨ­ɦɚɧɞɵ ɢɫɩɨɥɶɡɭɸɬɫɹ ɞɥɹ ɪɚɡɦɟɳɟɧɢɹ ɚɞɪɟɫɚ-ɫɟɝɦɟɧɬɚ, ɡɚɝɪɭɠɚɟɦɨɝɨ ɜ ɪɟɝɢɫɬɪ DX.
Ɍɚɤ ɤɚɤ ɚɞɪɟɫɚ-ɫɟɝɦɟɧɬɵ
ɡɚɜɢɫɹɬ ɨɬ ɮɚɤɬɢɱɟɫɤɨɝɨ ɪɚɡɦɟɳɟɧɢɹ ɛɭɞɭɳɟɣ ɩɪɨɝɪɚɦɦɵ ɜ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ, ɤɨɬɨɪɨɟ ɪɟɞɚɤɬɨɪ ɫɜɹɡɟɣ «ɧɟ ɡɧɚɟɬ», ɬɨ ɨɧ ɧɟ ɦɨɠɟɬ ɩɪɨɫɬɚɜɢɬɶ ɱɢɫɥɟɧɧɵɟ ɡɧɚɱɟɧɢɹ ɚɞɪɟɫɨɜ-ɫɟɝɦɟɧɬɨɜ ɜ ɩɨɥɹ ɦɚɲɢɧ­ɧɵɯ ɤɨɦɚɧɞ. Ɍɟɦ ɧɟ ɦɟɧɟɟ, ɨɧ ɜɵɩɨɥɧɹɟɬ ɡɧɚɱɢɬɟɥɶɧɭɸ ɩɨɞɝɨɬɨɜɤɭ ɞɥɹ ɛɭ­ɞɭɳɟɣ ɩɪɨɫɬɚɧɨɜɤɢ ɷɬɢɯ ɡɧɚɱɟɧɢɣ ɡɚɝɪɭɡɱɢɤɨɦ. Ⱦɥɹ ɷɬɨɝɨ, ɜɨ-ɩɟɪɜɵɯ, ɪɟ­ɞɚɤɬɨɪ ɫɜɹɡɟɣ ɩɨɦɟɳɚɟɬ
ɜ ɷɬɢ ɩɨɥɹ ɭɫɥɨɜɧɵɟ ɚɞɪɟɫɚ-ɫɟɝɦɟɧɬɵ, ɩɨɥɭɱɟɧɧɵɟ
ɜ ɩɪɟɞɩɨɥɨɠɟɧɢɢ, ɱɬɨ ɩɪɨɝɪɚɦɦɚ ɡɚɝɪɭɠɚɟɬɫɹ ɜ ɩɚɦɹɬɶ, ɧɚɱɢɧɚɹ ɫ ɧɭɥɟɜɨɝɨ ɚɞɪɟɫɚ. ȼɨ-ɜɬɨɪɵɯ, ɪɟɞɚɤɬɨɪ ɫɜɹɡɟɣ ɫɨɡɞɚɟɬ ɬɚɛɥɢɰɭ ɧɚɫɬɪɨɣɤɢ, ɡɚɧɢɦɚɸ­ɳɭɸ ɩɨɱɬɢ ɜɟɫɶ ɨɛɴɟɦ ɡɚɝɨɥɨɜɤɚ «.exe» ɮɚɣɥɚ. ɗɬɚ ɬɚɛɥɢɰɚ ɫɨɫɬɨɢɬ ɢɡ 4-ɛɚɣɬɨɜɵɯ ɩɨɥɟɣ, ɤɚɠɞɨɟ ɢɡ ɤɨɬɨɪɵɯ ɫɨɨɬɜɟɬɫɬɜɭɟɬ ɨɞɧɨɦɭ ɚɞɪɟɫɭ­ɫɟɝɦɟɧɬɭ, ɢɫɩɨɥɶɡɭɟɦɨɦɭ ɤɚɤɨɣ-ɬɨ ɤɨɦɚɧɞɨɣ
ɩɪɨɝɪɚɦɦɵ ɢ ɬɪɟɛɭɸɳɟɦɭ ɧɚɫɬɪɨɣɤɢ ɜ ɡɚɜɢɫɢɦɨɫɬɢ ɨɬ ɮɚɤɬɢɱɟɫɤɨɝɨ ɪɚɡɦɟɳɟɧɢɹ ɩɪɨɝɪɚɦɦɵ ɜ ɩɚɦɹɬɢ. ȼ ɤɚɱɟɫɬɜɟ ɫɨɞɟɪɠɢɦɨɝɨ ɷɬɨɝɨ ɩɨɥɹ ɪɟɞɚɤɬɨɪ ɫɜɹɡɟɣ ɡɚɩɢɫɵɜɚɟɬ ɭɫɥɨɜɧɵɣ ɥɨɝɢɱɟɫɤɢɣ ɚɞɪɟɫ (ɫɟɝɦɟɧɬ ɢ ɫɦɟɳɟɧɢɟ) ɬɨɣ ɹɱɟɣɤɢ (ɞɜɭɯ ɛɚɣɬɨɜ) ɩɪɨɝɪɚɦ­ɦɵ, ɤɨɬɨɪɚɹ ɫɨɞɟɪɠɢɬ ɚɞɪɟɫ-ɫɟɝɦɟɧɬ, ɬɪɟɛɭɸɳɢɣ ɧɚɫɬɪɨɣɤɢ.
102
ɇɚɫɬɪɨɣɤɚ ɚɞɪɟɫɨɜ-ɫɟɝɦɟɧɬɨɜ ɩɪɨɝɪɚɦɦɵ ɩɪɨɢɡɜɨɞɢɬɫɹ ɡɚɝɪɭɡɱɢɤɨɦ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɩɨɫɥɟ ɪɚɡɦɟɳɟɧɢɹ ɩɪɨɝɪɚɦɦɵ (ɜ ɬɨɦ ɱɢɫɥɟ ɢ PSP) ɜ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ. Ⱦɥɹ ɷɬɨɝɨ ɡɚɝɪɭɡɱɢɤ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨ ɩɪɨɫɦɚɬɪɢ­ɜɚɟɬ ɬɚɛɥɢɰɭ ɧɚɫɬɪɨɣɤɢ, ɫɱɢɬɵɜɚɹ ɢɡ ɧɟɟ ɭɤɚɡɚɬɟɥɶ ɧɚ ɨɱɟɪɟɞɧɭɸ ɩɨɫɥɟ­ɞɨɜɚɬɟɥɶɧɨɫɬɶ, ɫɨɫɬɨɹɳɭɸ ɢɡ ɞɜɭɯ ɛɚɣɬɨɜ ɩɪɨɝɪɚɦɦɵ ɢ ɬɪɟɛɭɸɳɭɸ ɧɚɫɬɪɨɣɤɢ. Ɂɚɬɟɦ ɡɚɝɪɭɡɱɢɤ ɩɪɢɛɚɜɥɹɟɬ ɤ ɢɯ ɫɨɞɟɪɠɢɦɨɦɭ (ɬɨ ɟɫɬɶ ɤ
ɭɫɥɨɜɧɨɦɭ ɚɞɪɟɫɭ-ɫɟɝɦɟɧɬɭ) ɧɨɦɟɪ ɬɨɝɨ ɩɚɪɚɝɪɚɮɚ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ,
ɧɚɱɢɧɚɹ ɫ ɤɨɬɨɪɨɝɨ ɩɪɨɝɪɚɦɦɚ ɡɚɝɪɭɠɟɧɚ ɮɚɤɬɢɱɟɫɤɢ.
ɉɨɫɥɟ ɬɨɝɨ ɤɚɤ ɩɪɨɝɪɚɦɦɚ ɡɚɝɪɭɠɟɧɚ, ɡɚɝɪɭɡɱɢɤ ɩɟɪɟɞɚɟɬ ɟɣ ɭɩɪɚɜ­ɥɟɧɢɟ. ɋɟɝɦɟɧɬɧɵɟ ɪɟɝɢɫɬɪɵ ɢ ɭɤɚɡɚɬɟɥɢ ɫɬɟɤɚ SP ɜ ɦɨɦɟɧɬ ɩɟɪɟɞɚɱɢ ɭɩɪɚɜɥɟɧɢɹ «.exe» ɩɪɨɝɪɚɦɦɟ ɫɨɞɟɪɠɚɬ ɧɨɦɟɪ ɧɚɱɚɥɶɧɨɝɨ ɩɚɪɚɝɪɚɮɚ PSP. Ȼɥɚɝɨɞɚɪɹ ɷɬɨɦɭ ɩɪɨɝɪɚɦɦɚ ɦɨɠɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶ ɩɨɥɟɡɧɭɸ ɢɧɮɨɪɦɚɰɢɸ, ɫɨɞɟɪɠɚɳɭɸɫɹ ɜ PSP. ɉɪɨɝɪɚɦɦɚ ɡɚɩɨɦɢɧɚɟɬ ɩɟɪɜɨɧɚɱɚɥɶɧɨɟ ɡɧɚɱɟɧɢɟ ɷɬɢɯ ɪɟɝɢɫɬɪɨɜ ɢ ɨɛɵɱɧɨ ɡɚɩɢɫɵɜɚɟɬ ɜ ɧɢɯ ɧɨɜɨɟ ɡɧɚɱɟɧɢɟ, ɭɤɚɡɵɜɚɸɳɟɟ ɧɚ ɧɚɱɚɥɨ ɨɛɥɚɫɬɢ ɞɚɧɧɵɯ ɩɪɨɝɪɚɦɦɵ. ȼ CS ɡɚɝɪɭɡɱɢɤ ɩɨɦɟɳɚɟɬ ɧɚɱɚɥɶ­ɧɵɣ ɧɨɦɟɪ ɩɚɪɚɝɪɚɮɚ ɧɟ PSP, ɚ ɨɛɥɚɫɬɢ ɤɨɞɚ ɩɪɨɝɪɚɦɦɵ. Ⱥɧɚɥɨɝɢɱɧɨ ɫɨ­ɞɟɪɠɢɦɨɟ SS ɭɤɚɡɵɜɚɟɬ ɧɚ ɝɪɚɧɢɰɭ ɨɛɥɚɫɬɢ ɫɬɟɤɚ ɩɪɨɝɪɚɦɦɵ.
ɂɫɯɨɞɧɚɹ ɩɪɨɝɪɚɦɦɚ, ɜɵɩɨɥɧɟɧɧɚɹ ɧɚ ɚɫɫɟɦɛɥɟɪɟ, ɨɪɢɟɧɬɢɪɨɜɚɧɧɚɹ ɧɚ ɩɨɥɭɱɟɧɢɟ «.exe» ɩɪɨɝɪɚɦɦɵ, ɤɪɨɦɟ ɜɢɪɬɭɚɥɶɧɵɯ ɫɟɝɦɟɧɬɨɜ ɤɨɞɚ ɢ ɞɚɧɧɵɯ, ɨɛɹɡɚɬɟɥɶɧɨ ɢɦɟɟɬ ɜɢɪɬɭɚɥɶɧɵɣ ɫɟɝɦɟɧɬ ɫɬɟɤɚ. ɉɨɪɹɞɨɤ ɡɚɩɢɫɢ ɷɬɢɯ ɫɟɝɦɟɧɬɨɜ ɜ ɩɪɨɝɪɚɦɦɟ ɦɨɠɟɬ ɛɵɬɶ ɪɚɡɥɢɱɧɵɦ. ȼ ɤɚɱɟɫɬɜɟ ɬɨɱɤɢ ɜɯɨɞɚ ɜ ɩɪɨɝɪɚɦɦɭ (ɨɩɟɪɚɧɞ ɨɩɟɪɚɬɨɪɚ END) ɦɨɠɟɬ ɛɵɬɶ ɡɚɞɚɧ ɥɸɛɨɣ ɢɫɩɨɥɧɢɬɟɥɶɧɵɣ ɨɩɟɪɚɬɨɪ ɩɪɨɝɪɚɦɦɵ.
23. Ɋɟɡɢɞɟɧɬɧɵɟ ɩɪɨɝɪɚɦɦɵ
Ɉɛɵɱɧɵɟ ɩɪɢɤɥɚɞɧɵɟ ɩɪɨɝɪɚɦɦɵ ɩɪɢɫɭɬɫɬɜɭɸɬ ɜ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚ­ɦɹɬɢ ɬɨɥɶɤɨ ɜɨ ɜɪɟɦɹ ɫɜɨɟɝɨ ɜɵɩɨɥɧɟɧɢɹ. Ʉɨɝɞɚ ɨɧɨ ɡɚɜɟɪɲɟɧɨ (ɧɚɩɪɢ­ɦɟɪ, ɜ ɪɟɡɭɥɶɬɚɬɟ ɫɢɫɬɟɦɧɨɝɨ ɜɵɡɨɜɚ INT 21h, ɮɭɧɤɰɢɹ 4Ch), ɜɫɹ ɡɚɧɢ­ɦɚɜɲɚɹɫɹ ɩɪɨɝɪɚɦɦɨɣ ɩɚɦɹɬɶ ɨɫɜɨɛɨɠɞɚɟɬɫɹ ɢ ɦɨɠɟɬ ɛɵɬɶ ɪɚɫɩɪɟɞɟɥɟɧɚ ɞɪɭɝɨɣ ɩɪɨɝɪɚɦɦɟ. ȿɫɥɢ ɩɪɨɝɪɚɦɦɚ ɛɭɞɟɬ ɜɨɫɬɪɟɛɨɜɚɧɚ ɜ ɞɚɥɶɧɟɣɲɟɦ ɞɥɹ ɦɧɨɝɨɤɪɚɬɧɨɝɨ ɨɛɫɥɭɠɢɜɚɧɢɹ ɞɪɭɝɢɯ ɩɪɢɤɥɚɞɧɵɯ ɩɪɨɝɪɚɦɦ ɢ/ɢɥɢ ɨɫɨɛɨɣ ɨɛɪɚɛɨɬɤɢ ɤɚɤɢɯ-ɬɨ ɫɨɛɵɬɢɣ, ɜɨɡɧɢɤɚɸɳɢɯ ɜ ɜɵɱɢɫɥɢɬɟɥɶɧɨɣ ɫɢ­ɫɬɟɦɟ, ɬɨ ɠɟɥɚɬɟɥɶɧɨ ɫɞɟɥɚɬɶ ɩɪɨɝɪɚɦɦɭ ɪɟɡɢɞɟɧɬɧɨɣ.
Ɋɟɡɢɞɟɧɬɧɚɹ ɩɪɨɝɪɚɦɦɚ – ɩɪɨɝɪɚɦɦɚ, ɩɨɫɬɨɹɧɧɨ ɧɚɯɨɞɹɳɚɹɫɹ ɜ ɨɩɟ­ɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ. ɇɚɩɪɢɦɟɪ, ɪɟɡɢɞɟɧɬɧɚ ɨɫɧɨɜɧɚɹ ɱɚɫɬɶ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɵ, ɧɚɡɵɜɚɟɦɚɹ ɹɞɪɨɦ.
Ⱦɥɹ ɬɨɝɨ ɱɬɨɛɵ ɫɞɟɥɚɬɶ ɩɪɨɝɪɚɦɦɭ ɪɟɡɢɞɟɧɬɧɨɣ, ɞɨɫɬɚɬɨɱɧɨ ɜɨɫ­ɩɨɥɶɡɨɜɚɬɶɫɹ ɫɢɫɬɟɦɧɵɦ ɜɵɡɨɜɨɦ INT 27h. Ɉɧ ɡɚɜɟɪɲɚɟɬ ɜɵɩɨɥɧɟɧɢɟ ɩɪɨɝɪɚɦɦɵ, ɨɫɬɚɜɢɜ ɟɟ
ɜ ɩɚɦɹɬɢ. ɉɟɪɟɞ ɩɪɢɦɟɧɟɧɢɟɦ ɜɵɡɨɜɚ ɩɪɨɝɪɚɦɦɚ ɞɨɥɠɧɚ ɩɨɦɟɫɬɢɬɶ ɜ ɪɟɝɢɫɬɪ DX ɚɞɪɟɫ-ɫɦɟɳɟɧɢɟ ɞɥɹ ɛɚɣɬɚ, ɪɚɫɩɨɥɨɠɟɧ­ɧɨɝɨ ɩɨɫɥɟ ɪɟɡɢɞɟɧɬɧɨɣ ɩɪɨɝɪɚɦɦɵ.
103
ɋɨɡɞɚɧɧɚɹ ɪɟɡɢɞɟɧɬɧɚɹ ɩɪɨɝɪɚɦɦɚ ɡɚɧɢɦɚɟɬ ɫɜɨɟ ɦɟɫɬɨ ɜ ɩɚɦɹɬɢ, ɧɨ ɧɢɱɟɝɨ ɧɟ ɪɚɛɨɬɚɟɬ (ɧɟ ɜɵɩɨɥɧɢɦɚ ɧɚ ɰɟɧɬɪɚɥɶɧɨɦ ɩɪɨɰɟɫɫɨɪɟ). ɗɬɨ ɩɪɨ­ɞɨɥɠɚɟɬɫɹ ɞɨ ɬɟɯ ɩɨɪ, ɩɨɤɚ ɩɪɨɝɪɚɦɦɚ ɧɟ ɛɭɞɟɬ ɢɧɢɰɢɢɪɨɜɚɧɚ (ɡɚɩɭɳɟɧɚ). ȿɞɢɧɫɬɜɟɧɧɨ ɜɨɡɦɨɠɧɵɦ ɢɫɬɨɱɧɢɤɨɦ ɬɚɤɨɝɨ ɢɧɢɰɢɢɪɨɜɚɧɢɹ ɹɜɥɹɟɬɫɹ ɩɨ­ɫɬɭɩɥɟɧɢɟ ɜ ɰɟɧɬɪɚɥɶɧɵɣ ɩɪɨɰɟɫɫɨɪ ɫɢɝɧɚɥɚ ɩɪɟɪɵɜɚɧɢɹ. ɉɨɷɬɨɦɭ ɪɟɡɢ­ɞɟɧɬɧɚɹ ɩɪɨɝɪɚɦɦɚ ɜɫɟɝɞɚ ɹɜɥɹɟɬɫɹ ɨɛɪɚɛɨɬɱɢɤɨɦ ɩɪɟɪɵɜɚɧɢɣ.
Ɉɛɹɡɚɬɟɥɶɧɵɦ
ɭɫɥɨɜɢɟɦ ɡɚɩɭɫɤɚɟɦɨɫɬɢ ɨɛɪɚɛɨɬɱɢɤɚ ɩɪɟɪɵɜɚɧɢɣ ɹɜ­ɥɹɟɬɫɹ ɪɚɡɦɟɳɟɧɢɟ ɟɝɨ ɫɬɚɪɬɨɜɨɝɨ ɚɞɪɟɫɚ ɜ ɜɟɤɬɨɪɟ ɩɪɟɪɵɜɚɧɢɣ, ɧɨɦɟɪ ɤɨɬɨɪɨɝɨ ɫɨɜɩɚɞɚɟɬ ɫ ɧɨɦɟɪɨɦ ɩɪɟɪɵɜɚɧɢɹ. Ⱦɥɹ ɬɚɤɨɝɨ ɪɚɡɦɟɳɟɧɢɹ ɫɥɟ­ɞɭɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶ ɫɢɫɬɟɦɧɵɣ ɜɵɡɨɜ INT 21h (ɮɭɧɤɰɢɹ 25h). ɉɟɪɟɞ ɩɪɢ­ɦɟɧɟɧɢɟɦ ɜɵɡɨɜɚ ɩɪɨɝɪɚɦɦɚ ɞɨɥɠɧɚ ɩɨɦɟɫɬɢɬɶ ɜ ɪɟɝɢɫɬɪ AL ɧɨɦɟɪ ɩɪɟ­ɪɵɜɚɧɢɹ, ɚ ɜ ɪɟɝɢɫɬɪɵ DS ɢ DX – ɫɨɨɬɜɟɬɫɬɜɟɧɧɨ
ɚɞɪɟɫ-ɫɟɝɦɟɧɬ ɢ ɚɞɪɟɫ-
ɫɦɟɳɟɧɢɟ ɞɥɹ ɨɛɪɚɛɨɬɱɢɤɚ ɩɪɟɪɵɜɚɧɢɣ.
ȼɵɛɨɪ ɧɨɦɟɪɚ ɩɪɟɪɵɜɚɧɢɹ ɡɚɜɢɫɢɬ ɨɬ ɬɨɝɨ, ɤɚɤɭɸ ɮɭɧɤɰɢɸ ɛɭɞɟɬ ɜɵɩɨɥɧɹɬɶ ɨɛɪɚɛɨɬɱɢɤ ɩɪɟɪɵɜɚɧɢɣ. ȿɫɥɢ ɜɵɩɨɥɧɹɟɦɚɹ ɢɦ ɮɭɧɤɰɢɹ ɪɟɚɥɢ­ɡɨɜɚɧɚ ɜ ɫɢɫɬɟɦɟ, ɬɨ ɧɨɜɵɣ ɨɛɪɚɛɨɬɱɢɤ ɩɪɟɪɵɜɚɧɢɣ ɞɨɥɠɟɧ ɛɵɬɶ ɨɪɢɟɧɬɢ­ɪɨɜɚɧ ɧɚ ɢɫɩɨɥɶɡɭɟɦɵɣ ɧɨɦɟɪ ɩɪɟɪɵɜɚɧɢɹ. ȼ ɩɪɨɬɢɜɧɨɦ ɫɥɭɱɚɟ ɞɥɹ ɧɨɜɨɣ ɮɭɧɤɰɢɢ ɧɟɨɛɯɨɞɢɦɨ ɩɪɢɦɟɧɹɬɶ ɧɨɜɵɣ ɧɨɦɟɪ ɩɪɟɪɵɜɚɧɢɹ.
Ⱦɥɹ ɜɵɛɨɪɚ ɫɜɨɛɨɞɧɨɝɨ ɧɨɦɟɪɚ ɩɪɟɪɵɜɚɧɢɹ ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɨɬ­ɥɚɞɱɢɤ Debug. ɋ ɩɨɦɨɳɶɸ ɟɝɨ ɤɨɦɚɧɞɵ D 0:0 ɩɪɨɫɦɨɬɪɢɦ ɧɚɱɚɥɨ ɨɛɥɚ­ɫɬɢ ɩɚɦɹɬɢ, ɡɚɧɢɦɚɟɦɨɣ ɬɚɛɥɢɰɟɣ ɜɟɤɬɨɪɨɜ ɩɪɟɪɵɜɚɧɢɣ. ȼ ɷɬɨɣ ɨɛɥɚɫɬɢ ɜɵɛɟɪɟɦ ɥɸɛɭɸ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɢɡ ɱɟɬɵɪɟɯ ɧɭɥɟɜɵɯ ɛɚɣɬɨɜ, ɧɨɦɟɪ ɦɥɚɞɲɟɝɨ ɢɡ ɤɨɬɨɪɵɯ ɞɟɥɢɬɫɹ ɛɟɡ ɨɫɬɚɬɤɚ ɧɚ ɱɟɬɵɪɟ. Ɍɨɝɞɚ ɱɚɫɬɧɨɟ ɨɬ ɬɚ­ɤɨɝɨ ɞɟɥɟɧɢɹ ɟɫɬɶ ɢɫɤɨɦɵɣ ɧɨɦɟɪ ɩɪɟɪɵɜɚɧɢɹ.
ɇɚɩɪɢɦɟɪ, ɩɭɫɬɶ ɜɵɛɪɚɧɧɚɹ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɱɟɬɵɪɟɯ ɛɚɣɬɨɜ ɧɚɱɢɧɚɟɬɫɹ ɫ ɧɨɦɟɪɚ 200h = 512. Ɍɨɝɞɚ ɢɫɤɨɦɵɣ ɧɨɦɟɪ ɩɪɟɪɵɜɚɧɢɹ
n = 200h/4 = 80h = 128.
Ⱦɪɭɝɢɦ ɫɪɟɞɫɬɜɨɦ ɭɦɟɧɶɲɟɧɢɹ ɡɚɬɪɚɬ ɩɚɦɹɬɢ, ɤɨɬɨɪɨɟ ɩɪɢɦɟɧɢɦɨ ɜ ɩɪɨɝɪɚɦɦɟ, ɹɜɥɹɟɬɫɹ ɨɫɜɨɛɨɠɞɟɧɢɟ ɨɛɥɚɫɬɢ, ɜɵɞɟɥɟɧɧɨɣ ɞɥɹ ɛɥɨɤɚ ɨɤɪɭ­ɠɟɧɢɹ ɩɪɨɝɪɚɦɦɵ. Ɉɧɚ ɫɬɚɬɢɱɟɫɤɢ ɧɚɡɧɚɱɚɟɬɫɹ ɥɸɛɨɣ ɩɪɨɝɪɚɦɦɟ, ɢ ɟɟ ɪɚɡɦɟɪ ɤɪɚɬɟɧ 512 ɛɚɣɬɚɦ. ɉɨɞɨɛɧɨɟ ɨɫɜɨɛɨɠɞɟɧɢɟ ɜɨɡɦɨɠɧɨ ɩɨɬɨɦɭ, ɱɬɨ ɧɚɲ ɨɛɪɚɛɨɬɱɢɤ ɩɪɟɪɵɜɚɧɢɣ (ɤɚɤ ɢ ɥɸɛɨɣ ɞɪɭɝɨɣ) ɷɬɭ ɨɛɥɚɫɬɶ ɧɟ ɢɫ­ɩɨɥɶɡɭɟɬ.
ɉɟɪɜɵɟ ɤɨɦɚɧɞɵ ɨɛɪɚɛɨɬɱɢɤɚ ɩɪɟɪɵɜɚɧɢɣ ɡɚɩɨɦɢɧɚɸɬ ɜ ɫɬɟɤɟ, ɚ ɩɨ­ɫɥɟɞɧɢɟ ɤɨɦɚɧɞɵ ɢɡɜɥɟɤɚɸɬ ɢɡ ɧɟɝɨ ɫɨɞɟɪɠɢɦɨɟ ɬɟɯ ɪɟɝɢɫɬɪɨɜ, ɜ ɤɨɬɨɪɵɟ ɜɵɩɨɥɧɹɟɬɫɹ ɡɚɩɢɫɶ ɜ ɩɪɨɝɪɚɦɦɟ ɨɛɪɚɛɨɬɱɢɤɚ.
ɋɪɟɞɢ ɷɬɢɯ ɪɟɝɢɫɬɪɨɜ ɫɭɳɟɫɬɜɭɟɬ ɪɟɝɢɫɬɪ ɫɟɝɦɟɧɬɚ ɞɚɧɧɵɯ DS, ɜ ɤɨ­ɬɨɪɵɣ ɨɛɪɚɛɨɬɱɢɤ ɡɚɩɢɫɵɜɚɟɬ ɧɨɜɨɟ ɡɧɚɱɟɧɢɟ, ɫɨɜɩɚɞɚɸɳɟɟ ɫ ɫɨɞɟɪɠɢ­ɦɵɦ ɪɟɝɢɫɬɪɚ CS. ɗɬɨ ɨɛɭɫɥɨɜɥɟɧɨ ɬɟɦ, ɱɬɨ ɩɪɢ ɜɵɡɨɜɟ ɨɛɪɚɛɨɬɱɢɤɚ (ɱɟ­ɪɟɡ ɩɪɟɪɵɜɚɧɢɟ) ɧɨɜɨɟ ɡɧɚɱɟɧɢɟ ɡɚɩɢɫɵɜɚɟɬɫɹ ɥɢɲɶ ɜ ɟɞɢɧɫɬɜɟɧɧɵɣ ɫɟɝ­ɦɟɧɬɧɵɣ ɪɟɝɢɫɬɪ CS (ɷɬɨ ɡɧɚɱɟɧɢɟ ɛɟɪɟɬɫɹ ɢɡ ɜɟɤɬɨɪɚ ɩɪɟɪɵɜɚɧɢɣ).
104
Ɉɫɬɚɥɶɧɵɟ ɪɟɝɢɫɬɪɵ ɫɟɝɦɟɧɬɨɜ (DS, SS ɢ ES) ɫɨɯɪɚɧɹɸɬ ɫɜɨɟ ɡɧɚɱɟɧɢɟ, ɩɨɥɭɱɟɧɧɨɟ ɪɚɧɟɟ ɜ ɜɵɡɜɚɜɲɟɣ ɩɪɨɝɪɚɦɦɟ. ɉɨɷɬɨɦɭ ɞɥɹ ɬɨɝɨ, ɱɬɨɛɵ ɩɪɨ­ɝɪɚɦɦɚ ɨɛɪɚɛɨɬɱɢɤɚ ɦɨɝɥɚ ɢɫɩɨɥɶɡɨɜɚɬɶ ɫɜɨɢ ɞɚɧɧɵɟ, ɨɧɚ ɩɨɦɟɳɚɟɬ ɜ DS ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɣ ɚɞɪɟɫ-ɫɟɝɦɟɧɬ (ɞɥɹ «*.com» ɩɪɨɝɪɚɦɦ ɨɧ ɫɨɜɩɚɞɚɟɬ ɫ ɫɨɞɟɪɠɢɦɵɦ CS).
ɋɨɞɟɪɠɢɦɨɟ ɪɟɝɢɫɬɪɨɜ SS ɢ SP ɩɨɫɬɭɩɚɟɬ ɜ ɨɛɪɚɛɨɬɱɢɤ ɩɪɟɪɵɜɚɧɢɣ ɢɡ
ɜɵɡɵɜɚɸɳɟɣ ɩɪɨɝɪɚɦɦɵ ɛɟɡ ɢɡɦɟɧɟɧɢɣ, ɩɨɷɬɨɦɭ ɨɧ ɢɫɩɨɥɶɡɭɟɬ ɬɨɬ ɠɟ ɫɚɦɵɣ ɫɬɟɤ, ɱɬɨ ɢ ɩɪɨɝɪɚɦɦɚ. ɗɬɨ ɫɜɨɣɫɬɜɨ ɩɨɡɜɨɥɹɟɬ ɜ ɞɨɫɬɚɬɨɱɧɨɣ ɫɬɟ­ɩɟɧɢ ɭɩɪɨɫɬɢɬɶ ɜɵɩɨɥɧɟɧɢɟ ɢɧɮɨɪɦɚɰɢɨɧɧɨɝɨ ɨɛɦɟɧɚ ɦɟɠɞɭ ɩɪɨɝɪɚɦ­ɦɨɣ ɢ ɨɛɪɚɛɨɬɱɢɤɨɦ, ɢɫɩɨɥɶɡɭɹ ɫɬɟɤ.
ɋɥɨɠɧɵɣ ɫɥɭɱɚɣ, ɤɨɝɞɚ ɨɛɪɚɛɨɬɱɢɤ ɩɪɟɪɵɜɚɧɢɣ ɞɨɥɠɟɧ ɢɫɩɨɥɶɡɨ-
ɜɚɬɶ ɭɠɟ ɡɚɧɹɬɵɣ ɜɟɤɬɨɪ ɩɪɟɪɵɜɚɧɢɣ, ɬɪɟɛɭɟɬ ɜɵɩɨɥɧɟɧɢɹ ɩɟɪɟɯɜɚɬɚ ɩɪɟɪɵɜɚɧɢɣ – ɡɚɩɢɫɶ ɜ ɜɟɤɬɨɪ ɩɪɟɪɵɜɚɧɢɣ ɫɬɚɪɬɨɜɨɝɨ ɚɞɪɟɫɚ ɧɨɜɨɝɨ ɨɛ­ɪɚɛɨɬɱɢɤɚ. ɗɬɨ ɦɨɠɧɨ ɫɞɟɥɚɬɶ, ɢɫɩɨɥɶɡɭɹ ɪɚɫɫɦɨɬɪɟɧɧɵɣ ɪɚɧɟɟ ɫɢɫɬɟɦ­ɧɵɣ ɜɵɡɨɜ INT 21h, ɮɭɧɤɰɢɸ 25h. Ⱦɨɩɨɥɧɢɬɟɥɶɧɚɹ ɡɚɞɚɱɚ ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɬɨɦ, ɱɬɨ ɨɛɵɱɧɨ ɬɪɟɛɭɟɬɫɹ ɫɨɯɪɚɧɢɬɶ ɩɪɟɞɵɞɭɳɟɟ ɫɨɞɟɪɠɢɦɨɟ ɜɟɤɬɨɪɚ ɩɪɟɪɵɜɚɧɢɣ ɞɥɹ ɬɨɝɨ, ɱɬɨɛɵ ɨɛɪɚɛɨɬɱɢɤ ɩɪɟɪɵɜɚɧɢɣ ɦɨɠɧɨ ɛɵɥɨ ɛɵ ɜɩɨɫɥɟɞɫɬɜɢɢ ɢɧɢɰɢɢɪɨɜɚɬɶ.
Ⱦɥɹ ɱɬɟɧɢɹ ɭɫɬɚɪɟɜɲɟɝɨ ɫɨɞɟɪɠɢɦɨɝɨ ɜɟɤɬɨɪɚ ɩɪɟɪɵɜɚɧɢɣ ɢɫɩɨɥɶɡɭ-
ɫɢɫɬɟɦɧɵɣ ɜɵɡɨɜ INT 21h, ɮɭɧɤɰɢɹ 35h. ɉɟɪɟɞ ɜɵɩɨɥɧɟɧɢɟɦ ɜɵɡɨɜɚ
ɟɬɫɹ ɩɪɨɝɪɚɦɦɚ ɞɨɥɠɧɚ ɩɨɦɟɫɬɢɬɶ ɜ ɪɟɝɢɫɬɪ AL ɧɨɦɟɪ ɩɪɟɪɵɜɚɧɢɹ. ȼ ɪɟɡɭɥɶ­ɬɚɬɟ ɪɟɝɢɫɬɪɵ ES ɢ BX ɫɨɞɟɪɠɚɬ, ɫɨɨɬɜɟɬɫɬɜɟɧɧɨ, ɚɞɪɟɫ-ɫɟɝɦɟɧɬ ɢ ɚɞɪɟɫ­ɫɦɟɳɟɧɢɟ, ɧɚɯɨɞɹɳɢɟɫɹ ɜ ɜɟɤɬɨɪɟ ɩɪɟɪɵɜɚɧɢɣ. Ⱦɚɥɟɟ ɷɬɢ ɚɞɪɟɫɚ ɦɨɝɭɬ ɛɵɬɶ ɩɟɪɟɩɢɫɚɧɵ ɞɥɹ ɫɨɯɪɚɧɟɧɢɹ ɜ ɥɸɛɨɟ ɦɟɫɬɨ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ.
ɂɧɢɰɢɢɪɨɜɚɧɢɟ ɩɪɟɠɧɟɝɨ ɨɛɪɚɛɨɬɱɢɤɚ ɩɪɟɪɵɜɚɧɢɣ
ɦɨɠɟɬ ɩɨɬɪɟɛɨ­ɜɚɬɶɫɹ ɜ ɞɜɭɯ ɫɥɭɱɚɹɯ. ȼɨ-ɩɟɪɜɵɯ, ɜ ɬɨɦ ɫɥɭɱɚɟ, ɟɫɥɢ ɧɨɜɵɣ ɨɛɪɚɛɨɬɱɢɤ ɩɪɟɪɵɜɚɧɢɣ ɧɟ ɡɚɦɟɧɹɟɬ, ɚ ɪɚɫɲɢɪɹɟɬ ɮɭɧɤɰɢɢ, ɜɵɩɨɥɧɹɜɲɢɟɫɹ ɩɪɟɠɧɢɦ ɨɛɪɚɛɨɬɱɢɤɨɦ.
ɉɨɫɥɟ ɬɨɝɨ, ɤɚɤ ɧɨɜɵɣ ɨɛɪɚɛɨɬɱɢɤ ɛɭɞɟɬ ɜɵɩɨɥɧɟɧ, ɨɧ ɞɨɥɠɟɧ ɩɟɪɟ­ɞɚɬɶ ɭɩɪɚɜɥɟɧɢɟ ɫɬɚɪɨɦɭ ɨɛɪɚɛɨɬɱɢɤɭ. ȼɨ-ɜɬɨɪɵɯ, ɱɚɫɬɨ ɨɛɪɚɛɨɬɱɢɤ ɩɪɟ­ɪɵɜɚɧɢɣ ɞɨɥɠɟɧ ɧɚɯɨɞɢɬɶɫɹ ɜ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ ɧɟ ɞɨ ɤɨɧɰɚ ɪɚɛɨɬɵ ɫɢɫɬɟɦɵ. ȼ ɷɬɨɦ ɫɥɭɱɚɟ ɩɟɪɟɞ ɬɟɦ, ɤɚɤ ɨɫɜɨɛɨɞɢɬɶ ɩɚɦɹɬɶ, ɧɟɨɛɯɨɞɢɦɨ ɜɨɫɫɬɚɧɨɜɢɬɶ ɫɬɚɪɵɣ ɨɛɪɚɛɨɬɱɢɤ ɩɪɟɪɵɜɚɧɢɣ. ɗɬɨ ɧɟɬɪɭɞɧɨ ɫɞɟɥɚɬɶ ɫ ɩɨɦɨɳɶɸ ɫɢɫɬɟɦɧɨɝɨ ɜɵɡɨɜɚ INT 21h, ɮɭɧɤɰɢɹ 25h.
ȿɫɥɢ ɪɟɡɢɞɟɧɬɧɚɹ ɩɪɨɝɪɚɦɦɚ ɩɨɥɧɨɫɬɶɸ ɡɚɦɟɧɹɟɬ ɨɩɟɪɚɰɢɨɧɧɭɸ ɫɢ­ɫɬɟɦɭ ɜ ɨɛɪɚɛɨɬɤɟ ɤɚɤɢɯ-ɬɨ ɬɢɩɨɜ ɩɪɟɪɵɜɚɧɢɣ, ɬɨ ɩɨ ɢɫɬɟɱɟɧɢɢ ɨɩɪɟɞɟ­ɥɟɧɧɨɝɨ ɜɪɟɦɟɧɢ ɭ ɩɨɥɶɡɨɜɚɬɟɥɹ (ɢɥɢ ɭ ɩɪɢɤɥɚɞɧɨɣ ɩɪɨɝɪɚɦɦɵ) ɦɨɠɟɬ ɜɨɡɧɢɤɧɭɬɶ ɠɟɥɚɧɢɟ ɜɟɪɧɭɬɶɫɹ ɤ ɫɢɫɬɟɦɧɨɣ ɨɛɪɚɛɨɬɤɟ ɷɬɢɯ ɩɪɟɪɵɜɚɧɢɣ.
Ⱦɥɹ ɷɬɨɝɨ ɫɥɟɞɭɟɬ ɜɵɩɨɥɧɢɬɶ ɫɥɟɞɭɸɳɢɟ ɬɪɢ ɞɟɣɫɬɜɢɹ:
–
ɡɚɤɪɵɬɶ ɮɚɣɥɵ, ɨɬɤɪɵɬɵɟ ɪɟɡɢɞɟɧɬɧɨɣ ɩɪɨɝɪɚɦɦɨɣ;
105
–
ɜɨɫɫɬɚɧɨɜɢɬɶ ɜɟɤɬɨɪɵ ɩɪɟɪɵɜɚɧɢɣ ɬɚɤ, ɱɬɨɛɵ ɨɧɢ ɭɤɚɡɵɜɚɥɢ ɧɚ ɫɢ-
ɫɬɟɦɧɵɟ ɨɛɪɚɛɨɬɱɢɤɢ;
–
ɨɫɜɨɛɨɞɢɬɶ ɩɚɦɹɬɶ, ɡɚɧɢɦɚɟɦɭɸ ɪɟɡɢɞɟɧɬɧɨɣ ɩɪɨɝɪɚɦɦɨɣ.
ɉɟɪɟɱɢɫɥɟɧɧɵɟ ɞɟɣɫɬɜɢɹ ɞɨɥɠɧɚ ɜɵɩɨɥɧɢɬɶ ɫɚɦɚ ɪɟɡɢɞɟɧɬɧɚɹ ɩɪɨ­ɝɪɚɦɦɚ ɩɪɢ ɩɨɥɭɱɟɧɢɢ ɟɸ ɤɨɦɚɧɞɵ ɨ ɡɚɜɟɪɲɟɧɢɢ. ɇɚɩɪɢɦɟɪ, ɟɫɥɢ ɨɧɚ ɜɵɩɨɥɧɹɟɬ ɨɛɪɚɛɨɬɤɭ ɩɪɟɪɵɜɚɧɢɣ ɨɬ ɤɥɚɜɢɚɬɭɪɵ, ɬɨ ɤɨɞ ɨɞɧɨɣ ɢɡ ɤɥɚɜɢɲ (ɢɯ ɤɨɦɛɢɧɚɰɢɢ) ɦɨɠɟɬ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɜ ɤɚɱɟɫɬɜɟ ɬɚɤɨɣ ɤɨɦɚɧɞɵ.
Ⱦɥɹ ɜɨɫɫɬɚɧɨɜɥɟɧɢɹ ɜɟɤɬɨɪɨɜ ɩɪɟɪɵɜɚɧɢɣ ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɪɚɫ­ɫɦɨɬɪɟɧɧɵɟ ɪɚɧɟɟ ɫɢɫɬɟɦɧɵɟ ɜɵɡɨɜɵ INT 21h (ɮɭɧɤɰɢɢ 35h ɢ
25h). ɉɟɪ­ɜɵɣ ɢɡ ɧɢɯ ɩɨɡɜɨɥɹɟɬ ɡɚɩɨɦɧɢɬɶ, ɚ ɜɬɨɪɨɣ – ɜɨɫɫɬɚɧɨɜɢɬɶ ɩɪɟɠɧɟɟ ɫɨ­ɞɟɪɠɢɦɨɟ ɜɟɤɬɨɪɚ ɩɪɟɪɵɜɚɧɢɹ.
ɋ ɰɟɥɶɸ ɨɫɜɨɛɨɠɞɟɧɢɹ ɩɚɦɹɬɢ, ɡɚɧɢɦɚɟɦɨɣ ɪɟɡɢɞɟɧɬɧɨɣ ɩɪɨɝɪɚɦ­ɦɨɣ, ɦɨɠɧɨ ɜɨɫɩɨɥɶɡɨɜɚɬɶɫɹ ɫɢɫɬɟɦɧɵɦ ɜɵɡɨɜɨɦ INT 21h (ɮɭɧɤɰɢɹ 49h), ɤɨɬɨɪɵɣ ɬɪɟɛɭɟɬ ɡɚɞɚɧɢɹ ɜ ɪɟɝɢɫɬɪɟ ES ɚɞɪɟɫɚ-ɫɟɝɦɟɧɬɚ, ɬɚɤ ɤɚɤ ɜɨ ɜɪɟɦɹ ɟɟ ɜɵɩɨɥɧɟɧɢɹ ɨɧ ɧɚɯɨɞɢɬɫɹ ɜ ɪɟɝɢɫɬɪɟ CS.
24. Ɏɚɣɥɨɜɚɹ ɨɪɝɚɧɢɡɚɰɢɹ
ɇɚ ɥɸɛɨɦ ɧɨɫɢɬɟɥɟ ɢɧɮɨɪɦɚɰɢɹ ɯɪɚɧɢɬɫɹ ɜ ɜɢɞɟ ɞɥɢɧɧɨɣ ɛɢɬɨɜɨɣ ɫɬɪɨɤɢ, ɬɨ ɟɫɬɶ ɜ ɜɢɞɟ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɢ ɧɭɥɟɣ ɢ ɟɞɢɧɢɰ. ȼ ɨɬɥɢɱɢɟ ɨɬ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ, ɜ ɤɨɬɨɪɨɣ ɛɢɬɨɜɚɹ ɫɬɪɨɤɚ ɪɚɡɛɢɬɚ ɧɚ ɛɚɣɬɵ, ɢɧɮɨɪ­ɦɚɰɢɹ ɧɚ ɧɨɫɢɬɟɥɟ, ɧɚɩɪɢɦɟɪ, ɧɚ ɞɢɫɤɟ, ɪɚɡɛɢɜɚɟɬɫɹ ɧɚ ɮɢɤɫɢɪɨɜɚɧɧɵɟ ɱɚɫɬɢ ɛɨɥɶɲɟɣ ɞɥɢɧɵ, ɧɚɡɵɜɚɟɦɵɟ ɫɟɤɬɨɪɚɦɢ ɜɨ ɜɪɟɦɹ ɮɢɡɢɱɟɫɤɨɝɨ
ɮɨɪɦɚɬɢɪɨɜɚɧɢɹ ɧɨɫɢɬɟɥɹ. Ɉɧɨ
ɡɚɜɢɫɢɬ ɧɟ ɬɨɥɶɤɨ ɨɬ ɢɫɩɨɥɶɡɭɟɦɨɣ ɨɩɟ-
ɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɵ, ɧɨ ɢ ɨɬ ɫɜɨɣɫɬɜ ɧɨɫɢɬɟɥɹ.
Ʉɪɨɦɟ ɹɱɟɟɤ (ɛɚɣɬɵ) ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ, ɩɪɨɧɭɦɟɪɨɜɚɧɵ ɬɚɤɠɟ ɜɫɟ ɫɟɤɬɨɪɵ ɧɨɫɢɬɟɥɹ ɜɧɟɲɧɟɣ ɩɚɦɹɬɢ. Ʌɸɛɚɹ ɩɪɢɤɥɚɞɧɚɹ ɢɥɢ ɫɢɫɬɟɦɧɚɹ ɩɪɨ­ɝɪɚɦɦɚ, ɩɨɥɶɡɭɹɫɶ ɧɨɦɟɪɨɦ ɬɪɟɛɭɟɦɨɝɨ ɫɟɤɬɨɪɚ, ɦɨɠɟɬ ɜɵɩɨɥɧɢɬɶ ɱɬɟɧɢɟ ɢɥɢ ɡɚɩɢɫɶ ɷɬɨɝɨ ɫɟɤɬɨɪɚ, ɨɛɪɚɬɢɜɲɢɫɶ ɤ ɞɪɚɣɜɟɪɭ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɝɨ ɭɫɬɪɨɣɫɬɜɚ. Ⱦɪɚɣɜɟɪɵ ɩɨɡɜɨɥɹɸɬ ɩɪɨɝɪɚɦɦɚɦ ɜɵɩɨɥɧɹɬɶ ɢɧɮɨɪɦɚɰɢɨɧ­ɧɵɣ ɨɛɦɟɧ ɧɟ ɬɨɥɶɤɨ ɫ ɭɫɬɪɨɣɫɬɜɚɦɢ, ɧɨ ɢ ɫ ɭɫɬɪɨɣɫɬɜɚɦɢ ɜɜɨɞɚ/ɜɵɜɨɞɚ.
Ɉɫɧɨɜɧɵɟ ɧɟɞɨɫɬɚɬɤɢ ɜɵɩɨɥɧɹɟɦɨɝɨ ɢɧɮɨɪɦɚɰɢɨɧɧɨɝɨ ɨɛɫɥɭɠɢɜɚ­ɧɢɹ ɩɪɨɝɪɚɦɦ:
–
ɟɫɥɢ ɨɛɴɟɦ ɢɧɮɨɪɦɚɰɢɢ ɧɚ ɧɨɫɢɬɟɥɟ ɞɨɫɬɚɬɨɱɧɨ ɜɟɥɢɤ, ɬɨ ɜɫɹ ɪɚ­ɛɨɬɚ ɩɨ ɩɨɢɫɤɭ ɧɟɨɛɯɨɞɢɦɵɯ ɫɟɤɬɨɪɨɜ ɜ ɷɬɨɦ ɨɛɴɟɦɟ ɩɟɪɟɤɥɚɞɵɜɚɟɬɫɹ ɧɚ ɫɨɨɬɜɟɬɫɬɜɭɸɳɭɸ ɫɢɫɬɟɦɧɭɸ ɢɥɢ ɩɪɢɤɥɚɞɧɭɸ ɩɪɨɝɪɚɦɦɭ;
–
ɫɟɤɬɨɪɵ ɱɚɫɬɨ ɧɟ ɫɨɨɬɜɟɬɫɬɜɭɸɬ ɩɚɪɚɦɟɬɪɚɦ ɢɯ ɨɛɪɚɛɨɬɤɢ ɜ ɩɪɨ­ɝɪɚɦɦɟ;
–
ɩɪɢ ɫɦɟɧɟ ɬɢɩɚ, ɢɫɩɨɥɶɡɭɟɦɨɝɨ ɞɥɹ ɜɜɨɞɚ ɢɥɢ ɜɵɜɨɞɚ ɢɧɮɨɪɦɚɰɢɢ ɷɬɨɝɨ ɜɢɞɚ, ɩɪɢɯɨɞɢɬɫɹ ɜɧɨɫɢɬɶ ɫɭɳɟɫɬɜɟɧɧɵɟ ɢɡɦɟɧɟɧɢɹ ɜ ɩɪɨɝɪɚɦɦɭ ɢɡ-ɡɚ ɜɥɢɹɧɢɹ ɢɧɬɟɪɮɟɣɫɨɜ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɯ ɞɪɚɣɜɟɪɨɜ. ɉɪɢɦɟɪɨɦ ɹɜɥɹ­ɟɬɫɹ ɜɵɜɨɞ ɜɵɯɨɞɧɵɯ ɞɚɧɧɵɯ ɩɪɨɝɪɚɦɦɵ ɧɚ ɩɪɢɧɬɟɪ ɢɥɢ ɧɚ ɷɤɪɚɧ.
106
ɉɟɪɜɵɟ ɞɜɚ ɧɟɞɨɫɬɚɬɤɚ ɨɬɧɨɫɹɬɫɹ ɬɨɥɶɤɨ ɤ ɭɫɬɪɨɣɫɬɜɚɦ ɜɧɟɲɧɟɣ ɩɚ­ɦɹɬɢ, ɚ ɩɨɫɥɟɞɧɟɟ – ɤɨ ɜɫɟɦ. Ⱦɥɹ ɭɫɬɪɚɧɟɧɢɹ ɩɟɪɟɱɢɫɥɟɧɧɵɯ ɬɪɭɞɧɨɫɬɟɣ ɢɧɮɨɪɦɚɰɢɨɧɧɨɟ ɨɛɫɥɭɠɢɜɚɧɢɟ ɩɪɨɝɪɚɦɦ ɜ ɛɨɥɶɲɢɧɫɬɜɟ ɨɩɟɪɚɰɢɨɧɧɵɯ ɫɢɫɬɟɦ ɜɵɩɨɥɧɹɟɬɫɹ ɫ ɩɨɦɨɳɶɸ ɮɚɣɥɨɜ. Ⱦɚɥɟɟ ɛɭɞɟɦ ɪɚɡɥɢɱɚɬɶ ɮɢɡɢɱɟ­ɫɤɢɟ ɢ ɥɨɝɢɱɟɫɤɢɟ ɮɚɣɥɵ.
Ɏɢɡɢɱɟɫɤɢɣ ɮɚɣɥ – ɢɧɮɨɪɦɚɰɢɹ, ɪɚɫɩɨɥɨɠɟɧɧɚɹ ɜ ɧɟɩɪɟɪɵɜɧɨɣ ɢɥɢ ɪɚɡɪɵɜɧɨɣ ɨɛɥɚɫɬɢ ɧɨɫɢɬɟɥɹ ɜɧɟɲɧɟɣ ɩɚɦɹɬɢ ɢ
ɢɦɟɸɳɚɹ ɭɧɢɤɚɥɶɧɨɟ ɞɥɹ ɞɚɧɧɨɣ ɜɵɱɢɫɥɢɬɟɥɶɧɨɣ ɫɢɫɬɟɦɵ ɢɦɹ. ɂɧɮɨɪɦɚɰɢɹ (ɛɢɬɨɜɚɹ ɫɬɪɨɤɚ) ɧɚ ɧɨɫɢɬɟɥɟ ɞɟɥɢɬɫɹ ɧɚ ɱɚɫɬɢ-ɮɚɣɥɵ ɩɨ ɫɦɵɫɥɨɜɨɦɭ ɩɪɢɧɰɢɩɭ.
ɇɚɩɪɢɦɟɪ, ɨɞɢɧ ɮɚɣɥ ɦɨɠɟɬ ɫɨɞɟɪɠɚɬɶ ɬɟɤɫɬ ɢɫɯɨɞɧɨɣ ɩɪɨɝɪɚɦɦɵ, ɜɬɨɪɨɣ – ɟɟ ɨɛɴɟɤɬɧɵɣ ɦɨɞɭɥɶ, ɚ ɬɪɟɬɢɣ – ɡɚɝɪɭɡɨɱɧɵɣ ɦɨɞɭɥɶ. Ʉɪɨɦɟ ɬɨ­ɝɨ, ɜ ɛɨɥɶɲɢɧɫɬɜɟ ɫɨɜɪɟɦɟɧɧɵɯ ɨɩɟɪɚɰɢɨɧɧɵɯ ɫɢɫɬɟɦ ɤɚɠɞɨɟ ɭɫɬɪɨɣɫɬɜɨ ɜɜɨɞɚ-ɜɵɜɨɞɚ ɬɚɤɠɟ ɫɱɢɬɚɟɬɫɹ ɮɢɡɢɱɟɫɤɢɦ ɮɚɣɥɨɦ. ȼ ɪɟɡɭɥɶɬɚɬɟ ɜɫɟ ɢɧ­ɮɨɪɦɚɰɢɨɧɧɨɟ ɨɛɫɥɭɠɢɜɚɧɢɟ ɩɪɨɝɪɚɦɦ ɜɵɩɨɥɧɹɸɬ ɩɨɞɩɪɨɝɪɚɦɦɵ ɨɩɟ­ɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɵ, ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɟ ɞɥɹ ɪɚɛɨɬɵ ɫ ɮɚɣɥɚɦɢ. Ⱦɨɫɬɭɩ ɤ ɢɧɮɨɪɦɚɰɢɢ ɜ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ ɥɸɛɚɹ ɩɪɨɝɪɚɦɦɚ ɢɦɟɟɬ ɛɟɡ ɩɨɦɨɳɢ ɷɬɢɯ ɩɨɞɩɪɨɝɪɚɦɦ.
Ɋɚɛɨɬɚ ɢɧɬɟɪɩɪɟɬɚɬɨɪɚ ɤɨɦɚɧɞ MS-DOS ɨɫɧɨɜɚɧɚ ɧɚ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɫɢɫɬɟɦɧɨɝɨ ɜɵɡɨɜɚ EXEC - INT 21h (ɮɭɧɤɰɢɹ 4Bh, ɩɨɞɮɭɧɤɰɢɹ 00h), ɨɛɟɫɩɟɱɢɜɚɸɳɟɝɨ ɡɚɝɪɭɡɤɭ ɡɚɞɚɧɧɨɝɨ com- ɢɥɢ
exe-ɮɚɣɥɚ, ɟɝɨ ɧɚɫɬɪɨɣɤɭ
(ɞɥɹ «*.exe»-ɮɚɣɥɚ), ɜɵɩɨɥɧɟɧɢɟ ɩɨɥɭɱɟɧɧɨɣ ɦɚɲɢɧɧɨɣ ɩɪɨɝɪɚɦɦɵ, ɚ ɡɚ-
ɬɟɦ ɜɨɡɜɪɚɬ ɜ ɬɭ ɬɨɱɤɭ ɩɪɨɝɪɚɦɦɵ ɂɄ, ɨɬɤɭɞɚ ɛɵɥ ɫɞɟɥɚɧ ɷɬɨɬ ɫɢɫɬɟɦɧɵɣ ɜɵɡɨɜ.
Ȼɥɚɝɨɞɚɪɹ ɩɪɢɦɟɧɟɧɢɸ ɜɵɡɨɜɚ EXEC ɜ ɫɜɨɟɣ ɩɪɢɤɥɚɞɧɨɣ ɩɪɨɝɪɚɦ­ɦɟ, ɦɵ ɫɦɨɠɟɦ ɡɚɩɭɫɬɢɬɶ (ɡɚɝɪɭɡɢɬɶ ɢ ɜɵɩɨɥɧɢɬɶ) ɥɸɛɭɸ ɞɪɭɝɭɸ ɩɪɢ­ɤɥɚɞɧɭɸ ɢɥɢ ɫɢɫɬɟɦɧɭɸ ɨɛɪɚɛɚɬɵɜɚɸɳɭɸ ɩɪɨɝɪɚɦɦɭ. ȼ ɪɟɡɭɥɶɬɚɬɟ ɩɪɢ­ɤɥɚɞɧɚɹ ɩɪɨɝɪɚɦɦɚ ɧɚɱɢɧɚɟɬ ɜɵɩɨɥɧɹɬɶ ɧɟɤɨɬɨɪɵɟ ɮɭɧɤɰɢɢ ɂɄ, ɚ ɩɪɢ ɧɟɤɨɬɨɪɨɣ ɞɨɪɚɛɨɬɤɟ ɫɦɨɠɟɬ ɞɚɠɟ ɟɝɨ ɡɚɦɟɧɢɬɶ, ɬɚɤ ɤɚɤ ɨɫɧɨɜɧɚɹ ɱɚɫɬɶ Ɉɋ (ɹɞɪɨ) ɪɚɫɫɦɚɬɪɢɜɚɟɬ ɂɄ ɤɚɤ ɨɛɵɱɧɭɸ ɨɛɪɚɛɚɬɵɜɚɸɳɭɸ ɩɪɨɝɪɚɦɦɭ (ɥɢɧɝɜɢɫɬɢɱɟɫɤɢɣ ɩɪɨɰɟɫɫɨɪ).
Ɉɫɨɛɟɧɧɨɫɬɢ ɫɢɫɬɟɦɧɨɝɨ ɜɵɡɨɜɚ EXEC:
1. Ɉɬɧɨɲɟɧɢɟ ɦɟɠɞɭ «ɪɨɞɢɬɟɥɶɫɤɨɣ» ɢ «ɞɨɱɟɪɧɟɣ» ɩɪɨɝɪɚɦɦɚɦɢ ɥɨɝɢɱɟɫɤɢ ɷɤɜɢɜɚɥɟɧɬɧɨ ɨɬɧɨɲɟɧɢɸ ɦɟɠɞɭ ɩɪɨɝɪɚɦɦɨɣ ɢ ɩɨɞɩɪɨɝɪɚɦ­ɦɨɣ, ɜɵɡɵɜɚɟɦɨɣ ɫ ɩɨɦɨɳɶɸ ɤɨɦɚɧɞɵ CALL ɢɥɢ INT. ɉɨɞɨɛɧɨ ɩɨɞɩɪɨ­ɝɪɚɦɦɟ, ɞɨɱɟɪɧɹɹ ɩɪɨɝɪɚɦɦɚ ɩɨ ɨɬɧɨɲɟɧɢɸ ɤ ɪɨɞɢɬɟɥɶɫɤɨɣ ɩɪɨɝɪɚɦɦɟ ɹɜɥɹɟɬɫɹ ɥɨɝɢɱɟɫɤɨɣ ɩɪɨɰɟɞɭɪɨɣ, ɬɚɤ ɤɚɤ ɧɚ ɜɪɟɦɹ ɜɵɩɨɥɧɟɧɢɹ ɞɨɱɟɪɧɟɣ ɩɪɨɝɪɚɦɦɵ ɞɟɣɫɬɜɢɟ ɪɨɞɢɬɟɥɶɫɤɨɣ ɩɪɨɝɪɚɦɦɵ ɩɪɢɨɫɬɚɧɚɜɥɢɜɚɟɬɫɹ, ɚ ɡɚ­ɬɟɦ ɩɪɨɞɨɥɠɚɟɬɫɹ ɫ ɬɨɣ ɤɨɦɚɧɞɵ, ɤɨɬɨɪɚɹ ɪɚɫɩɨɥɨɠɟɧɚ ɜ ɩɪɨɝɪɚɦɦɟ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɩɨɫɥɟ ɜɵɡɨɜɚ EXEC.
107
2. ɉɨɞɨɛɧɨ ɨɛɵɱɧɵɦ ɩɪɨɝɪɚɦɦɧɵɦ ɩɪɨɰɟɞɭɪɚɦ, ɞɨɱɟɪɧɢɟ ɩɪɨɝɪɚɦ-
ɦɵ ɦɨɝɭɬ ɛɵɬɶ ɜɥɨɠɟɧɧɵɦɢ, ɬ. ɟ ɫɨɞɟɪɠɚɬɶ ɜɵɡɨɜ EXEC, ɩɨɪɨɠɞɚɸɳɢɣ ɞɪɭɝɭɸ ɩɪɨɝɪɚɦɦɭ ɢ ɬɚɤ ɞɚɥɟɟ.
3. ɉɪɟɠɞɟ ɱɟɦ ɜɵɞɚɜɚɬɶ ɜɵɡɨɜ EXEC, ɤɪɨɦɟ ɪɨɞɢɬɟɥɶɫɤɨɣ ɩɪɨɝɪɚɦ­ɦɵ, ɞɨɥɠɧɚ ɛɵɬɶ ɜ ɧɚɥɢɱɢɢ ɫɜɨɛɨɞɧɚɹ ɩɚɦɹɬɶ, ɞɨɫɬɚɬɨɱɧɚɹ ɞɥɹ ɪɚɡɦɟɳɟ­ɧɢɹ ɞɨɱɟɪɧɟɣ ɩɪɨɝɪɚɦɦɵ. ɋ ɷɬɨɣ ɰɟɥɶɸ ɪɨɞɢɬɟɥɶɫɤɚɹ ɩɪɨɝɪɚɦɦɚ ɞɨɥɠɧɚ ɨɫɜɨɛɨɞɢɬɶɫɹ ɨɬ ɩɨɫɬɨɪɨɧɧɟɣ ɩɚɦɹɬɢ, ɪɚɧɟɟ ɜɵɞɟɥɟɧɧɨɣ, ɢɫɩɨɥɶɡɭɹ ɫɢ­ɫɬɟɦɧɵɟ ɜɵɡɨɜɵ.
4. Ɂɚɩɭɫɤ ɩɪɨɝɪɚɦɦɵ ɫ ɩɨɦɨɳɶɸ ɜɵɡɨɜɚ EXEC ɩɪɟɞɩɨɥɚɝɚɟɬ ɧɚɥɢ­ɱɢɟ ɦɟɠɞɭ ɪɨɞɢɬɟɥɶɫɤɨɣ ɢ ɞɨɱɟɪɧɟɣ ɩɪɨɝɪɚɦɦɚɦɢ ɧɟ ɬɨɥɶɤɨ ɭɩɪɚɜɥɹɸ­ɳɟɝɨ, ɧɨ ɢ ɢɧɮɨɪɦɚɰɢɨɧɧɨɝɨ ɜɡɚɢɦɨɞɟɣɫɬɜɢɹ. ɉɪɢ ɷɬɨɦ ɢɧɮɨɪɦɚɰɢɹ ɦɨ­ɠɟɬ ɛɵɬɶ ɩɟɪɟɞɚɧɚ ɤɚɤ ɜ ɩɪɹɦɨɦ ɧɚɩɪɚɜɥɟɧɢɢ (ɨɬ ɪɨɞɢɬɟɥɶɫɤɨɣ ɩɪɨɝɪɚɦ­ɦɵ ɤ ɞɨɱɟɪɧɟɣ
), ɬɚɤ ɢ ɜ ɨɛɪɚɬɧɨɦ ɧɚɩɪɚɜɥɟɧɢɢ.
ɉɟɪɟɞɚɱɚ ɢɧɮɨɪɦɚɰɢɢ ɤ ɞɨɱɟɪɧɟɣ ɩɪɨɝɪɚɦɦɟ ɜɵɩɨɥɧɹɟɬɫɹ ɫ ɩɨɦɨ­ɳɶɸ ɟɟ PSP, ɤɨɬɨɪɵɣ ɫɨɡɞɚɟɬɫɹ ɩɪɢ ɜɵɩɨɥɧɟɧɢɢ ɜɵɡɨɜɚ EXEC. ȿɫɥɢ ɢɧ­ɮɨɪɦɚɰɢɹ ɧɟɡɧɚɱɢɬɟɥɶɧɚɹ ɩɨ ɨɛɴɟɦɭ, ɬɨ ɨɧɚ ɦɨɠɟɬ ɛɵɬɶ ɪɚɡɦɟɳɟɧɚ ɜ «ɯɜɨɫɬɟ». Ȼɨɥɶɲɨɣ ɨɛɴɟɦ ɢɧɮɨɪɦɚɰɢɢ (ɞɨ 32 Ʉɛɚɣɬ) ɦɨɠɟɬ ɛɵɬɶ ɪɚɡɦɟɳɟɧ ɜ ɛɥɨɤɟ ɨɤɪɭɠɟɧɢɹ ɩɪɨɝɪɚɦɦɵ. Ʉɪɨɦɟ ɬɨɝɨ, ɞɥɹ ɩɟɪɟɞɚɱɢ ɞɚɧɧɵɯ ɧɚ ɜɯɨɞ ɞɨɱɟɪɧɟɣ ɩɪɨɝɪɚɦɦɵ ɦɨɝɭɬ
ɛɵɬɶ ɢɫɩɨɥɶɡɨɜɚɧɵ ɞɜɚ ɩɨɥɹ PSP, ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɟ ɞɥɹ ɯɪɚɧɟɧɢɹ ɭɫɬɚɪɟɜɲɢɯ ɬɢɩɨɜ ɛɥɨɤɨɜ ɭɩɪɚɜɥɟɧɢɹ ɮɚɣɥɚɦɢ.
Ⱦɥɹ ɬɨɝɨ, ɱɬɨɛɵ ɜɵɩɨɥɧɟɧɢɟ ɜɵɡɨɜɚ EXEC ɩɪɢɜɟɥɨ ɤ ɫɨɡɞɚɧɢɸ ɬɪɟɛɭɟɦɨɝɨ PSP, ɜ ɦɨɦɟɧɬ ɜɵɡɨɜɚ ɪɟɝɢɫɬɪɵ ɞɨɥɠɧɵ ɫɨɞɟɪɠɚɬɶ ɫɥɟɞɭɸɳɢɟ ɞɚɧɧɵɟ:
DS : DX – (ɚɞɪɟɫ-ɫɟɝɦɟɧɬ : ɚɞɪɟɫ-ɫɦɟɳɟɧɢɟ) ɫɢɦɜɨɥɶɧɨɣ ɫɬɪɨɤɢ, ɫɨɞɟɪɠɚɳɟɣ ɢɦɹ com- ɢɥɢ exe-ɮɚɣɥɚ, ɩɨɞɥɟɠɚɳɟɝɨ ɡɚɝɪɭɡɤɟ. ɋɪɚɡɭ ɩɨɫɥɟ ɢɦɟɧɢ ɮɚɣɥɚ ɞɨɥɠɟɧ ɧɚɯɨɞɢɬɶɫɹ ɧɭɥɟɜɨɣ ɛɚɣɬ (00h);
ES : BX – (ɚɞɪɟɫ-ɫɟɝɦɟɧɬ : ɚɞɪɟɫ-ɫɦɟɳɟɧɢɟ) ɛɥɨɤɚ ɩɚɪɚɦɟɬɪɨɜ.
Ȼɥɨɤ ɩɚɪɚɦɟɬɪɨɜ ɫɨɞɟɪɠɢɬ:
1) 2 ɛɚɣɬɚ – ɚɞɪɟɫ-ɫɟɝɦɟɧɬ ɛɥɨɤɚ ɨɤɪɭɠɟɧɢɹ. ȿɫɥɢ ɷɬɢ ɛɚɣɬɵ
ɫɨɞɟɪɠɚɬ 0, ɬɨ ɞɨɱɟɪɧɹɹ ɩɪɨɝɪɚɦɦɚ ɩɨɥɭɱɚɟɬ ɤɨɩɢɸ ɛɥɨɤɚ ɨɤɪɭɠɟɧɢɹ ɪɨɞɢɬɟɥɶɫɤɨɣ ɩɪɨɝɪɚɦɦɵ;
2) 4 ɛɚɣɬɚ – ɚɞɪɟɫ-ɫɦɟɳɟɧɢɟ ɢ ɚɞɪɟɫ-ɫɟɝɦɟɧɬ ɫɢɦɜɨɥɶɧɨɣ ɫɬɪɨɤɢ,
ɫɨɞɟɪɠɚɳɟɣ «ɯɜɨɫɬ» ɤɨɦɚɧɞɵ. ɗɬɚ ɫɬɪɨɤɚ ɡɚɤɚɧɱɢɜɚɟɬɫɹ ɫɢɦɜɨɥɨɦ
«ɜɨɡɜɪɚɬ ɤɚɪɟɬɤɢ» (0Dh), ɤɨɬɨɪɵɣ ɧɟ ɭɱɢɬɵɜɚɟɬɫɹ ɩɪɢ ɩɨɞɫɱɟɬɟ ɞɥɢɧɵ «ɯɜɨɫɬɚ»;
3) 8 ɛɚɣɬɨɜ – ɚɞɪɟɫ-ɫɦɟɳɟɧɢɟ ɢ ɚɞɪɟɫ-ɫɟɝɦɟɧɬ ɞɜɭɯ ɛɥɨɤɨɜ ɭɩɪɚɜ-
ɥɟɧɢɹ ɮɚɣɥɚɦɢ (ɩɨ 4 ɛɚɣɬɚ).
ȼ ɩɪɨɫɬɟɣɲɟɦ ɫɥɭɱɚɟ, ɤɨɝɞɚ ɧɢ «ɯɜɨɫɬ», ɧɢ ɛɥɨɤɢ ɭɩɪɚɜɥɟɧɢɹ ɮɚɣɥɚɦɢ ɧɟ ɢɫɩɨɥɶɡɭɸɬɫɹ ɞɥɹ ɩɟɪɟɞɚɱɢ ɢɧɮɨɪɦɚɰɢɢ ɧɚ ɜɯɨɞ ɞɨɱɟɪɧɟɣ ɩɪɨɝɪɚɦɦɵ, ɚ ɛɥɨɤ ɨɤɪɭɠɟɧɢɹ ɬɚɤɨɣ ɠɟ, ɤɚɤ ɢ ɭ ɪɨɞɢɬɟɥɶɫɤɨɣ
108
ɩɪɨɝɪɚɦɦɵ, ɛɥɨɤ ɩɚɪɚɦɟɬɪɨɜ ɦɨɠɟɬ ɛɵɬɶ ɨɮɨɪɦɥɟɧ ɜ ɩɪɨɝɪɚɦɦɟ ɤɚɤ ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ 14 ɛɚɣɬɨɜ, ɡɚɩɨɥɧɟɧɧɵɯ ɧɭɥɹɦɢ.
ȼ ɫɥɭɱɚɟ ɨɲɢɛɨɱɧɨɝɨ ɡɚɜɟɪɲɟɧɢɹ ɜɵɡɨɜɚ EXEC ɜ ɪɨɞɢɬɟɥɶɫɤɭɸ ɩɪɨɝɪɚɦɦɭ ɜɨɡɜɪɚɳɚɟɬɫɹ ɮɥɚɝ FC=1, ɚ ɜ ɪɟɝɢɫɬɪɟ AX – ɤɨɞ ɨɲɢɛɤɢ.
ȼ ɫɥɭɱɚɟ ɭɫɩɟɲɧɨɝɨ ɡɚɩɭɫɤɚ ɢ ɜɵɩɨɥɧɟɧɢɹ ɞɨɱɟɪɧɟɣ ɩɪɨɝɪɚɦɦɵ ɨɧɚ ɦɨɠɟɬ ɩɟɪɟɞɚɬɶ ɜ ɪɨɞɢɬɟɥɶɫɤɭɸ ɩɪɨɝɪɚɦɦɭ ɥɸɛɨɣ ɨɛɴɟɦ ɢɧɮɨɪɦɚɰɢɢ, ɢɫɩɨɥɶɡɭɹ ɞɥɹ ɷɬɨɝɨ
ɬɭ ɨɛɥɚɫɬɶ Ɉɉ, ɚɞɪɟɫ ɤɨɬɨɪɨɣ ɛɵɥ ɩɨɥɭɱɟɧ ɪɚɧɟɟ ɜ
ɫɨɫɬɚɜɟ ɞɪɭɝɨɣ ɢɧɮɨɪɦɚɰɢɢ, ɩɟɪɟɞɚɧɧɨɣ ɨɬ ɪɨɞɢɬɟɥɶɫɤɨɣ ɩɪɨɝɪɚɦɦɵ.
ɉɪɢɦɟɪ. ɋɥɟɞɭɸɳɚɹ ɩɪɨɝɪɚɦɦɚ ɜɵɩɨɥɧɹɟɬ ɪɨɥɶ ɩɪɨɫɬɟɣɲɟɝɨ ɢɧ­ɬɟɪɩɪɟɬɚɬɨɪɚ ɤɨɦɚɧɞ MS-DOS. Ɉɧɚ ɡɚɩɪɚɲɢɜɚɟɬ ɭ ɩɨɥɶɡɨɜɚɬɟɥɹ ɢɦɹ ɮɚɣɥɚ, ɫɨɞɟɪɠɚɳɟɝɨ ɡɚɝɪɭɡɨɱɧɵɣ ɦɨɞɭɥɶ ɬɪɟɛɭɟɦɨɣ ɩɪɨɝɪɚɦɦɵ, ɚ ɡɚɬɟɦ ɷɬɭ ɩɪɨɝɪɚɦɦɭ ɡɚɩɭɫɤɚɟɬ. ɉɪɢ ɷɬɨɦ ɦɨɝɭɬ ɡɚɩɭɫɤɚɬɶɫɹ ɬɨɥɶɤɨ ɬɚɤɢɟ ɩɪɨ­ɝɪɚɦɦɵ, ɤɨɬɨɪɵɟ ɧɟ ɬɪɟɛɭɸɬ ɨɬ ɪɨɞɢɬɟɥɶɫɤɨɣ ɩɪɨɝɪɚɦɦɵ ɤɚɤɢɯ-ɬɨ ɜɯɨɞ­ɧɵɯ ɞɚɧɧɵɯ. ɉɨɫɥɟ ɡɚɩɭɫɤɚ ɞɨɱɟɪɧɟɣ ɩɪɨɝɪɚɦɦɵ (ɭɫɩɟɲɧɨɝɨ ɢɥɢ ɧɟ­ɭɫɩɟɲɧɨɝɨ) ɧɚ ɷɤɪɚɧ ɨɩɹɬɶ ɜɵɜɨɞɢɬɫɹ ɩɪɢɝɥɚɲɟɧɢɟ ɜɜɟɫɬɢ ɢɦɹ ɮɚɣɥɚ.
ɉɪɨɝɪɚɦɦɚ, ɩɨ ɡɚɩɪɨɫɭ ɤɨɬɨɪɨɣ ɨɩɟɪɚɰɢɨɧɧɚɹ ɫɢɫɬɟɦɚ ɜɵɩɨɥɧɹɟɬ ɨɬ­ɤɪɵɬɢɟ ɮɚɣɥɚ, ɞɨɥɠɧɚ ɫɨɨɛɳɢɬɶ ɜ ɫɢɫɬɟɦɧɨɦ ɡɚɩɪɨɫɟ ɧɟ ɬɨɥɶɤɨ ɢɦɹ ɨɬ­ɤɪɵɜɚɟɦɨɝɨ ɮɢɡɢɱɟɫɤɨɝɨ ɮɚɣɥɚ, ɧɨ
ɢ ɬɢɩ ɩɨɫɥɟɞɭɸɳɟɣ ɪɚɛɨɬɵ ɫ ɧɢɦ (ɱɬɟɧɢɟ ɢɥɢ ɡɚɩɢɫɶ). ȼ ɤɚɱɟɫɬɜɟ ɪɟɡɭɥɶɬɚɬɚ ɨɬɤɪɵɬɢɹ ɮɚɣɥɚ ɜ ɩɪɨɝɪɚɦɦɭ ɜɨɡɜɪɚɳɚɟɬɫɹ ɥɨɝɢɱɟɫɤɢɣ ɟɝɨ ɧɨɦɟɪ.
Ɋɚɫɫɦɨɬɪɢɦ ɜɧɭɬɪɟɧɧɸɸ ɪɚɛɨɬɭ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɵ ɩɪɢ ɨɬɤɪɵ­ɬɢɢ ɮɚɣɥɚ. ȼɨ-ɩɟɪɜɵɯ, ɨɩɟɪɚɰɢɨɧɧɚɹ ɫɢɫɬɟɦɚ ɫɨɡɞɚɟɬ ɞɥɹ ɪɚɛɨɬɵ ɫ ɧɢɦ ɫɬɨɥɶɤɨ ɛɭɮɟɪɨɜ, ɫɤɨɥɶɤɨ ɬɢɩɨɜ ɨɩɟɪɚɰɢɣ ɢɧɮɨɪɦɚɰɢɨɧɧɨɝɨ ɨɛɦɟɧɚ ɫ ɧɢɦ ɛɭɞɭɬ ɜɵɩɨɥɧɹɬɶɫɹ. ɉɨɷɬɨɦɭ ɩɪɢ ɨɬɤɪɵɬɢɢ ɮɚɣɥɚ ɢ ɧɚ ɱɬɟɧɢɟ, ɢ ɧɚ ɡɚɩɢɫɶ ɟɦɭ ɜɵɞɟɥɹɸɬɫɹ ɞɜɚ ɛɭɮɟɪɚ, ɚ ɩɪɢ ɨɬɤɪɵɬɢɢ ɬɨɥɶɤɨ ɧɚ ɱɬɟɧɢɟ – ɨɞɢɧ. Ɋɚɡɦɟɪ ɫɢɫɬɟɦɧɵɯ ɛɭɮɟɪɨɜ ɤɪɚɬɟɧ ɨɞɧɨɦɭ ɫɟɤɬɨɪɭ ɢ ɨɛɵɱɧɨ ɪɚɜɟɧ ɨɞɧɨɦɭ ɤɥɚɫɬɟɪɭ.
ȼɨ-ɜɬɨɪɵɯ, ɨɩɟɪɚɰɢɨɧɧɚɹ ɫɢɫɬɟɦɚ ɩɨɦɟɳɚɟɬ ɛɥɨɤ ɭɩɪɚɜɥɟɧɢɹ ɮɚɣ- ɥɨɦ (ȻɍɎ) ɜ ɫɜɨɸ ɬɚɛɥɢɰɭ ɨɬɤɪɵɬɵɯ ɮɚɣɥɨɜ. Ȼɥɨɤ ɭɩɪɚɜɥɟɧɢɹ ɮɚɣɥɨɦ ɫɨɞɟɪɠɢɬ ɟɝɨ ɚɬɪɢɛɭɬɵ (ɩɟɪɟɩɢɫɵɜɚɸɬɫɹ ɢɡ ɤɚɬɚɥɨɝɚ), ɚ ɬɚɤɠɟ ɭɤɚɡɚɬɟɥɢ ɧɚ ɫɢɫɬɟɦɧɵɟ ɛɭɮɟɪɵ, ɩɪɟɞɧɚɡɧɚɱɟɧɧɵɟ ɞɥɹ ɪɚɛɨɬɵ ɫ ɧɢɦ.
ȼ-ɬɪɟɬɶɢɯ, ɨɩɟɪɚɰɢɨɧɧɚɹ ɫɢɫɬɟɦɚ ɩɪɨɫɦɚɬɪɢɜɚɟɬ ɬɚɛɥɢɰɭ ɥɨɝɢɱɟ­ɫɤɢɯ ɧɨɦɟɪɨɜ ɮɚɣɥɨɜ ɞɥɹ ɷɬɨɣ ɩɪɨɝɪɚɦɦɵ ɢ ɜɵɛɢɪɚɟɬ ɢɡ ɧɟɟ ɩɟɪɜɵɣ ɫɜɨ- ɛɨɞɧɵɣ ɷɥɟɦɟɧɬ (ɫɨɞɟɪɠɢɬ FFh). ȼ ɧɟɝɨ ɩɨɦɟɳɚɟɬɫɹ ɧɨɦɟɪ ɫɨɨɬɜɟɬɫɬɜɭ­ɸɳɟɝɨ ɛɥɨɤɚ ɭɩɪɚɜɥɟɧɢɹ ɜ ɬɚɛɥɢɰɟ ɨɬɤɪɵɬɵɯ ɮɚɣɥɨɜ
. ɉɨɫɥɟ ɷɬɨɝɨ ɨɩɟɪɚ­ɰɢɨɧɧɚɹ ɫɢɫɬɟɦɚ ɜɨɡɜɪɚɳɚɟɬ ɭɩɪɚɜɥɟɧɢɟ ɜ ɩɪɨɝɪɚɦɦɭ, ɩɟɪɟɞɚɜ ɟɣ ɜ ɤɚɱɟ­ɫɬɜɟ ɥɨɝɢɱɟɫɤɨɝɨ ɧɨɦɟɪɚ ɮɚɣɥɚ ɧɨɦɟɪ ɷɥɟɦɟɧɬɚ ɜ ɬɚɛɥɢɰɟ ɥɨɝɢɱɟɫɤɢɯ ɧɨ­ɦɟɪɨɜ. Ɍɚɤɢɦ ɨɛɪɚɡɨɦ, ɜ ɪɟɡɭɥɶɬɚɬɟ ɨɬɤɪɵɬɢɹ ɮɚɣɥɚ ɫɨɡɞɚɟɬɫɹ ɩɭɬɶ ɨɬ ɥɨ­ɝɢɱɟɫɤɨɝɨ ɧɨɦɟɪɚ ɮɚɣɥɚ ɜ ɩɪɨɝɪɚɦɦɟ ɞɨ ɮɢɡɢɱɟɫɤɨɝɨ ɮɚɣɥɚ ɧɚ ɧɨɫɢɬɟɥɟ.
Ⱦɥɹ ɩɪɨɝɪɚɦɦɵ, ɜɵɩɨɥɧɹɟɦɨɣ ɜ ɫɪɟɞɟ MS-DOS,
ɬɚɛɥɢɰɚ ɥɨɝɢɱɟɫɤɢɯ
ɧɨɦɟɪɨɜ ɮɚɣɥɨɜ ɫɨɞɟɪɠɢɬɫɹ ɜ PSP ɩɪɨɝɪɚɦɦɵ, ɧɚɱɢɧɚɹ ɫ ɚɞɪɟɫɚ-
109
ɫɦɟɳɟɧɢɹ 18h. Ɋɚɡɦɟɪ ɷɬɨɣ ɬɚɛɥɢɰɵ ɪɚɜɟɧ 20 ɛɚɣɬɚɦ (ɩɨ ɨɞɧɨɦɭ ɛɚɣɬɭ ɧɚ ɧɨɦɟɪ ɮɚɣɥɚ). ɉɨɷɬɨɦɭ ɨɛɳɟɟ ɱɢɫɥɨ ɮɚɣɥɨɜ, ɨɬɤɪɵɬɵɯ ɜ ɩɪɨɝɪɚɦɦɟ, ɧɟ ɦɨɠɟɬ ɩɪɟɜɵɲɚɬɶ 20.
ɂɡ ɷɬɢɯ ɧɨɦɟɪɨɜ ɩɟɪɜɵɟ ɩɹɬɶ ɫɪɟɞɚ MS-DOS ɢɫɩɨɥɶɡɭɟɬ ɫɚɦɚ, ɨɬɤɪɵ-
ɜɚɹ ɞɥɹ ɩɪɨɝɪɚɦɦɵ ɫɥɟɞɭɸɳɢɟ ɮɚɣɥɵ:
0 – ɫɬɚɧɞɚɪɬɧɨɟ ɭɫɬɪɨɣɫɬɜɨ ɜɜɨɞɚ (ɨɛɵɱɧɨ ɤɥɚɜɢɚɬɭɪɚ); 1 – ɫɬɚɧɞɚɪɬɧɨɟ ɭɫɬɪɨɣɫɬɜɨ ɜɵɜɨɞɚ (ɨɛɵɱɧɨ ɷɤɪɚɧ); 2 – ɭɫɬɪɨɣɫɬɜɨ
ɜɵɜɨɞɚ ɫɨɨɛɳɟɧɢɣ ɨɛ ɨɲɢɛɤɚɯ (ɷɤɪɚɧ); 3 – ɩɨɫɥɟɞɨɜɚɬɟɥɶɧɵɣ ɩɨɪɬ (ɨɛɵɱɧɨ COM1); 4 – ɩɚɪɚɥɥɟɥɶɧɵɣ ɩɨɪɬ (ɨɛɵɱɧɨ LPT1).
ȼɫɟ ɩɟɪɟɱɢɫɥɟɧɧɵɟ ɮɚɣɥɵ ɹɜɥɹɸɬɫɹ ɮɚɣɥɚɦɢ-ɭɫɬɪɨɣɫɬɜɚɦɢ. Ɇɚɤ-
ɫɢɦɚɥɶɧɨɟ ɱɢɫɥɨ ɮɚɣɥɨɜ, ɨɬɤɪɵɬɵɯ ɫɚɦɨɣ ɩɪɨɝɪɚɦɦɨɣ, ɧɟ ɦɨɠɟɬ ɩɪɟɜɵ­ɲɚɬɶ 15. ɉɪɢ ɷɬɨɦ ɫɥɟɞɭɟɬ ɭɱɢɬɵɜɚɬɶ, ɱɬɨ ɩɪɨɝɪɚɦɦɚ ɧɚɫɥɟɞɭɟɬ ɨɬ ɪɨɞɢ­ɬɟɥɶɫɤɨɣ ɩɪɨɝɪɚɦɦɵ ɜɫɟ ɮɚɣɥɵ, ɨɬɤɪɵɬɵɟ ɟɸ ɤ ɦɨɦɟɧɬɭ ɫɨɡɞɚɧɢɹ ɧɨɜɨɣ ɩɪɨɝɪɚɦɦɵ. Ⱦɪɭɝɢɦ ɨɝɪɚɧɢɱɢɬɟɥɟɦ ɱɢɫɥɚ ɨɬɤɪɵɬɵɯ ɮɚɣɥɨɜ ɹɜɥɹɟɬɫɹ ɫɬɪɨɤɚ FILES = N ɜ ɤɨɦɚɧɞɧɨɦ ɮɚɣɥɟ ɤɨɧɮɢɝɭɪɚɰɢɢ ɫɢɫɬɟɦɵ Config.sys.
ɑɢɫɥɨ N ɡɚɞɚɟɬ ɩɪɟɞɟɥɶɧɨɟ ɫɭɦɦɚɪɧɨɟ ɱɢɫɥɨ ɨɬɤɪɵɬɵɯ ɜɨ ɜɫɟɣ ɫɢɫɬɟɦɟ ɮɚɣɥɨɜ. ɂɦɟɧɧɨ ɫɬɨɥɶɤɨ ɫɬɪɨɤ ɢɦɟɟɬ ɬɚɛɥɢɰɚ ɨɬɤɪɵɬɵɯ ɮɚɣɥɨɜ. ɉɨɫɥɟɞɧɟɟ ɨɝɪɚɧɢ­ɱɟɧɢɟ ɧɟɬɪɭɞɧɨ ɫɤɨɪɪɟɤɬɢɪɨɜɚɬɶ, ɢɫɩɨɥɶɡɭɹ ɥɸɛɨɣ ɬɟɤɫɬɨɜɵɣ ɪɟɞɚɤɬɨɪ.
ȼ ɨɬɥɢɱɢɟ ɨɬ ɬɚɛɥɢɰɵ ɥɨɝɢɱɟɫɤɢɯ ɧɨɦɟɪɨɜ, ɬɚɛɥɢɰɚ ɨɬɤɪɵɬɵɯ ɮɚɣɥɨɜ ɹɜɥɹɟɬɫɹ ɜɧɭɬɪɟɧɧɟɣ ɬɚɛɥɢɰɟɣ MS-DOS, ɤ ɤɨɬɨɪɨɣ ɩɪɢɤɥɚɞɧɵɟ ɩɪɨɝɪɚɦɦɵ ɧɟ ɢɦɟɸɬ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨɝɨ ɞɨɫɬɭɩɚ. Ɋɚɛɨɬɭ ɫ ɷɬɨɣ ɬɚɛɥɢɰɟɣ
ɜɵɩɨɥɧɹɸɬ ɬɨɥɶɤɨ ɩɨɞɩɪɨɝɪɚɦɦɵ Ɉɋ, ɢɧɢɰɢɢɪɭɟɦɵɟ ɜ ɪɟɡɭɥɶɬɚɬɟ ɫɢɫɬɟɦɧɵɯ ɜɵɡɨɜɨɜ. Ⱦɥɹ ɫɨɡɞɚɧɢɹ ɢ ɨɬɤɪɵɬɢɹ ɮɚɣɥɨɜ ɢɫɩɨɥɶɡɭɸɬɫɹ ɫɥɟɞɭɸɳɢɟ ɫɢɫɬɟɦɧɵɟ ɜɵ­ɡɨɜɵ MS-DOS: INT 21h (ɮɭɧɤɰɢɹ 3ɋh) ɢ INT 21h (ɮɭɧɤɰɢɹ 3Dh).
INT 21h (ɮɭɧɤɰɢɹ 3Ch) – ɫɨɡɞɚɧɢɟ ɢ ɨɬɤɪɵɬɢɟ ɮɚɣɥɚ. Ⱦɚɧɧɵɣ ɜɵɡɨɜ ɫɨɡɞɚɟɬ ɢ ɨɬɤɪɵɜɚɟɬ ɧɨɜɵɣ ɮɚɣɥ. ȿɫɥɢ ɭɤɚɡɚɧɧɵɣ ɮɚɣɥ ɭɠɟ ɫɭɳɟɫɬɜɭɟɬ, ɬɨ ɨɧ ɭɫɟɤɚɟɬɫɹ ɞɨ ɧɭɥɟɜɨɣ ɞɥɢɧɵ. ɉɟɪɟɞ ɩɪɢɦɟɧɟɧɢɟɦ ɜɵɡɨɜɚ ɩɪɨɝɪɚɦɦɚ ɩɨɦɟɳɚɟɬ ɜ ɤɚɤɭɸ-ɬɨ ɨɛɥɚɫɬɶ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ ɫɢɦɜɨɥɶɧɭɸ ɫɬɪɨɤɭ, ɩɪɟɞɫɬɚɜɥɹɸɳɭɸ ɫɨɛɨɣ ɢɦɹ ɫɨɡɞɚɜɚɟɦɨɝɨ ɮɚɣɥɚ ɢ ɡɚɤɚɧɱɢɜɚɸɳɭɸɫɹ ɧɭ­ɥɟɜɵɦ ɛɚɣɬɨɦ. ɉɪɢ ɷɬɨɦ ɢɦɹ ɮɚɣɥɚ ɦɨɠɟɬ ɛɵɬɶ ɡɚɞɚɧɨ ɜ ɥɸɛɨɣ ɢɡ ɞɨɩɭ­ɫɬɢɦɵɯ ɮɨɪɦ: ɢɦɹ-ɩɭɬɶ, ɩɪɟɞɜɚɪɹɟɦɨɟ ɢɦɟɧɟɦ ɥɨɝɢɱɟɫɤɨɝɨ ɞɢɫɤɚ; ɢɦɹ­ɩɭɬɶ; ɩɪɨɦɟɠɭɬɨɱɧɨɟ ɢɦɹ ɮɚɣɥɚ; ɩɪɨɫɬɨɟ ɢɦɹ
.
ȼ ɪɟɝɢɫɬɪɵ DS ɢ DX ɩɪɨɝɪɚɦɦɚ ɞɨɥɠɧɚ ɩɨɦɟɫɬɢɬɶ, ɫɨɨɬɜɟɬɫɬɜɟɧɧɨ, ɚɞɪɟɫ-ɫɟɝɦɟɧɬ ɢ ɚɞɪɟɫ-ɫɦɟɳɟɧɢɟ ɨɛɥɚɫɬɢ ɩɚɦɹɬɢ ɫ ɢɦɟɧɟɦ ɮɚɣɥɚ. ȼ ɪɟɝɢ­ɫɬɪɟ CX ɞɨɥɠɧɚ ɛɵɬɶ ɪɚɫɩɨɥɨɠɟɧɚ ɛɢɬɨɜɚɹ ɫɬɪɨɤɚ, ɡɚɞɚɸɳɚɹ ɨɫɨɛɵɟ ɫɜɨɣɫɬɜɚ ɫɨɡɞɚɜɚɟɦɨɝɨ ɮɚɣɥɚ. ɉɪɢ ɷɬɨɦ ɭɫɬɚɧɨɜɤɚ ɤɚɠɞɨɝɨ ɛɢɬɚ ɡɚɞɚɟɬ ɨɞɧɨ ɨɫɨɛɨɟ ɫɜɨɣɫɬɜɨ (ɚɬɪɢɛɭɬ) ɮɚɣɥɚ. ɇɚɩɪɢɦɟɪ, ɛɢɬ 1 = 1 ɬɪɟɛɭɟɬ, ɱɬɨɛɵ ɮɚɣɥ ɛɵɥ ɫɤɪɵɬɵɦ (ɟɝɨ ɢɦɹ ɧɟ ɞɨɥɠɧɨ ɜɵɜɨɞɢɬɶɫɹ ɧɚ ɷɤɪɚɧ ɩɪɢ ɜɵɩɨɥɧɟ­ɧɢɢ ɭɬɢɥɢɬɵ DIR). ȿɫɥɢ ɫɨɡɞɚɟɬɫɹ ɨɛɵɤɧɨɜɟɧɧɵɣ ɮɚɣɥ, ɬɨ ɜɫɟ ɛɢɬɵ­ɚɬɪɢɛɭɬɵ ɞɨɥɠɧɵ ɛɵɬɶ ɧɭɥɟɜɵɦɢ.
110
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]