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

Системное программирование. Учебное пособие-1

.pdf
Скачиваний:
1
Добавлен:
08.09.2026
Размер:
2 Мб
Скачать
☆
ɉɪɢɦɟɪ 2.36. ɂɫɩɨɥɶɡɨɜɚɧɢɟ ɤɨɦɚɧɞɵ ɨɛɦɟɧɚ XCHG.
MOV AX,20 ; AX ɫɨɞɟɪɠɢɬ 20 MOV CX,10 ; CX ɫɨɞɟɪɠɢɬ 10 XCHG AX,CX ; ɩɨɦɟɧɹɬɶ ɦɟɫɬɚɦɢ ; Ɍɟɩɟɪɶ AX ɫɨɞɟɪɠɢɬ 10, ɚ CX ɫɨɞɟɪɠɢɬ 20
Ʉɚɤ ɦɵ ɭɠɟ ɡɧɚɟɦ, ɞɥɹ ɨɛɪɚɳɟɧɢɹ ɤ ɤɚɤɨɦɭ-ɥɢɛɨ ɭɫɬɪɨɣɫɬɜɭ, ɢɥɢ ɹɱɟɣɤɟ ɩɚɦɹɬɢ (ɯɪɚɧɹɳɟɣ, ɧɚɩɪɢɦɟɪ, ɡɧɚɱɟɧɢɟ ɩɟɪɟɦɟɧɧɨɣ), ɧɟɨɛɯɨɞɢɦɨ ɡɧɚɬɶ ɢɯ ɚɞ­ɪɟɫɚ. Ⱦɥɹ ɭɤɚɡɚɧɢɹ ɚɞɪɟɫɚ ɜ ɩɪɨɝɪɚɦɦɚɯ Ⱥɫɫɟɦɛɥɟɪɚ ɢɫɩɨɥɶɡɭɸɬ ɧɟɫɤɨɥɶɤɨ ɫɩɨɫɨɛɨɜ:
ɪɟɝɢɫɬɪɨɜɚɹ ɚɞɪɟɫɚɰɢɹ;
ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɚɹ
ɚɞɪɟɫɚɰɢɹ;
ɩɪɹɦɚɹ ɚɞɪɟɫɚɰɢɹ ɩɚɦɹɬɢ:
1. ɛɚɡɨɜɚɹ ɢ ɢɧɞɟɤɫɧɚɹ;
2. ɛɚɡɨɜɚɹ ɢ ɢɧɞɟɤɫɧɚɹ ɫɨ ɫɦɟɳɟɧɢɟɦ;
3. ɛɚɡɨɜɨ-ɢɧɞɟɤɫɧɚɹ;
4. ɛɚɡɨɜɨ-ɢɧɞɟɤɫɧɚɹ ɫɨ ɫɦɟɳɟɧɢɟɦ.
ɉɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɪɟɝɢɫɬɪɨɜɨɣ ɚɞɪɟɫɚɰɢɢ ɨɞɢɧ ɢɡ ɨɩɟɪɚɧɞɨɜ (ɛɚɣɬ ɢɥɢ ɫɥɨɜɨ) ɧɚɯɨɞɢɬɫɹ ɜ ɪɟɝɢɫɬɪɟ (ɤɚɤ ɩɪɚɜɢɥɨ, ɜ ɊɈɇ).
ɉɪɢɦɟɪ 2.37. Ɋɟɝɢɫɬɪɨɜɚɹ ɚɞɪɟɫɚɰɢɹ.
MOV DS, AX
ɉɪɢ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨɣ ɚɞɪɟɫɚɰɢɢ ɨɩɟɪɚɧɞ ɪɚɡɦɟɳɚɟɬɫɹ ɜ ɫɚɦɨɣ
ɤɨɦɚɧɞɟ.
ɉɪɢɦɟɪ 2.38. ɇɟɩɨɫɪɟɞɫɬɜɟɧɧɚɹ ɚɞɪɟɫɚɰɢɹ.
MOV AX, 4A0Ch ; Ɉɩɟɪɚɧɞ - 16-ɪɢɱɧɨɟ ɱɢɫɥɨ MOV DX, offset Var ; ɋɦɟɳɟɧɢɟ ɞɥɹ ɩɟɪɟɦɟɧɧɨɣ
; Var ɡɚɧɨɫɢɬɫɹ ɜ DX
ɉɪɢ ɩɪɹɦɨɣ ɚɞɪɟɫɚɰɢɢ ɨɬɧɨɫɢɬɟɥɶɧɵɣ ɚɞɪɟɫ ɨɩɟɪɚɧɞɚ ɫɨɞɟɪɠɢɬɫɹ ɜ ɜɢɞɟ ɫɦɟɳɟɧɢɹ.
ɉɪɢɦɟɪ 2.39. ɉɪɹɦɚɹ ɚɞɪɟɫɚɰɢɹ.
MOV AL, off_db; off_db – ɫɦɟɳɟɧɢɟ ɞɥɹ ɛɚɣɬɚ MOV AX, off_dw; off_dw – ɫɦɟɳɟɧɢɟ ɞɥɹ ɫɥɨɜɚ
ɉɪɢ ɛɚɡɨɜɨɣ ɢ ɢɧɞɟɤɫɧɨɣ ɚɞɪɟɫɚɰɢɹ ɩɚɦɹɬɢ ɨɬɧɨɫɢɬɟɥɶɧɵɣ ɚɞɪɟɫ ɹɱɟɣɤɢ ɩɚɦɹɬɢ ɧɚɯɨɞɢɬɫɹ ɜ ɪɟɝɢɫɬɪɟ, ɨɛɨɡɧɚɱɟɧɢɟ ɤɨɬɨɪɨɝɨ ɡɚɤɥɸɱɟɧɨ
ɜ ɤɜɚɞɪɚɬɧɵɟ ɫɤɨɛɤɢ. ɉɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɪɟɝɢɫɬɪɨɜ ȼɏ ɢɥɢ ȼɊ ɚɞɪɟɫɚɰɢɸ ɧɚɡɵɜɚɸɬ ɛɚɡɨ­ɜɨɣ, ɩɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɪɟɝɢɫɬɪɨɜ SI ɢɥɢ DI – ɢɧɞɟɤɫɧɨɣ.
ɉɪɢ ɚɞɪɟɫɚɰɢɢ ɱɟɪɟɡ ɪɟɝɢɫɬɪɵ ȼɏ, SI ɢɥɢ DI ɜ ɤɚɱɟɫɬɜɟ ɫɟɝɦɟɧɬɧɨɝɨ ɪɟ­ɝɢɫɬɪɚ ɜɫɟɝɞɚ ɩɨɞɪɚɡɭɦɟɜɚɟɬɫɹ DS, ɩɪɢ ɚɞɪɟɫɚɰɢɢ ɱɟɪɟɡ ɪɟɝɢɫɬɪ ȼɊ ɢɫɩɨɥɶɡɭ­ɟɬɫɹ ɪɟɝɢɫɬɪ SS.
ɉɪɢɦɟɪ 2.40. Ȼɚɡɨɜɚɹ ɢ ɢɧɞɟɤɫɧɚɹ ɚɞɪɟɫɚɰɢɹ.
MOV AL, [ȼɏ
] ; ɋɟɝɦɟɧɬɧɵɣ ɚɞɪɟɫ ɜ DS, ɫɦɟɳɟɧɢɟ ɜ ȼɏ MOV DL,ES:[BX] ; ɋɟɝɦɟɧɬɧɵɣ ɚɞɪɟɫ ES, ɫɦɟɳɟɧɢɟ ɜ ȼɏ MOV DX,[BP] ; ɋɟɝɦɟɧɬɧɵɣ ɚɞɪɟɫ ɜ SS, ɫɦɟɳɟɧɢɟ ɜ ȼɊ
51
MOV AL, [DI] ; ɋɟɝɦɟɧɬɧɵɣ ɚɞɪɟɫ ɜ DS, ɫɦɟɳɟɧɢɟ ɜ DI
Ȼɚɡɨɜɚɹ ɢ ɢɧɞɟɤɫɧɚɹ ɚɞɪɟɫɚɰɢɹ ɫɨ ɫɦɟɳɟɧɢɟɦ ɩɪɟɞɩɨɥɚɝɚɟɬ, ɱɬɨ ɨɬɧɨɫɢ­ɬɟɥɶɧɵɣ ɚɞɪɟɫ ɨɩɟɪɚɧɞɚ ɨɩɪɟɞɟɥɹɟɬɫɹ ɫɭɦɦɨɣ ɫɨɞɟɪɠɢɦɨɝɨ ɪɟɝɢɫɬɪɚ (ȼɏ, ȼɊ, SI ɢɥɢ DI) ɢ ɭɤɚɡɚɧɧɨɝɨ ɜ ɤɨɦɚɧɞɟ ɱɢɫɥɚ, ɤɨɬɨɪɨɟ ɧɚɡɵɜɚɸɬ ɫɦɟɳɟɧɢɟɦ.
ɉɪɢɦɟɪ 2.41. Ȼɚɡɨɜɚɹ ɢ ɢɧɞɟɤɫɧɚɹ ɚɞɪɟɫɚɰɢɹ ɫɨ ɫɦɟɳɟɧɢɟɦ.
; Ɉɛɴɹɜɥɹɟɦ ɦɚɫɫɢɜ ɫɢɦɜɨɥɨɜ mas db 1,2,5,6,7,9,1,3,2 MOV BX, 2 ; ȼɏ – ɢɧɞɟɤɫ ɷɥɟɦɟɧɬɚ ɜ
ɦɚɫɫɢɜɟ MOV DL, mas[BX] ; ȼ DL ɡɚɧɨɫɢɬɫɹ ɬɪɟɬɢɣ ɷɥɟɦɟɧɬ ɦɚɫɫɢɜɚ ; (ɚɞɪɟɫɚɰɢɹ ɫ 0), ɬ. ɟ. ɱɢɫɥɨ 5 ; ɉɪɟɞɩɨɥɚɝɚɟɬɫɹ, ɱɬɨ ɛɚɡɨɜɵɣ ɚɞɪɟɫ ; ɫɟɝɦɟɧɬɚ, ɜ ɤɨɬɨɪɵɣ ɜɯɨɞɢɬ ɦɚɫɫɢɜ mas, ; ɡɚɝɪɭɠɟɧ ɜ DS
ɉɪɢ ɛɚɡɨɜɨ-ɢɧɞɟɤɫɧɨɣ ɚɞɪɟɫɚɰɢɢ ɨɬɧɨɫɢɬɟɥɶɧɵɣ ɚɞɪɟɫ ɨɩɟɪɚɧɞɚ ɪɚɜɟɧ ɫɭɦɦɟ ɫɨɞɟɪɠɢɦɨɝɨ ɛɚɡɨɜɨɝɨ ɢ ɢɧɞɟɤɫɧɨɝɨ ɪɟɝɢɫɬɪɨɜ. Ⱦɨɩɭɫɤɚɟɬɫɹ ɢɫɩɨɥɶɡɨ­ɜɚɧɢɟ ɫɥɟɞɭɸɳɢɯ ɩɚɪ: [BX][SI], [BX][DI], [BP][SI] ɢ [BP][DI]. ȿɫɥɢ
ɜ ɤɚɱɟɫɬɜɟ ɛɚɡɨɜɨɝɨ ɪɟɝɢɫɬɪɚ ɢɫɩɨɥɶɡɭɟɬɫɹ ȼɏ, ɬɨ ɜ ɤɚɱɟɫɬɜɟ ɫɟɝɦɟɧɬɧɨɝɨ ɩɨɞɪɚɡɭɦɟɜɚɟɬɫɹ DS, ɩɪɢ ɢɫɩɨɥɶɡɨɜɚɧɢɢ ɛɚɡɨɜɨɝɨ ɪɟɝɢɫɬɪɚ ȼɊ ɫɟɝɦɟɧɬɧɵɦ ɪɟ­ɝɢɫɬɪɨɦ ɩɨ ɭɦɨɥɱɚɧɢɸ ɧɚɡɧɚɱɚɟɬɫɹ SS. ɉɪɢ ɧɟɨɛɯɨɞɢɦɨɫɬɢ ɦɨɠɧɨ ɹɜɧɨ ɭɤɚ­ɡɚɬɶ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɬɪɟɛɭɟɦɵɣ ɫɟɝɦɟɧɬɧɵɣ ɪɟɝɢɫɬɪ.
ɉɪɢɦɟɪ 2.42. Ȼɚɡɨɜɨ-ɢɧɞɟɤɫɧɚɹ ɚɞɪɟɫɚɰɢɹ.
MOV BX,[BP][SI] ; ȼ ȼɏ ɡɚɧɨɫɢɬɫɹ ɫɥɨɜɨ ɢɡ ɫɬɟɤɚ ;(ɫɟɝɦɟɧɬɧɵɣ ɚɞɪɟɫ ɜ SS), ;ɚ
ɫɦɟɳɟɧɢɟ ɜɵɱɢɫɥɹɟɬɫɹ ɤɚɤ ɫɭɦɦɚ ; ɫɨɞɟɪɠɢɦɨɝɨ ȼɊ ɢ SI MOV BX,ES:[BP][SI] ; ȼ ȼɏ ɡɚɧɨɫɢɬɫɹ ɫɥɨɜɨ ɢɡ ɫɟɝɦɟɧɬɚ, ; ɚɞɪɟɫ ɤɨɬɨɪɨɝɨ ɧɚɯɨɞɢɬɫɹ ɜ ES, ; ɚ ɫɦɟɳɟɧɢɟ ɜɵɱɢɫɥɹɟɬɫɹ ɤɚɤ ; ɫɭɦɦɚ ɫɨɞɟɪɠɢɦɨɝɨ ȼɊ ɢ SI MOV ES:[BX+DI],AX ;ȼ ɹɱɟɣɤɭ ɩɚɦɹɬɢ, ɫɟɝɦɟɧɬɧɵɣ ɚɞɪɟɫ ; ɤɨɬɨɪɨɣ ɯɪɚɧɢɬɫɹ ɜ ES, ɚ ɫɦɟɳɟɧɢɟ ; ɪɚɜɧɨ ɫɭɦɦɟ ɫɨɞɟɪɠɢɦɨɝɨ ȼɏ ɢ DI, ; ɩɟɪɟɫɵɥɚɟɬɫɹ ɫɨɞɟɪɠɢɦɨɟ Ⱥɏ
Ȼɚɡɨɜɨ-ɢɧɞɟɤɫɧɚɹ
ɚɞɪɟɫɚɰɢɹ ɫɨ ɫɦɟɳɟɧɢɟɦ ɩɪɟɞɩɨɥɚɝɚɟɬ, ɱɬɨ ɨɬɧɨ-
ɫɢɬɟɥɶɧɵɣ ɚɞɪɟɫ ɨɩɟɪɚɧɞɚ ɨɩɪɟɞɟɥɹɟɬɫɹ ɫɭɦɦɨɣ ɫɨɞɟɪɠɢɦɨɝɨ ɛɚɡɨɜɨɝɨ ɢ ɢɧ­ɞɟɤɫɧɨɝɨ ɪɟɝɢɫɬɪɨɜ, ɚ ɬɚɤɠɟ ɫɦɟɳɟɧɢɹ. Ⱦɨɩɭɫɤɚɟɬɫɹ ɢɫɩɨɥɶɡɨɜɚɧɢɟ ɬɟɯ ɠɟ ɩɚɪ ɪɟɝɢɫɬɪɨɜ, ɱɬɨ ɢ ɩɪɢ ɛɚɡɨɜɨ-ɢɧɞɟɤɫɧɨɦ ɫɩɨɫɨɛɟ ɚɞɪɟɫɚɰɢɢ.
52
ɉɪɢɦɟɪ 2.43. Ȼɚɡɨɜɨ-ɢɧɞɟɤɫɧɚɹ ɚɞɪɟɫɚɰɢɹ ɫɨ ɫɦɟɳɟɧɢɟɦ.
MOV mas [ȼɏ] [SI] , 20 ;ɑɢɫɥɨ 20 ɩɟɪɟɫɵɥɚɟɬɫɹ ɜ ɹɱɟɣɤɭ ɩɚɦɹɬɢ, ;ɫɟɝɦɟɧɬɧɵɣ ɚɞɪɟɫ ɤɨɬɨɪɨɣ ɯɪɚɧɢɬɫɹ ɜ DS, ɚ ;ɫɦɟɳɟɧɢɟ ɪɚɜɧɨ ɫɭɦɦɟ ɫɨɞɟɪɠɢɦɨɝɨ ;ȼɏ ɢ SI ɢ ɫɦɟɳɟɧɢɹ ɹɱɟɣɤɢ mas MOV AX,[BP+2+DI] ;ȼ Ⱥɏ ɩɟɪɟɫɵɥɚɟɬɫɹ ɢɡ ɫɬɟɤɚ ɫɥɨɜɨ, ;ɫɦɟɳɟɧɢɟ ɤɨɬɨɪɨɝɨ ɪɚɜɧɨ ɫɭɦɦɟ ȼɊ, DI ɢ 2
Ɉɫɨɛɨɟ ɦɟɫɬɨ ɜ ɩɪɨɝɪɚɦɦɚɯ Ⱥɫɫɟɦɛɥɟɪɚ ɡɚɧɢɦɚɸɬ ɨɩɟɪɚɰɢɢ ɫɨ
ɫɬɟɤɨɦ.
ɋɬɟɤ – ɷɬɨ ɨɛɥɚɫɬɶ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ, ɜɵɞɟɥɹɟɦɚɹ ɞɥɹ ɜɵɩɨɥɧɟɧɢɹ ɨɩɟ­ɪɚɰɢɣ ɨɛɦɟɧɚ ɞɚɧɧɵɦɢ, ɩɟɪɟɞɚɱɢ ɞɚɧɧɵɯ ɜ ɩɨɞɩɪɨɝɪɚɦɦɵ, ɚ ɬɚɤɠɟ ɞɥɹ ɜɪɟ­ɦɟɧɧɨɝɨ ɯɪɚɧɟɧɢɹ ɡɧɚɱɟɧɢɣ ɪɟɝɢɫɬɪɨɜ ɢ ɩɟɪɟɦɟɧɧɵɯ ɩɪɢ ɨɛɪɚɛɨɬɤɟ ɩɪɟɪɵɜɚ­ɧɢɣ. ɋɬɟɤ ɩɪɟɞɫɬɚɜɥɹɟɬ ɫɨɛɨɣ ɨɞɧɨɦɟɪɧɵɣ ɦɚɫɫɢɜ, ɞɨɫɬɭɩ ɤ ɫɨɞɟɪɠɢɦɨɦɭ ɤɨ­ɬɨɪɨɝɨ ɪɟɚɥɢɡɨɜɚɧ ɩɨ ɩɪɢɧɰɢɩɭ «ɩɨɫɥɟɞɧɢɦ ɜɨɲɟɥ – ɩɟɪɜɵɣ ɜɵɲɟɥ», ɬ. ɟ.
ɞɚɧ
ɧɵɟ, ɩɨɦɟɳɟɧɧɵɟ ɜ ɫɬɟɤ ɩɟɪɜɵɦɢ, ɦɨɝɭɬ ɛɵɬɶ ɢɡɜɥɟɱɟɧɵ ɩɨɫɥɟɞɧɢɦɢ.
Ⱦɥɹ ɪɚɛɨɬɵ ɫɨ ɫɬɟɤɨɦ ɢɫɩɨɥɶɡɭɸɬɫɹ ɫɥɟɞɭɸɳɢɟ ɪɟɝɢɫɬɪɵ:
RSP (ESP, SP) – ɪɟɝɢɫɬɪ ɭɤɚɡɚɬɟɥɹ ɫɬɟɤɚ, ɫɨɞɟɪɠɚɳɢɣ ɭɤɚɡɚɬɟɥɶ ɧɚ ɜɟɪɲɢɧɭ ɫɬɟɤɚ ɜ ɬɟɤɭɳɟɦ ɫɟɝɦɟɧɬɟ ɫɬɟɤɚ;
RBP (EBP, BP) – ɪɟɝɢɫɬɪ ɭɤɚɡɚɬɟɥɹ ɛɚɡɵ ɤɚɞɪɚ ɫɬɟɤɚ, ɨɪɝɚɧɢɡɭɸɳɢɣ ɩɪɨ­ɢɡɜɨɥɶɧɵɣ ɞɨɫɬɭɩ ɤ ɞɚɧɧɵɦ ɜɧɭɬɪɢ ɫɬɟɤɚ;
SS ɨɛɟɫɩɟɱɢɜɚɟɬ ɞɨɫɬɭɩ ɤ
ɫɟɝɦɟɧɬɭ ɫɬɟɤɚ.
Ⱥɞɪɟɫ, ɯɪɚɧɹɳɢɣɫɹ ɜ ɪɟɝɢɫɬɪɟ RSP (ESP, SP), ɧɚɡɵɜɚɟɬɫɹ ɜɟɪɲɢɧɨɣ ɫɬɟ-
ɤɚ.
ȿɫɥɢ ɧɟɨɛɯɨɞɢɦɨ ɩɨɥɭɱɢɬɶ ɞɨɫɬɭɩ ɤ ɷɥɟɦɟɧɬɚɦ ɧɟ ɧɚ ɜɟɪɲɢɧɟ, ɚ ɜɧɭɬɪɢ ɫɬɟɤɚ, ɬɨ ɧɟɨɛɯɨɞɢɦɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɪɟɝɢɫɬɪ RBP (EBP, BP) – ɷɬɨ ɪɟɝɢɫɬɪ ɭɤɚɡɚ­ɬɟɥɹ ɛɚɡɵ ɤɚɞɪɚ ɫɬɟɤɚ, ɝɞɟ ɦɨɠɧɨ ɡɚɩɢɫɚɬɶ ɧɟɨɛɯɨɞɢɦɵɣ ɚɞɪɟɫ ɫɬɟɤɚ.
ɉɪɢ ɪɚɛɨɬɟ ɫɨ ɫɬɟɤɨɦ ɢɫɩɨɥɶɡɭɸɬɫɹ
ɞɜɟ ɤɨɦɚɧɞɵ: PUSH – ɩɨɦɟɫɬɢɬɶ ɜ
ɫɬɟɤ, ɢ POP – ɢɡɜɥɟɱɶ ɢɡ ɫɬɟɤɚ.
ɉɪɢɦɟɪ 2.44. Ɂɚɧɟɫɟɧɢɟ ɞɚɧɧɵɯ ɜ ɫɬɟɤ ɢ ɢɡɜɥɟɱɟɧɢɟ ɢɡ ɧɟɝɨ.
PUSH AX ; ɡɚɧɨɫɢɦ ɜ ɫɬɟɤ ɫɨɞɟɪɠɢɦɨɟ AX PUSH BX ; ɡɚɧɨɫɢɦ ɜ ɫɬɟɤ ɫɨɞɟɪɠɢɦɨɟ BX POP BX ; ɢɡɜɥɟɤɚɟɦ ɢɡ ɫɬɟɤɚ ɫɨɞɟɪɠɢɦɨɟ BX POP AX ; ɢɡɜɥɟɤɚɟɦ ɢɡ ɫɬɟɤɚ ɫɨɞɟɪɠɢɦɨɟ BX
ȿɫɬɶ ɬɚɤɠɟ ɤɨɦɚɧɞɵ ɪɚɛɨɬɵ ɫɨ ɫɬɟɤɨɦ, ɩɨɡɜɨɥɹɸɳɢɟ ɫɨɯɪɚɧɢɬɶ ɢ ɜɨɫɫɬɚ­ɧɨɜɢɬɶ «ɩɚɤɟɬɨɦ»
ɫɨɞɟɪɠɢɦɨɟ
ɪɟɝɢɫɬɪɨɜ AX, DX, CX, DX, SP, BP, SI ɢ DI – ɷɬɨ PUSHA ɢ POPA; ɚ ɬɚɤɠɟ ɫɨɯɪɚɧɹɬɶ ɢ ɜɨɫɫɬɚɧɚɜɥɢɜɚɬɶ ɪɟɝɢɫɬɪ ɮɥɚɝɨɜ – PUSHF ɢ POPF.
2.2.5. Ⱥɪɢɮɦɟɬɢɱɟɫɤɢɟ ɢ ɥɨɝɢɱɟɫɤɢɟ ɨɩɟɪɚɰɢɢ
ɋɨɜɪɟɦɟɧɧɵɟ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɵ ɨɛɟɫɩɟɱɢɜɚɸɬ ɪɟɚɥɢɡɚɰɢɸ ɛɚɡɨɜɵɯ ɚɪɢɮ­ɦɟɬɢɱɟɫɤɢɯ ɢ ɥɨɝɢɱɟɫɤɢɯ ɨɩɟɪɚɰɢɣ ɫ ɞɜɨɢɱɧɵɦɢ ɢ ɞɜɨɢɱɧɨɞɟɫɹɬɢɱɧɵɦɢ ɱɢɫ­ɥɚɦɢ.
53
-
ɋɥɟɞɭɟɬ ɨɬɦɟɬɢɬɶ, ɱɬɨ ɡɧɚɱɢɬɟɥɶɧɚɹ ɱɚɫɬɶ ɚɪɢɮɦɟɬɢɱɟɫɤɢɯ ɨɩɟɪɚɰɢɣ ɜ Ⱥɫ­ɫɟɦɛɥɟɪɟ ɜɵɩɨɥɧɹɸɬɫɹ ɧɚɞ ɱɢɫɥɚɦɢ ɛɟɡ ɡɧɚɤɚ. Ɉɞɧɚɤɨ, ɬɚɤ ɤɚɤ ɡɧɚɤ ɱɢɫɥɚ ɜ ɞɜɨɢɱɧɵɯ ɱɢɫɥɚɯ ɩɪɟɞɫɬɚɜɥɟɧ ɫɬɚɪɲɢɦ ɛɢɬɨɦ, ɜɫɟɝɞɚ ɢɦɟɟɬɫɹ ɜɨɡɦɨɠɧɨɫɬɶ ɷɬɨ ɭɱɟɫɬɶ.
Ʉ ɚɪɢɮɦɟɬɢɱɟɫɤɢɦ ɨɩɟɪɚɰɢɹɦ Ⱥɫɫɟɦɛɥɟɪɚ ɨɬɧɨɫɹɬɫɹ: ɫɥɨɠɟɧɢɟ, ɜɵɱɢɬɚ­ɧɢɟ, ɭɦɧɨɠɟɧɢɟ ɢ ɞɟɥɟɧɢɟ, ɚ ɬɚɤɠɟ ɢɧɤɪɟɦɟɧɬ (ɭɜɟɥɢɱɟɧɢɟ ɧɚ ɟɞɢɧɢɰɭ) ɢ ɞɟ­ɤɪɟɦɟɧɬ
(ɭɦɟɧɶɲɟɧɢɟ ɧɚ ɟɞɢɧɢɰɭ).
Ⱦɥɹ ɫɥɨɠɟɧɢɹ ɩɪɟɞɭɫɦɨɬɪɟɧɵ ɞɜɟ ɤɨɦɚɧɞɵ: ADD (ɫɥɨɠɟɧɢɟ ɛɟɡ ɭɱɟɬɚ ɩɟ­ɪɟɧɨɫɚ) ɢ ADC (ɫɥɨɠɟɧɢɟ ɫ ɭɱɟɬɨɦ ɩɟɪɟɧɨɫɚ). ɋɢɧɬɚɤɫɢɫ ɷɬɢɯ ɤɨɦɚɧɞ ɫɥɟɞɭɸ­ɳɢɣ:
ADD ɩɪɢɟɦɧɢɤ, ɢɫɬɨɱɧɢɤ, ADC ɩɪɢɟɦɧɢɤ, ɢɫɬɨɱɧɢɤ,
ɝɞɟ ɩɪɢɟɦɧɢɤ, ɢɫɬɨɱɧɢɤ – ɨɩɟɪɚɧɞɵ, ɭɱɚɫɬɜɭɸɳɢɟ ɜ ɨɩɟɪɚɰɢɢ ɫɥɨɠɟɧɢɹ.
Ɋɟɡɭɥɶɬɚɬ ɨɩɟɪɚɰɢɢ ɩɨɦɟɳɚɟɬɫɹ ɜ ɩɪɢɟɦɧɢɤ.
ɉɪɢɦɟɪ 2.45. ɋɥɨɠɟɧɢɟ ɞɜɭɯ ɛɚɣɬɨɜ.
VAR1 DB 10 ; Ɉɛɴɹɜɥɹɟɦ
ɩɟɪɟɦɟɧɧɵɟ -
VAR2 DB 33 ; ɨɩɟɪɚɧɞɵ RES DB ? ; ɉɟɪɟɦɟɧɧɚɹ ɞɥɹ ɯɪɚɧɟɧɢɹ ɪɟɡɭɥɶɬɚɬɚ MOV AX, VAR1 ; ɉɨɦɟɳɚɟɦ ɡɧɚɱɟɧɢɟ ɢɡ VAR1 ɜ AX ADD AX, VAR2 ; ɋɤɥɚɞɵɜɚɟɦ MOV RES, AX ; Ɋɟɡɭɥɶɬɚɬ – ɜ RES, RES = 43
ɉɪɢɦɟɪ 2.46. ɋɥɨɠɟɧɢɟ ɞɜɭɯ ɞɜɨɣɧɵɯ ɫɥɨɜ.
VAR1 DD 02FE540FH VAR2 DD 0050A4CDH flagRES DB 0 ; ɮɥɚɝ ɭɱɟɬɚ ɩɟɪɟɧɨɫɚ ɢɡ ; ɫɬɚɪɲɟɝɨ ɪɚɡɪɹɞɚ ɪɟɡɭɥɶɬɚɬɚ RES DD 0 MOV AX,VAR1 ADD AX, VAR2 ; ɫɥɨɠɟɧɢɟ ɦɥɚɞɲɢɯ ɫɥɨɜ ɫɥɚɝɚɟɦɵɯ MOV RES, AX ; ɩɟɪɟɧɨɫ ɪɟɡɭɥɶɬɚɬɚ ɜ RES MOV AX, VARl+2 ADC ax, VAR2+2 ;ɫɥɨɠɟɧɢɟ ɫɬɚɪɲɢɯ ɫɥɨɜ ɫɥɚɝɚɟɦɵɯ ; ɢ
ɮɥɚɝɚ ɩɟɪɟɧɨɫɚ CF MOV RES+2,AX ADC flagRES,0 ;ɭɱɟɫɬɶ ɜɨɡɦɨɠɧɵɣ ɩɟɪɟɧɨɫ
ȿɫɬɶ
ɟɳɟ ɨɞɧɚ ɨɫɨɛɚɹ ɤɨɦɚɧɞɚ ɫɥɨɠɟɧɢɹ – ɫɥɨɠɟɧɢɟ ɫ ɩɟɪɟɧɨɫɨɦ: XADD
ɩɪɢɟɦɧɢɤ, ɢɫɬɨɱɧɢɤ, ɤɨɬɨɪɚɹ ɩɪɨɢɡɜɨɞɢɬ ɫɭɦɦɢɪɨɜɚɧɢɟ ɫɨɞɟɪɠɢɦɨɝɨ ɩɪɢɟɦ-
ɧɢɤɚ ɢ ɢɫɬɨɱɧɢɤɚ, ɩɨɫɥɟ ɱɟɝɨ ɩɪɢɟɦɧɢɤ ɫɨɞɟɪɠɢɬ ɡɧɚɱɟɧɢɟ ɫɭɦɦɵ, ɚ ɢɫ­ɬɨɱɧɢɤ – ɧɚɱɚɥɶɧɨɟ ɡɧɚɱɟɧɢɟ ɩɪɢɟɦɧɢɤɚ.
ɉɪɢɦɟɪ 2.47. ɋɥɨɠɟɧɢɟ ɞɜɭɯ ɛɚɣɬɨɜ ɫ ɨɛɦɟɧɨɦ.
MOV AL,05H MOV BL,02H XADD MOV AL,BL ;AL=07h, BL=05h
54
Ɉɩɟɪɚɰɢɹ ɜɵɱɢɬɚɧɢɹ ɪɟɚɥɢɡɭɟɬɫɹ ɞɜɭɦɹ ɤɨɦɚɧɞɚɦɢ: SUB ɢ SBB. ɉɟɪɜɚɹ ɢ ɜɬɨɪɚɹ ɩɪɨɢɡɜɨɞɹɬ ɰɟɥɨɱɢɫɥɟɧɧɨɟ ɜɵɱɢɬɚɧɢɟ, ɧɨ ɜɬɨɪɚɹ ɤɨɦɚɧɞɚ ɭɱɢɬɵɜɚɟɬ ɡɚ­ɟɦ. ɋɢɧɬɚɤɫɢɫ ɤɨɦɚɧɞ:
SUB ɩɪɢɟɦɧɢɤ, ɢɫɬɨɱɧɢɤ, SBB ɩɪɢɟɦɧɢɤ, ɢɫɬɨɱɧɢɤ,
ɝɞɟ ɩɪɢɟɦɧɢɤ, ɢɫɬɨɱɧɢɤ – ɨɩɟɪɚɧɞɵ, ɭɱɚɫɬɜɭɸɳɢɟ ɜ ɨɩɟɪɚɰɢɢ ɜɵɱɢɬɚɧɢɹ.
Ɋɟɡɭɥɶɬɚɬ ɨɩɟɪɚɰɢɢ ɩɨɦɟɳɚɟɬɫɹ ɜ ɩɪɢɟɦɧɢɤ.
ɉɪɢɦɟɪ 2.48. ȼɵɱɢɬɚɧɢɟ ɞɜɭɯ ɛɚɣɬɨɜ.
VAR1 DB 20 ; Ɉɛɴɹɜɥɹɟɦ ɩɟɪɟɦɟɧɧɵɟ - VAR2 DB 10 ; ɨɩɟɪɚɧɞɵ RES DB ? ; ɉɟɪɟɦɟɧɧɚɹ ɞɥɹ
ɯɪɚɧɟɧɢɹ ɪɟɡɭɥɶɬɚɬɚ MOV AX, VAR1 ; ɉɨɦɟɳɚɟɦ ɡɧɚɱɟɧɢɟ ɢɡ VAR1 ɜ AX SUB AX, VAR2 ; ȼɵɱɢɬɚɟɦ MOV RES, AX ; Ɋɟɡɭɥɶɬɚɬ – ɜ RES, RES = 10
Ⱦɥɹ ɭɦɧɨɠɟɧɢɹ ɜ Ⱥɫɫɟɦɛɥɟɪɟ ɢɫɩɨɥɶɡɭɸɬ ɞɜɟ ɤɨɦɚɧɞɵ: MUL – ɰɟɥɨɱɢɫ­ɥɟɧɧɨɟ ɭɦɧɨɠɟɧɢɟ ɛɟɡ ɡɧɚɤɚ ɢ IMUL – ɰɟɥɨɱɢɫɥɟɧɧɨɟ ɭɦɧɨɠɟɧɢɟ ɫɨ ɡɧɚɤɨɦ. ɋɢɧɬɚɤɫɢɫ ɷɬɢɯ ɤɨɦɚɧɞ ɫɥɟɞɭɸɳɢɣ:
MUL ɦɧɨɠɢɬɟɥɶ_1 IMUL ɦɧɨɠɢɬɟɥɶ_1 IMUL ɦɧɨɠɢɬɟɥɶ_1, ɦɧɨɠɢɬɟɥɶ_2 IMUL ɪɟɡɭɥɶɬɚɬ, ɦɧɨɠɢɬɟɥɶ_1, ɦɧɨɠɢɬɟɥɶ_2
Ɇɟɫɬɨɩɨɥɨɠɟɧɢɟ ɜɬɨɪɨɝɨ ɫɨɦɧɨɠɢɬɟɥɹ ɮɢɤɫɢɪɨɜɚɧɨ ɢ ɡɚɜɢɫɢɬ ɨɬ ɪɚɡɦɟɪɚ ɩɟɪɜɨɝɨ ɫɨɦɧɨɠɢɬɟɥɹ:
ɟɫɥɢ ɨɩɟɪɚɧɞ, ɭɤɚɡɚɧɧɵɣ ɜ ɤɨɦɚɧɞɟ, – ɛɚɣɬ, ɬɨ ɜɬɨɪɨɣ ɫɨɦɧɨɠɢɬɟɥɶ ɪɚɫ- ɩɨɥɚɝɚɟɬɫɹ ɜ AL;
ɟɫɥɢ ɨɩɟɪɚɧɞ, ɭɤɚɡɚɧɧɵɣ ɜ ɤɨɦɚɧɞɟ, – ɫɥɨɜɨ, ɬɨ ɜɬɨɪɨɣ ɫɨɦɧɨɠɢɬɟɥɶ ɪɚɫɩɨɥɚɝɚɟɬɫɹ ɜ AX;
ɟɫɥɢ ɨɩɟɪɚɧɞ, ɭɤɚɡɚɧɧɵɣ ɜ ɤɨɦɚɧɞɟ, – ɞɜɨɣɧɨɟ ɫɥɨɜɨ, ɬɨ ɜɬɨɪɨɣ ɫɨɦɧɨ- ɠɢɬɟɥɶ ɪɚɫɩɨɥɚɝɚɟɬɫɹ ɜ EAX.
Ɋɟɡɭɥɶɬɚɬ ɭɦɧɨɠɟɧɢɹ ɞɥɹ ɤɨɦɚɧɞɵ ɫ ɨɞɧɢɦ
ɨɩɟɪɚɧɞɨɦ ɩɨɦɟɳɚɟɬɫɹ ɜ ɫɬɪɨ-
ɝɨ ɨɩɪɟɞɟɥɟɧɧɨɟ ɦɟɫɬɨ, ɨɩɪɟɞɟɥɹɟɦɨɟ ɪɚɡɦɟɪɨɦ ɫɨɦɧɨɠɢɬɟɥɟɣ:
ɩɪɢ ɭɦɧɨɠɟɧɢɢ ɛɚɣɬɨɜ ɪɟɡɭɥɶɬɚɬ ɩɨɦɟɳɚɟɬɫɹ ɜ AX;
ɩɪɢ ɭɦɧɨɠɟɧɢɢ ɫɥɨɜ ɪɟɡɭɥɶɬɚɬ ɩɨɦɟɳɚɟɬɫɹ ɜ ɩɚɪɭ DX:AX;
ɩɪɢ ɭɦɧɨɠɟɧɢɢ ɞɜɨɣɧɵɯ ɫɥɨɜ ɪɟɡɭɥɶɬɚɬ ɩɨɦɟɳɚɟɬɫɹ ɜ ɩɚɪɭ EDX:EAX.
Ⱦɟɥɟɧɢɟ ɩɪɨɢɡɜɨɞɢɬɫɹ ɫ ɩɨɦɨɳɶɸ ɤɨɦɚɧɞɵ DIV – ɛɟɡɡɧɚɤɨɜɨɟ ɞɟɥɟɧɢɟ ɞɜɭɯ ɞɜɨɢɱɧɵɯ ɛɟɡɡɧɚɤɨɜɵɯ ɡɧɚɱɟɧɢɣ ɢɥɢ IDIV
– ɞɟɥɟɧɢɟ ɫɨ ɡɧɚɤɨɦ. ɋɢɧɬɚɤ-
ɫɢɫ ɤɨɦɚɧɞ ɞɟɥɟɧɢɹ:
DIV ɞɟɥɢɬɟɥɶ IDIV ɞɟɥɢɬɟɥɶ
Ʉɨɦɚɧɞɚ ɜɵɩɨɥɧɹɟɬ ɰɟɥɨɱɢɫɥɟɧɧɨɟ ɞɟɥɟɧɢɟ ɨɩɟɪɚɧɞɨɜ ɢ ɜɵɞɚɟɬ ɪɟɡɭɥɶ­ɬɚɬ ɜ ɜɢɞɟ ɱɚɫɬɧɨɝɨ ɢ ɨɫɬɚɬɤɚ ɨɬ ɞɟɥɟɧɢɹ. ɉɪɢ ɜɵɩɨɥɧɟɧɢɢ ɨɩɟɪɚɰɢɢ ɞɟɥɟɧɢɹ
55
ɜɨɡɦɨɠɧɨ ɜɨɡɧɢɤɧɨɜɟɧɢɟ ɢɫɤɥɸɱɢɬɟɥɶɧɨɣ ɫɢɬɭɚɰɢɢ: 0 – ɨɲɢɛɤɚ ɞɟɥɟɧɢɹ. ɗɬɚ ɫɢɬɭɚɰɢɹ ɜɨɡɧɢɤɚɟɬ ɜ ɨɞɧɨɦ ɢɡ ɞɜɭɯ ɫɥɭɱɚɟɜ: ɞɟɥɢɬɟɥɶ ɪɚɜɟɧ 0 ɢɥɢ ɱɚɫɬɧɨɟ ɫɥɢɲɤɨɦ ɜɟɥɢɤɨ ɞɥɹ ɟɝɨ ɪɚɡɦɟɳɟɧɢɹ ɜ ɪɟɝɢɫɬɪɟ EAX/AX/AL.
Ⱦɟɥɢɦɨɟ ɡɚɞɚɟɬɫɹ ɜ ɤɨɦɚɧɞɚɯ DIV ɢ IDIV ɡɚɞɚɟɬɫɹ ɧɟɹɜɧɨ ɢ ɪɚɡɦɟɪ ɟɝɨ ɡɚɜɢɫɢɬ ɨɬ ɪɚɡɦɟɪɚ ɞɟɥɢɬɟɥɹ:
ɟɫɥɢ ɞɟɥɢɬɟɥɶ – ɛɚɣɬ, ɬɨ ɞɟɥɢɦɨɟ ɞɨɥɠɧɨ ɛɵɬɶ
ɪɚɫɩɨɥɨɠɟɧɨ ɜ ɪɟɝɢɫɬɪɟ
AX. ɑɚɫɬɧɨɟ ɩɨɦɟɳɚɟɬɫɹ ɜ AL, ɚ ɨɫɬɚɬɨɤ – ɜ AH;
ɟɫɥɢ ɞɟɥɢɬɟɥɶ – ɫɥɨɜɨ, ɬɨ ɞɟɥɢɦɨɟ ɞɨɥɠɧɨ ɛɵɬɶ ɪɚɫɩɨɥɨɠɟɧɨ ɜ ɩɚɪɟ ɪɟ- ɝɢɫɬɪɨɜ DX:AX, ɩɪɢɱɟɦ ɦɥɚɞɲɚɹ ɱɚɫɬɶ ɞɟɥɢɦɨɝɨ ɧɚɯɨɞɢɬɫɹ ɜ AX. ɉɨɫɥɟ ɨɩɟɪɚ­ɰɢɢ ɱɚɫɬɧɨɟ ɩɨɦɟɳɚɟɬɫɹ ɜ AX, ɚ ɨɫɬɚɬɨɤ – ɜ DX;
ɟɫɥɢ ɞɟɥɢɬɟɥɶ – ɞɜɨɣɧɨɟ ɫɥɨɜɨ, ɬɨ
ɞɟɥɢɦɨɟ ɞɨɥɠɧɨ ɛɵɬɶ ɪɚɫɩɨɥɨɠɟɧɨ ɜ ɩɚɪɟ ɪɟɝɢɫɬɪɨɜ EDX:EAX, ɩɪɢɱɟɦ ɦɥɚɞɲɚɹ ɱɚɫɬɶ ɞɟɥɢɦɨɝɨ ɧɚɯɨɞɢɬɫɹ ɜ EAX. ɉɨɫɥɟ ɨɩɟɪɚɰɢɢ ɱɚɫɬɧɨɟ ɩɨɦɟɳɚɟɬɫɹ ɜ EAX, ɚ ɨɫɬɚɬɨɤ – ɜ EDX.
ɉɪɢɦɟɪ 2.49. ɐɟɥɨɱɢɫɥɟɧɧɨɟ ɞɟɥɟɧɢɟ.
;ɞɟɥɟɧɢɟ ɫɥɨɜɚ ɧɚ ɛɚɣɬ
MOV AX,10234 ; ɞɟɥɢɦɨɟ MOV BL,154 DIV BL ; Ⱥɇ=ɨɫɬɚɬɨɤ, AL=4acmHoe ;ɞɟɥɟɧɢɟ ɫɥɨɜ MOV AX,1045 ;ɞɟɥɢɦɨɟ MOV BX,587 ;ɞɟɥɢɬɟɥɶ CWD ; ɪɚɫɲɢɪɟɧɢɟ ɞɟɥɢɦɨɝɨ DX:AX IDIV BX ;ɱɚɫɬɧɨɟ ɜ AX, ɨɫɬɚɬɨɤ ɜ DX
Ʉɨɦɚɧɞɵ
ɢɧɤɪɟɦɟɧɬɚ INC ɢ ɞɟɤɪɟɦɟɧɬɚ DEC ɩɨɡɜɨɥɹɸɬ ɭɜɟɥɢɱɢɜɚɬɶ ɢ ɭɦɟɧɶɲɚɬɶ ɡɧɚɱɟɧɢɟ ɱɢɫɥɨɜɨɝɨ ɨɩɟɪɚɧɞɚ ɧɚ ɟɞɢɧɢɰɭ. Ɉɩɟɪɚɧɞ ɦɨɠɟɬ ɢɦɟɬɶ ɪɚɡɦɟɪ ɛɚɣɬɚ, ɫɥɨɜɚ, ɞɜɨɣɧɨɝɨ ɢ ɭɱɟɬɜɟɪɟɧɧɨɝɨ ɫɥɨɜɚ. ɋɢɧɬɚɤɫɢɫ ɨɩɟɪɚɰɢɣ:
INC ɨɩɟɪɚɧɞ DEC ɨɩɟɪɚɧɞ
ɉɪɢɦɟɪ 2.50. ɂɫɩɨɥɶɡɨɜɚɧɢɟ ɨɩɟɪɚɰɢɣ ɢɧɤɪɟɦɟɧɬɚ ɢ ɞɟɤɪɟɦɟɧɬɚ.
MOV AX, 7 INC AX ; ɭɜɟɥɢɱɢɦ AX ɧɚ 1 : AX = 8 MOV AL,9 DEC AL ; AL=8
Ⱥɫɫɟɦɛɥɟɪ ɩɨɞɞɟɪɠɢɜɚɟɬ ɫɥɟɞɭɸɳɢɟ ɥɨɝɢɱɟɫɤɢɟ ɨɩɟɪɚɰɢɢ: NOT (ɨɩɟɪɚɰɢɹ ɥɨɝɢɱɟɫɤɨɝɨ ɨɬɪɢɰɚɧɢɹ) ɩɪɨɢɡɜɨɞɢɬ ɩɨɪɚɡɪɹɞɧɨɟ ɢɧɜɟɪɬɢ-
ɪɨɜɚɧɢɟ
ɤɚɠɞɨɝɨ ɛɢɬɚ ɨɩɟɪɚɧɞɚ. Ɋɟɡɭɥɶɬɚɬ ɡɚɩɢɫɵɜɚɟɬɫɹ ɨɛɪɚɬɧɨ ɜ ɬɨɬ ɠɟ ɨɩɟ-
ɪɚɧɞ;
AND (ɨɩɟɪɚɰɢɹ ɥɨɝɢɱɟɫɤɨɝɨ ɂ) ɜɵɩɨɥɧɹɟɬ ɩɨɪɚɡɪɹɞɧɭɸ ɥɨɝɢɱɟɫɤɭɸ ɨɩɟ-
ɪɚɰɢɸ ɂ (ɤɨɧɴɸɧɤɰɢɹ). Ɋɟɡɭɥɶɬɚɬ ɡɚɩɢɫɵɜɚɟɬɫɹ ɜ ɩɪɢɟɦɧɢɤ;
OR (ɨɩɟɪɚɰɢɹ ɥɨɝɢɱɟɫɤɨɝɨ ɂɅɂ) ɜɵɩɨɥɧɹɟɬ ɩɨɪɚɡɪɹɞɧɭɸ ɥɨɝɢɱɟɫɤɭɸ ɨɩɟ-
ɪɚɰɢɸ ɂɅɂ (ɞɢɡɴɸɧɤɰɢɹ). Ɋɟɡɭɥɶɬɚɬ ɡɚɩɢɫɵɜɚɟɬɫɹ ɜ ɩɪɢɟɦɧɢɤ;
XOR (ɨɩɟɪɚɰɢɹ ɥɨɝɢɱɟɫɤɨɝɨ ɢɫɤɥɸɱɚɸɳɟɝɨ ɂɅɂ) ɜɵɩɨɥɧɹɟɬ ɩɨɪɚɡɪɹɞɧɭɸ
ɥɨɝɢɱɟɫɤɭɸ ɨɩɟɪɚɰɢɸ ɢɫɤɥɸɱɚɸɳɟɝɨ ɫɥɨɠɟɧɢɹ
;
56
TEST (ɨɩɟɪɚɰɢɹ ɩɪɨɜɟɪɤɢ) ɜɵɩɨɥɧɹɟɬ ɩɨɪɚɡɪɹɞɧɭɸ ɥɨɝɢɱɟɫɤɭɸ ɨɩɟɪɚɰɢɸ ɂ.
Ɋɟɡɭɥɶɬɚɬ ɧɢɤɭɞɚ ɧɟ ɡɚɩɢɫɵɜɚɟɬɫɹ, ɚ ɢɞɟɧɬɢɮɢɰɢɪɭɟɬɫɹ ɱɟɪɟɡ ɪɟɝɢɫɬɪ ɮɥɚɝɨɜ.
ɋɢɧɬɚɤɫɢɫ ɥɨɝɢɱɟɫɤɢɯ ɨɩɟɪɚɰɢɣ:
NOT ɨɩɟɪɚɧɞ AND ɢɫɬɨɱɧɢɤ, ɩɪɢɟɦɧɢɤ OR ɢɫɬɨɱɧɢɤ, ɩɪɢɟɦɧɢɤ XOR ɢɫɬɨɱɧɢɤ, ɩɪɢɟɦɧɢɤ TEST ɢɫɬɨɱɧɢɤ, ɩɪɢɟɦɧɢɤ
ɉɪɢɦɟɪ 2.51. ɂɫɩɨɥɶɡɨɜɚɧɢɟ ɥɨɝɢɱɟɫɤɢɯ ɨɩɟɪɚɰɢɣ.
; Ɉɩɪɟɞɟɥɹɟɦ ɡɧɚɱɟɧɢɹ ɨɩɟɪɚɧɞɨɜ MOV AL, 01h ; AL = 01h MOV BL, 10h ; BL = 10h ; Ɉɩɟɪɚɰɢɹ ɂɅɂ OR BL, AL ; AL = 01h BL = 11h ;ɢɡɦɟɧɢɬɶ ɡɧɚɱɟɧɢɟ ɛɢɬɚ 0 ɪɟɝɢɫɬɪɚ AL ɧɚ ; ɂɫɤɥɸɱɚɸ­ɳɟɟ ɂɅɂ XOR AL, 01h ; AL = 02h
2.2.6. ɍɩɪɚɜɥɟɧɢɟ ɯɨɞɨɦ ɜɵɩɨɥɧɟɧɢɹ ɩɪɨɝɪɚɦɦɵ
Ʉ ɤɨɦɚɧɞɚɦ Ⱥɫɫɟɦɛɥɟɪɚ, ɭɩɪɚɜɥɹɸɳɢɦ ɜɵɩɨɥɧɟɧɢɟɦ ɩɪɨɝɪɚɦɦɵ, ɨɬɧɨ­ɫɹɬɫɹ ɤɨɦɚɧɞɵ ɩɟɪɟɯɨɞɨɜ, ɤɨɦɚɧɞɵ ɨɪɝɚɧɢɡɚɰɢɢ ɰɢɤɥɨɜ ɢ ɤɨɦɚɧɞɵ ɜɵɡɨɜɚ ɩɨɞɩɪɨɝɪɚɦɦ.
Ʉɨɦɚɧɞɵ ɩɟɪɟɯɨɞɨɜ ɩɨɡɜɨɥɹɸɬ ɪɟɚɥɢɡɨɜɚɬɶ ɜɟɬɜɥɟɧɢɟ ɜ ɩɪɨɝɪɚɦɦɟ ɜ ɡɚɜɢ­ɫɢɦɨɫɬɢ ɨɬ ɡɚɞɚɧɧɵɯ ɭɫɥɨɜɢɣ ɢɥɢ ɪɟɡɭɥɶɬɚɬɨɜ ɜɵɩɨɥɧɟɧɢɹ ɞɪɭɝɢɯ ɤɨɦɚɧɞ (ɤɚɤ ɩɪɚɜɢɥɨ, ɚɪɢɮɦɟɬɢɱɟɫɤɢɯ ɢ ɥɨɝɢɱɟɫɤɢɯ). ɋɪɟɞɢ ɧɢɯ ɨɫɨɛɨɟ ɦɟɫɬɨ ɡɚɧɢɦɚɟɬ ɤɨ­ɦɚɧɞɚ ɛɟɡɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ JMP, ɤɨɬɨɪɚɹ
ɩɪɨɢɡɜɨɞɢɬ ɩɟɪɟɯɨɞ ɧɚ ɭɤɚɡɚɧɧɭɸ
ɫɬɪɨɤɭ ɩɪɨɝɪɚɦɦɵ. ɋɢɧɬɚɤɫɢɫ ɤɨɦɚɧɞɵ JMP ɫɥɟɞɭɸɳɢɣ:
JMP [ɦɨɞɢɮɢɤɚɬɨɪ] ɚɞɪɟɫ_ɩɟɪɟɯɨɞɚ,
ɝɞɟ ɦɨɞɢɮɢɤɚɬɨɪ – ɫɥɭɠɟɛɧɵɟ ɫɥɨɜɚ, ɭɤɚɡɵɜɚɸɳɢɟ ɧɚ ɞɚɥɶɧɨɫɬɶ ɩɟɪɟ­ɯɨɞɚ;
ɚɞɪɟɫ_ɩɟɪɟɯɨɞɚ – ɚɞɪɟɫ ɫɬɪɨɤɢ ɜ ɩɪɨɝɪɚɦɦɟ, ɧɚ ɤɨɬɨɪɭɸ ɧɭɠɧɨ ɩɪɨ­ɢɡɜɟɫɬɢ ɩɟɪɟɯɨɞ. ȼ ɤɚɱɟɫɬɜɟ ɚɞɪɟɫɚ_ɩɟɪɟɯɨɞɚ ɱɚɫɬɨ ɢɫɩɨɥɶɡɭɸɬ ɬɟɤɫɬɨɜɭɸ ɦɟɬɤɭ.
Ɇɨɞɢɮɢɤɚɬɨɪ ɦɨɠɟɬ ɛɵɬɶ ɫɥɟɞɭɸɳɢɦ:
near ptr – ɩɪɹɦɨɣ ɩɟɪɟɯɨɞ
ɧɚ ɦɟɬɤɭ ɜɧɭɬɪɢ ɬɟɤɭɳɟɝɨ ɫɟɝɦɟɧɬɚ ɤɨɞɚ (ɜ ɩɪɟ-
ɞɟɥɚɯ 64 ɤȻɚɣɬ);
far ptr – ɩɪɹɦɨɣ ɩɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ ɜ ɞɪɭɝɨɦ ɫɟɝɦɟɧɬɟ ɤɨɞɚ;
word ptr – ɤɨɫɜɟɧɧɵɣ ɩɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ ɜɧɭɬɪɢ ɬɟɤɭɳɟɝɨ ɫɟɝɦɟɧɬɚ ɤɨ-
ɞɚ;
dword ptr – ɤɨɫɜɟɧɧɵɣ ɩɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ ɜ ɞɪɭɝɨɦ ɫɟɝɦɟɧɬɟ ɤɨɞɚ.
Ɋɚɫɫɦɨɬɪɢɦ ɪɚɡɥɢɱɧɵɟ ɜɚɪɢɚɧɬɵ ɢɫɩɨɥɶɡɨɜɚɧɢɹ ɤɨɦɚɧɞɵ ɛɟɡɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ ɧɚ ɩɪɢɦɟɪɚɯ.
57
ɭ
ɭ
ɉɪɢɦɟɪ 2.52. Ȼɟɡɭɫɥɨɜɧɵɟ ɩɟɪɟɯɨɞɵ ɜ Ⱥɫɫɟɦɛɥɟɪɟ.
;1. ɉɪɹɦɨɣ ɤɨɪɨɬɤɢɣ ɩɟɪɟɯɨɞ JMP short pt1 ;ɉɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ shpt ;ɜ ɩɪɟɞɟɥɚɯ +127...-128 ɛɚɣɬ JMP pt2 ;To ɠɟ ɫɚɦɨɟ, ɟɫɥɢ shpt ;ɧɚɯɨɞɢɬɫɹ ɜɵɲɟ ɩɨ ɬɟɤɫɬɭ ɩɪɨɝɪɚɦɦɵ ; 2. ɉɪɹɦɨɣ ɛɥɢɠɧɢɣ ɩɟɪɟɯɨɞ JMP near ptr pt3 ; Ⱥɧɚɥɨɝɢɱɧɨ MOV ; 3. Ʉɨɫɜɟɧɧɵɟ ɛɥɢɠɧɢɟ ɩɟɪɟɯɨɞɵ mov BX,offset pt4 ; ȼɏ=ɚɞɪɟɫ ɬɨɱɤɢ ɩɟɪɟɯɨɞɚ JMP BX ;ɉɟɪɟɯɨɞ ɜ ɬɨɱɤɭ pt addrpt dw pt4 ;əɱɟɣɤɚ ɫ ɚɞɪɟɫɨɦ ɬɨɱɤɢ ɩɟɪɟɯɨɞɚ JMP DS:addr ;ɉɟɪɟɯɨɞ ɜ ɬɨɱɤɭ pt JMP word ptr addrpt ;To ɠɟ ɫɚɦɨɟ addr dw pt5 ;əɱɟɣɤɚ ɫ ɚɞɪɟɫɨɦ ɬɨɱɤɢ ɩɟɪɟɯɨɞɚ MOV DI,offset addr ; ɩɨɥɭɱɚɟɦ ɚɞɪɟɫ ɹɱɟɣɤɢ ; ɫ ɚɞɪɟɫɨɦ ɬɨɱɤɢ ɩɟɪɟɯɨɞɚ JMP [DI] ; ɉɟɪɟɯɨɞ ɜ ɬɨɱɤɭ pt ; 4. ɉɪɹɦɨɣ ɞɚɥɶɧɢɣ ɩɟɪɟɯɨɞ JMP far ptr farpt ;ɉɟɪɟɯɨɞ ɧɚ ɦɟɬɤɭ farpt ɜ ;ɞɪɭɝɨɦ ɩɪɨɝɪɚɦɦɧɨɦ ɫɟɝɦɟɧɬɟ ; 5. Ʉɨɫɜɟɧɧɵɣ ɞɚɥɶɧɢɣ ɩɟɪɟɯɨɞ addr dd pt ;ɉɨɥɟ ɫ ɞɜɭɯɫɥɨɜɧɵɦ ;ɚɞɪɟɫɨɦ ɬɨɱɤɢ ɩɟɪɟɯɨɞɚ JMP DS:addr ;ɉɟɪɟɯɨɞ ɜ ɬɨɱɤɭ pt JMP dword ptr addr ;To ɠɟ ɫɚɦɨɟ
Ʉɨɦɚɧɞɵ ɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ
ɢɦɟɸɬ ɫɥɟɞɭɸɳɢɣ ɫɢɧɬɚɤɫɢɫ:
JCC ɦɟɬɤɚ_ɩɟɪɟɯɨɞɚ,
ɝɞɟ ɫɢɦɜɨɥɵ CC ɨɩɪɟɞɟɥɹɸɬ ɤɨɧɤɪɟɬɧɨɟ ɭɫɥɨɜɢɟ, ɚɧɚɥɢɡɢɪɭɟɦɨɟ ɤɨɦɚɧɞɨɣ (ɫɦ. ɬɚɛɥ. 2.6);
ɦɟɬɤɚ_ɩɟɪɟɯɨɞɚ ɦɨɠɟɬ ɧɚɯɨɞɢɬɶɫɹ ɬɨɥɶɤɨ ɜ ɩɪɟɞɟɥɚɯ ɬɟɤɭɳɟɝɨ ɫɟɝ- ɦɟɧɬɚ ɤɨɞɚ.
Ɍ ɚ ɛ ɥ ɢ ɰ ɚ 2.6
Ʉɨɦɚɧɞɵ ɭɫɥɨɜɧɵɯ ɩɟɪɟɯɨɞɨɜ
Ʉɨɦɚɧɞɚ ɉɟɪɟɯɨɞ, ɟɫɥɢ Ɏɥɚɝɢ
JZ/JE
JNZ/JNE
JC/JNAE/JB
JNC/JAE/JNB
ɧ
ɥɶ ɢɥɢ ɪɚɜɧɨ
ɧɟ ɧ
ɥɶ ɢɥɢ ɧɟ ɪɚɜɧɨ
ɟɫɬɶ ɩɟɪɟɩɨɥɧɟɧɢɟ/ɧɟ ɜɵɲɟ ɢ ɧɟ ɪɚɜɧɨ/ɧɢɠɟ
ɧɟɬ ɩɟɪɟɩɨɥɧɟɧɢɹ/ɜɵɲɟ ɢɥɢ ɪɚɜɧɨ/ ɧɟ ɧɢɠɟ
ZF=1 ZF=0
CF=1
CF=0
JP/JNP ɱɢɫɥɨ ɟɞɢɧɢɱɧɵɯ ɛɢɬ ɱɟɬɧɨɟ/ɧɟɱɟɬɧɨɟ PF=1 / PF=0
58
Ɉ ɤ ɨ ɧ ɱ ɚ ɧ ɢ ɟ ɬ ɚ ɛ ɥ ɢ ɰ ɵ 2.6
Ʉɨɦɚɧɞɚ
JS/JNS
JO/JNO
JA/JNBE
ɡɧɚɤ ɪɚɜɟɧ 1/0 ɩɟɪɟɩɨɥɧɟɧɢɟ ɟɫɬɶ/ɧɟɬ ɜɵɲɟ/ɧɟ ɧɢɠɟ ɢ ɧɟ ɪɚɜɧɨ
ɉɟɪɟɯɨɞ, ɟɫɥɢ
JNA/JBE ɧɟ ɜɵɲɟ/ɧɢɠɟ ɢɥɢ ɪɚɜɧɨ
JG/JNLE JGE/JNL JL/JNGE
ɛɨɥɶɲɟ/ɧɟ ɦɟɧɶɲɟ ɢ ɧɟ ɪɚɜɧɨ ɛɨɥɶɲɟ ɢɥɢ ɪɚɜɧɨ/ɧɟ ɦɟɧɶɲɟ ɦɟɧɶɲɟ/ɧɟ ɛɨɥɶɲɟ ɢ ɧɟ ɪɚɜɧɨ
JLE/JNG ɦɟɧɶɲɟ ɢɥɢ ɪɚɜɧɨ/ɧɟ ɛɨɥɶɲɟ
JCXZ
ɫɨɞɟɪɠɢɦɨɟ CX ɪɚɜɧɨ ɧɭɥɸ
Ɏɥɚɝɢ
SF=1/SF=0
OF=1 / OF=0
CF=0 ɢ ZF=0
CF=1 ɢɥɢ
ZF=1
ZF=0 ɢ SF=OF
SF=OF SF^OF
ZF=1 ɢɥɢ
SFOF
ɉɪɢɦɟɱɚɧɢɟ: ɜɵɲɟ/ɧɢɠɟ – ɞɥɹ ɛɟɡɡɧɚɤɨɜɵɯ ɨɩɟɪɚɧɞɨɜ; ɛɨɥɶɲɟ/ɦɟɧɶɲɟ – ɞɥɹ ɨɩɟɪɚɧɞɨɜ ɫɨ ɡɧɚɤɨɦ.
ɂɫɬɨɱɧɢɤɚɦɢ ɭɫɥɨɜɢɹ ɩɟɪɟɞɚɱɢ ɭɩɪɚɜɥɟɧɢɹ ɦɨɝɭɬ ɛɵɬɶ:
ɪɟɡɭɥɶɬɚɬ ɜɵɩɨɥɧɟɧɢɹ ɥɸɛɨɣ ɤɨɦɚɧɞɵ, ɢɡɦɟɧɹɸɳɟɣ ɫɨɫɬɨɹɧɢɟ ɚɪɢɮɦɟ- ɬɢɱɟɫɤɢɯ ɮɥɚɝɨɜ;
ɤɨɦɚɧɞɚ ɫɪɚɜɧɟɧɢɹ CMP, ɫɪɚɜɧɢɜɚɸɳɚɹ ɡɧɚɱɟɧɢɹ ɞɜɭɯ ɨɩɟɪɚɧɞɨɜ;
ɫɨɞɟɪɠɢɦɨɟ ɪɟɝɢɫɬɪɚ RCX/ECX/CX.
Ʉɨɦɚɧɞɚ ɫɪɚɜɧɟɧɢɹ CMP ɜɵɩɨɥɧɹɟɬ ɜɵɱɢɬɚɧɢɟ ɨɩɟɪɚɧɞɨɜ ɢ ɭɫɬɚɧɚɜɥɢɜɚɟɬ ɫɨɨɬɜɟɫɬɜɭɸɳɢɟ ɮɥɚɝɢ. ɋɢɧɬɚɤɫɢɫ
ɤɨɦɚɧɞɵ ɫɪɚɜɧɟɧɢɹ:
CMP ɨɩɟɪɚɧɞ_1, ɨɩɟɪɚɧɞ_2
Ɏɥɚɝɢ, ɭɫɬɚɧɚɜɥɢɜɚɟɦɵɟ ɤɨɦɚɧɞɨɣ CMP, ɡɚɬɟɦ ɚɧɚɥɢɡɢɪɭɸɬ ɫɨɨɬ­ɜɟɬɫɬɜɭɸɳɢɦɢ ɤɨɦɚɧɞɚɦɢ ɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ (ɬɚɛɥ. 2.7). ȿɫɥɢ ɫɪɚɜɧɢɬɶ ɤɨ­ɦɚɧɞɵ ɭɫɥɨɜɧɨɝɨ ɩɟɪɟɯɨɞɚ, ɩɪɢɜɟɞɟɧɧɵɟ ɜ ɬɚɛɥɢɰɟ 2.6, ɫ ɤɨɦɚɧɞɚɦɢ ɜ ɬɚɛɥ. 2.7, ɦɨɠɧɨ ɭɜɢɞɟɬɶ, ɱɬɨ ɨɧɢ ɨɞɢɧɚɤɨɜɵ ɩɨ ɧɚɩɢɫɚɧɢɸ, ɧɨ ɪɚɡɥɢɱɚɸɬɫɹ ɩɨ ɫɦɵɫɥɭ.
Ɍ ɚ ɛ ɥ ɢ ɰ ɚ 2.7
Ʉɨɦɚɧɞɵ ɭɫɥɨɜɧɨɝɨ
ɩɟɪɟɯɨɞɚ ɞɥɹ ɚɧɚɥɢɡɚ ɪɟɡɭɥɶɬɚɬɨɜ
ɫɪɚɜɧɟɧɢɹ ɤɨɦɚɧɞɨɣ CMP
Ɍɢɩɵ
ɨɩɟɪɚɧɞɨɜ
Ʉɨɦɚɧɞɚ
ɭɫɥɨɜɧɨɝɨ
ɩɟɪɟɯɨɞɚ
Ʉɪɢɬɟɪɢɣ ɭɫɥɨɜɧɨɝɨ
ɩɟɪɟɯɨɞɚ
Ɏɥɚɝɢ
Ʌɸɛɵɟ JE ɨɩɟɪɚɧɞ_1 = ɨɩɟɪɚɧɞ_2 ZF = 1
Ʌɸɛɵɟ JNE ɨɩɟɪɚɧɞ_1<>ɨɩɟɪɚɧɞ_2 ZF = 0
ɋɨ ɡɧɚɤɨɦ JL/JNGE ɨɩɟɪɚɧɞ_1 < ɨɩɟɪɚɧɞ_2 SF <>OF
ɋɨ ɡɧɚɤɨɦ JLE/JNG ɨɩɟɪɚɧɞ_1 <= ɨɩɟɪɚɧɞ_2
59
SF <>OF ɢɥɢ
ZF = 1
Ɉ ɤ ɨ ɧ ɱ ɚ ɧ ɢ ɟ ɬ ɚ ɛ ɥ ɢ ɰ ɵ 2.7
Ɍɢɩɵ
ɨɩɟɪɚɧɞɨɜ
ɋɨ ɡɧɚɤɨɦ JG/JNLE ɨɩɟɪɚɧɞ_1 > ɨɩɟɪɚɧɞ_2
Ʉɨɦɚɧɞɚ
ɭɫɥɨɜɧɨɝɨ
Ʉɪɢɬɟɪɢɣ ɭɫɥɨɜɧɨɝɨ
ɩɟɪɟɯɨɞɚ
Ɏɥɚɝɢ
SF = OF ɢ
ZF = 0
ɋɨ ɡɧɚɤɨɦ JGE/JNL ɨɩɟɪɚɧɞ_1 => ɨɩɟɪɚɧɞ_2 SF = of
Ȼɟɡ ɡɧɚɤɚ JB/JNAE ɨɩɟɪɚɧɞ_1 < ɨɩɟɪɚɧɞ_2 CF = 1
Ȼɟɡ ɡɧɚɤɚ JBE/JNA ɨɩɟɪɚɧɞ_1 <= ɨɩɟɪɚɧɞ_2
Ȼɟɡ ɡɧɚɤɚ JA/JNBE ɨɩɟɪɚɧɞ_1 > ɨɩɟɪɚɧɞ_2
CF = 1 ɢɥɢ
ZF =1
CF = 0 ɢ
ZF = 0
Ȼɟɡ ɡɧɚɤɚ JAE/JNB ɨɩɟɪɚɧɞ_1 => ɨɩɟɪɚɧɞ_2 CF = 0
Ʉɨɦɚɧɞɵ ɰɢɤɥɨɜ ɢɫɩɨɥɶɡɭɸɬ ɪɟɝɢɫɬɪ RCX/ECX/CX ɤɚɤ ɫɱɟɬɱɢɤ ɰɢɤɥɚ. ɋɢɧɬɚɤɫɢɫ ɛɚɡɨɜɨɣ ɤɨɦɚɧɞɵ ɰɢɤɥɚ:
LOOP ɦɟɬɤɚ_ɩɟɪɟɯɨɞɚ
Ʉɨɦɚɧɞɚ LOOP ɩɨɡɜɨɥɹɟɬ ɨɪɝɚɧɢɡɨɜɚɬɶ ɰɢɤɥɵ, ɩɨɞɨɛɧɵɟ ɰɢɤɥɚɦ for ɜ ɋɢ ɫ ɚɜɬɨɦɚɬɢɱɟɫɤɢɦ ɭɦɟɧɶɲɟɧɢɟɦ ɫɱɟɬɱɢɤɚ ɰɢɤɥɚ ɧɚ ɤɚɠɞɨɦ ɲɚɝɟ ɧɚ ɟɞɢɧɢɰɭ. ɉɨɫɥɟɞɨɜɚɬɟɥɶɧɨɫɬɶ ɪɚɛɨɬɵ ɰɢɤɥɚ LOOP:
ɞɟɤɪɟɦɟɧɬ ɪɟɝɢɫɬɪɚ ȿɋɏ/ɋɏ;
ɫɪɚɜɧɟɧɢɟ ɪɟɝɢɫɬɪɚ ȿɋɏ/ɋɏ ɫ ɧɭɥɟɦ
: ɟɫɥɢ (ȿɋɏ/ɋɏ) = 0, ɬɨ ɭɩɪɚɜɥɟɧɢɟ
ɩɟɪɟɞɚɟɬɫɹ ɧɚ ɫɥɟɞɭɸɳɭɸ ɩɨɫɥɟ loop ɤɨɦɚɧɞɭ.
Ʉɪɨɦɟ LOOP, ɜ ɩɪɨɝɪɚɦɦɚɯ ɚɫɫɟɦɛɥɟɪɚ ɢɫɩɨɥɶɡɭɸɬɫɹ ɬɚɤɠɟ ɬɚɤɢɟ ɤɨɦɚɧɞɵ ɰɢɤɥɨɜ:
LOOPE/LOOPZ/LOOPNE/LOOPNZ ɦɟɬɤɚ_ɩɟɪɟɯɨɞɚ
Ɋɚɛɨɬɚ ɤɨɦɚɧɞ LOOPE ɢ LOOPZ ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɜɵɩɨɥɧɟɧɢɢ ɫɥɟɞɭɸɳɢɯ ɞɟɣɫɬɜɢɣ:
ɞɟɤɪɟɦɟɧɬ ɪɟɝɢɫɬɪɚ ȿɋɏ/ɋɏ;
ɫɪɚɜɧɟɧɢɟ ɪɟɝɢɫɬɪɚ ȿɋɏ/ɋɏ ɫ ɧɭɥɟɦ;
ɚɧɚɥɢɡ ɫɨɫɬɨɹɧɢɹ: ɮɥɚɝɚ ɧɭɥɹ ZF ɟɫɥɢ (R
ɋɏ/ȿɋɏ/ɋɏ) = 0 ɢɥɢ ZF = 0,
ɭɩɪɚɜɥɟɧɢɟ ɩɟɪɟɞɚɟɬɫɹ ɧɚ ɫɥɟɞɭɸɳɭɸ ɩɨɫɥɟ LOOPE (LOOPZ) ɤɨɦɚɧɞɭ.
Ɋɚɛɨɬɚ ɤɨɦɚɧɞ LOOPNE ɢ LOOPNZ ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɜɵɩɨɥɧɟɧɢɢ ɫɥɟɞɭɸ­ɳɢɯ ɞɟɣɫɬɜɢɣ:
ɞɟɤɪɟɦɟɧɬ ɪɟɝɢɫɬɪɚ Rɋɏ/ȿɋɏ/ɋɏ;
ɫɪɚɜɧɟɧɢɟ ɪɟɝɢɫɬɪɚ Rɋɏ/ȿɋɏ/ɋɏ ɫ ɧɭɥɟɦ;
ɚɧɚɥɢɡ ɫɨɫɬɨɹɧɢɹ ɮɥɚɝɚ ɧɭɥɹ: ZF: ɟɫɥɢ (Rɋɏ/ȿɋɏ/ɋɏ) = 0 ɢɥɢ ZF = 1,
ɭɩɪɚɜɥɟɧɢɟ
ɩɟɪɟɞɚɟɬɫɹ ɧɚ ɫɥɟɞɭɸɳɭɸ ɩɨɫɥɟ LOOP ɤɨɦɚɧɞɭ.
Ʉɨɦɚɧɞɵ LOOPE/LOOPZ ɢ LOOPNE/LOOPNZ ɪɚɫɲɢɪɹɸɬ ɜɨɡɦɨɠɧɨɫɬɢ ɤɨɦɚɧɞɵ LOOP ɬɟɦ, ɱɬɨ ɞɨɩɨɥɧɢɬɟɥɶɧɨ ɚɧɚɥɢɡɢɪɭɸɬ ɮɥɚɝ ZF, ɱɬɨ ɩɨɡɜɨɥɹɟɬ ɨɪɝɚɧɢɡɨɜɚɬɶ ɞɨɫɪɨɱɧɵɣ ɜɵɯɨɞ ɢɡ ɰɢɤɥɚ, ɢɫɩɨɥɶɡɭɹ ɷɬɨɬ ɮɥɚɝ ɜ ɤɚɱɟɫɬɜɟ ɢɧɞɢ­ɤɚɬɨɪɚ.
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]