Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Микропроцессоры. Учебник
.pdf
Ɋɟɝɢɫɬɪ ɫr0 ɫɨɞɟɪɠɢɬ ɫɢɫɬɟɦɧɵɟ ɮɥɚɝɢ, ɭɩɪɚɜɥɹɸɳɢɟ ɪɟɠɢɦɚɦɢ ɪɚ-
ɛɨɬɵ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɢ ɨɬɪɚɠɚɸɳɢɟ ɟɝɨ ɫɨɫɬɨɹɧɢɟ ɝɥɨɛɚɥɶɧɨ, ɧɟɡɚɜɢɫɢɦɨ ɨɬ ɤɨɧɤɪɟɬɧɨ ɜɵɩɨɥɧɹɸɳɢɯɫɹ ɡɚɞɚɱ. ɇɚɡɧɚɱɟɧɢɟ ɫɢɫɬɟɦɧɵɯ ɮɥɚɝɨɜ:
–
ɪe – ɪɚɡɪɟɲɟɧɢɟ ɡɚɳɢɳɟɧɧɨɝɨ ɪɟɠɢɦɚ ɪɚɛɨɬɵ. ɋɨɫɬɨɹɧɢɟ ɷɬɨɝɨ
ɮɥɚɝɚ ɩɨɤɚɡɵɜɚɟɬ, ɜ ɤɚɤɨɦ ɢɡ ɞɜɭɯ ɪɟɠɢɦɨɜ – ɪɟɚɥɶɧɨɦ (ɪe = 0) ɢɥɢ ɡɚ-
ɳɢɳɟɧɧɨɦ (ɪe = 1) ɪɚɛɨɬɚɟɬ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ ɜ ɞɚɧɧɵɣ ɦɨɦɟɧɬ;
–
mɪ – ɧɚɥɢɱɢɟ ɫɨɩɪɨɰɟɫɫɨɪɚ (ɪɚɜɟɧ 1);
–
ts – ɩɟɪɟɤɥɸɱɟɧɢɟ ɡɚɞɚɱ. ɉɪɨɰɟɫɫɨɪ ɚɜɬɨɦɚɬɢɱɟɫɤɢ ɭɫɬɚɧɚɜɥɢɜɚɟɬ
ɷɬɨɬ ɛɢɬ ɩɪɢ ɩɟɪɟɤɥɸɱɟɧɢɢ ɧɚ ɜɵɩɨɥɧɟɧɢɟ ɞɪɭɝɨɣ ɡɚɞɚɱɢ;
–
ɚm – ɦɚɫɤɚ ɜɵɪɚɜɧɢɜɚɧɢɹ, ɪɚɡɪɟɲɚɟɬ (ɚm = 1) ɢɥɢ ɡɚɩɪɟɳɚɟɬ (ɚm =
0) ɤɨɧɬɪɨɥɶ ɜɵɪɚɜɧɢɜɚɧɢɹ;
–
ɫd – ɡɚɩɪɟɳɟɧɢɟ ɤɷɲ-ɩɚɦɹɬɢ. ɋ ɩɨɦɨɳɶɸ ɷɬɨɝɨ ɛɢɬɚ ɦɨɠɧɨ ɡɚɩɪɟ-
ɬɢɬɶ ɢɥɢ ɪɚɡɪɟɲɢɬɶ ɢɫɩɨɥɶɡɨɜɚɧɢɟ ɤɷɲ-ɩɚɦɹɬɢ ɩɟɪɜɨɝɨ ɭɪɨɜɧɹ;
–
ɪg – ɪɚɡɪɟɲɟɧɢɟ (ɪg = 1) ɢɥɢ ɡɚɩɪɟɬ (ɪg = 0) ɫɬɪɚɧɢɱɧɨɝɨ ɩɪɟɨɛɪɚ-
ɡɨɜɚɧɢɹ.
Ɋɟɝɢɫɬɪ ɫr2 ɢɫɩɨɥɶɡɭɟɬɫɹ ɩɪɢ ɫɬɪɚɧɢɱɧɨɣ ɨɪɝɚɧɢɡɚɰɢɢ ɨɩɟɪɚɬɢɜɧɨɣ
ɩɚɦɹɬɢ ɞɥɹ ɪɟɝɢɫɬɪɚɰɢɢ ɫɢɬɭɚɰɢɢ, ɤɨɝɞɚ ɬɟɤɭɳɚɹ ɤɨɦɚɧɞɚ ɨɛɪɚɬɢɥɚɫɶ ɩɨ
ɚɞɪɟɫɭ, ɫɨɞɟɪɠɚɳɟɦɭɫɹ ɜ ɫɬɪɚɧɢɰɟ ɩɚɦɹɬɢ, ɨɬɫɭɬɫɬɜɭɸɳɟɣ ɜ ɷɬɨɬ ɦɨɦɟɧɬ.
ȼ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɟ ɜɨɡɧɢɤɚɟɬ ɢɫɤɥɸɱɢɬɟɥɶɧɚɹ ɫɢɬɭɚɰɢɹ ɢ ɥɢɧɟɣɧɵɣ
32-ɛɢɬɧɵɣ ɚɞɪɟɫ ɤɨɦɚɧɞɵ, ɜɵɡɜɚɜɲɟɣ ɷɬɨ ɢɫɤɥɸɱɟɧɢɟ, ɡɚɩɢɫɵɜɚɟɬɫɹ ɜ ɪɟɝɢɫɬɪ ɫr2. Ɉɛɪɚɛɨɬɱɢɤ ɢɫɤɥɸɱɟɧɢɹ, ɢɦɟɹ ɷɬɭ ɢɧɮɨɪɦɚɰɢɸ, ɨɩɪɟɞɟɥɹɟɬ
ɧɭɠɧɭɸ ɫɬɪɚɧɢɰɭ, ɨɫɭɳɟɫɬɜɥɹɟɬ ɟɟ «ɩɨɞɤɚɱɤɭ» ɜ ɩɚɦɹɬɶ ɢ ɜɨɡɨɛɧɨɜɥɹɟɬ
ɧɨɪɦɚɥɶɧɭɸ ɪɚɛɨɬɭ ɩɪɨɝɪɚɦɦɵ.
Ɋɟɝɢɫɬɪ ɫr3 ɬɚɤɠɟ ɢɫɩɨɥɶɡɭɟɬɫɹ ɩɪɢ ɫɬɪɚɧɢɱɧɨɣ ɨɪɝɚɧɢɡɚɰɢɢ ɩɚɦɹɬɢ.
ɗɬɨ ɬɚɤ ɧɚɡɵɜɚɟɦɵɣ ɪɟɝɢɫɬɪ ɤɚɬɚɥɨɝɚ ɫɬɪɚɧɢɰ ɩɟɪɜɨɝɨ ɭɪɨɜɧɹ. Ɉɧ ɫɨɞɟɪɠɢɬ 20-ɛɢɬɧɵɣ ɮɢɡɢɱɟɫɤɢɣ ɛɚɡɨɜɵɣ ɚɞɪɟɫ ɤɚɬɚɥɨɝɚ ɫɬɪɚɧɢɰ ɬɟɤɭɳɟɣ ɡɚɞɚɱɢ.
Ɋɟɝɢɫɬɪ ɫr4 ɫɨɞɟɪɠɢɬ ɩɪɢɡɧɚɤɢ, ɜ ɨɫɧɨɜɧɨɦ ɪɚɡɪɟɲɢɬɟɥɶɧɨɝɨ ɧɚɩɪɚɜ-
ɥɟɧɢɹ, ɤɨɬɨɪɵɟ
ɯɚɪɚɤɬɟɪɢɡɭɸɬ ɬɟ ɢɥɢ ɢɧɵɟ ɚɪɯɢɬɟɤɬɭɪɧɵɟ ɷɥɟɦɟɧɬɵ.
ɍɫɬɚɧɚɜɥɟɧɢɟɦ ɬɟɯ ɢɥɢ ɢɧɵɯ ɛɢɬɨɜ ɜ ɪɟɝɢɫɬɪɟ ɫr4 ɦɨɠɧɨ ɜɤɥɸɱɚɬɶ ɢ ɨɬɤɥɸɱɚɬɶ ɩɨɞɞɟɪɠɤɭ ɷɬɢɯ ɫɜɨɣɫɬɜ.
Ɋɟɝɢɫɬɪɵ ɫɢɫɬɟɦɧɵɯ ɚɞɪɟɫɨɜ
ɗɬɢ ɪɟɝɢɫɬɪɵ ɧɚɡɵɜɚɸɬ ɪɟɝɢɫɬɪɚɦɢ ɭɩɪɚɜɥɟɧɢɹ ɩɚɦɹɬɶɸ. Ɉɧɢ ɩɪɟɞɧɚɡɧɚɱɟɧɵ ɞɥɹ ɡɚɳɢɬɵ ɩɪɨɝɪɚɦɦ ɢ ɞɚɧɧɵɯ ɜ ɦɭɥɶɬɢɡɚɞɚɱɧɨɦ ɪɟɠɢɦɟ ɪɚɛɨɬɵ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ. ɉɪɢ ɪɚɛɨɬɟ ɜ ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɟ ɚɞɪɟɫɧɨɟ ɩɪɨɫɬɪɚɧɫɬɜɨ ɞɟɥɢɬɫɹ ɧɚ:
–
ɝɥɨɛɚɥɶɧɨɟ – ɨɛɳɟɟ ɞɥɹ ɜɫɟɯ ɡɚɞɚɱ;
–
ɥɨɤɚɥɶɧɨɟ – ɨɬɞɟɥɶɧɨɟ ɞɥɹ ɤɚɠɞɨɣ ɡɚɞɚɱɢ.
ȼ ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɟ ɥɸɛɨɣ ɡɚɩɪɨɫ ɤ ɩɚɦɹɬɢ ɨɩɟɪɚɰɢɨɧɧɨɣ ɫɢɫɬɟɦɵ ɢ ɩɪɢɤɥɚɞɧɵɯ ɩɪɨɝɪɚɦɦ ɞɨɥɠɟɧ ɛɵɬɶ ɫɚɧɤɰɢɨɧɢɪɨɜɚɧ. Ɇɢɤɪɨɩɪɨɰɟɫ-
71

ɫɨɪ ɚɩɩɚɪɚɬɧɨ ɤɨɧɬɪɨɥɢɪɭɟɬ ɞɨɫɬɭɩ ɩɪɨɝɪɚɦɦ ɤ ɥɸɛɨɦɭ ɚɞɪɟɫɭ ɜ ɨɩɟɪɚɬɢɜɧɨɣ ɩɚɦɹɬɢ. ɋ ɰɟɥɶɸ ɩɨɥɭɱɟɧɢɹ ɞɨɫɬɭɩɚ ɰɟɥɟɜɨɣ ɚɞɪɟɫ, ɤ ɤɨɬɨɪɨɦɭ
ɫɬɪɟɦɢɬɫɹ ɩɨɥɭɱɢɬɶ ɞɨɫɬɭɩ ɩɪɨɝɪɚɦɦɚ, ɞɨɥɠɟɧ ɛɵɬɶ ɨɩɢɫɚɧ ɞɥɹ ɩɪɨɝɪɚɦɦɵ. ɗɬɨ ɨɡɧɚɱɚɟɬ, ɱɬɨ ɭɱɚɫɬɨɤ ɮɢɡɢɱɟɫɤɨɣ ɩɚɦɹɬɢ, ɫɨɞɟɪɠɚɳɢɣ ɧɟɨɛɯɨɞɢɦɵɣ ɚɞɪɟɫ, ɞɨɥɠɟɧ ɛɵɬɶ ɨɩɢɫɚɧ ɫ ɩɨɦɨɳɶɸ ɧɟɤɨɬɨɪɨɝɨ ɞɟɫɤɪɢɩɬɨɪɚ
ɫɟɝɦɟɧɬɚ.
ɉɪɨɝɪɚɦɦɟ, ɜ ɤɨɬɨɪɨɣ
ɞɨɥɠɟɧ ɛɵɬɶ ɢɫɩɨɥɶɡɨɜɚɧ ɞɚɧɧɵɣ ɭɱɚɫɬɨɤ ɩɚɦɹɬɢ, ɞɨɥɠɟɧ ɛɵɬɶ ɫɨɨɛɳɟɧ ɭɤɚɡɚɬɟɥɶ ɧɚ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɣ ɞɟɫɤɪɢɩɬɨɪ ɜ
ɨɞɧɨɣ ɢɡ ɞɟɫɤɪɢɩɬɨɪɧɵɯ ɬɚɛɥɢɰ. ȼ ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɟ ɦɟɧɹɟɬɫɹ ɪɨɥɶ
ɫɟɝɦɟɧɬɧɨɝɨ ɪɟɝɢɫɬɪɚ – ɨɧ ɫɨɞɟɪɠɢɬ ɧɟ ɚɞɪɟɫ, ɚ ɢɧɞɟɤɫ ɜ ɬɚɛɥɢɰɟ ɞɟɫɤɪɢɩɬɨɪɨɜ ɫɟɝɦɟɧɬɨɜ. ɇɚɡɧɚɱɟɧɢɟ ɫɟɝɦɟɧɬɧɵɯ ɪɟɝɢɫɬɪɨɜ ɧɟ ɢɡɦɟɧɹɟɬɫɹ, ɨɧɢ
ɩɨ-ɩɪɟɠɧɟɦɭ ɭɤɚɡɵɜɚɸɬ ɧɚ ɫɟɝɦɟɧɬɵ ɤɨɦɚɧɞ, ɞɚɧɧɵɯ
ɢ ɫɬɟɤɚ, ɧɨ ɫ ɢɫ-
ɩɨɥɶɡɨɜɚɧɢɟɦ ɩɪɢɧɰɢɩɢɚɥɶɧɨ ɞɪɭɝɢɯ ɦɟɯɚɧɢɡɦɨɜ.
Ɋɚɡɦɟɪ ɫɟɝɦɟɧɬɚ ɜ ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɟ ɦɨɠɟɬ ɞɨɫɬɢɝɚɬɶ ɱɟɬɵɪɟɯ ɝɢɝɚɛɚɣɬ, ɬɨ ɟɫɬɶ ɡɚɧɢɦɚɬɶ ɜɫɟ ɜɨɡɦɨɠɧɨɟ ɮɢɡɢɱɟɫɤɨɟ ɩɪɨɫɬɪɚɧɫɬɜɨ ɩɚɦɹɬɢ.
ȼɵɜɟɞɟɧɢɟ ɢɧɮɨɪɦɚɰɢɢ ɨ ɛɚɡɨɜɨɦ ɚɞɪɟɫɟ ɫɟɝɦɟɧɬɚ ɢ ɟɝɨ ɪɚɡɦɟɪɟ ɧɚ ɭɪɨɜɟɧɶ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ ɩɨɡɜɨɥɹɟɬ ɚɩɩɚɪɚɬɧɨ ɤɨɧɬɪɨɥɢɪɨɜɚɬɶ ɪɚɛɨɬɭ ɩɪɨɝɪɚɦɦ ɫ ɩɚɦɹɬɶɸ ɢ ɩɪɟɞɨɬɜɪɚɳɚɬɶ ɨɛɪɚɳɟɧɢɹ ɩɨ ɧɟɫɭɳɟɫɬɜɭɸɳɢɦ ɚɞɪɟɫɚɦ, ɥɢɛɨ ɚɞɪɟɫɚɦ, ɧɚɯɨɞɹɳɢɦɫɹ ɜɧɟ ɩɪɟɞɟɥɚ, ɪɚɡɪɟɲɟɧɧɨɝɨ ɩɨɥɟɦ ɪɚɡɦɟɪɚ ɫɟɝɦɟɧɬɚ limit.
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
include \masm32\include\fpu.inc
include \masm32\include\msvcrt.inc
include \masm32\include\user32.inc
includelib \masm32\lib\user32.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\msvcrt.lib
includelib \masm32\lib\fpu.lib
include \ masm32 \ include \ windows.inc
include \ masm32 \ include \ kernel32.inc
include \ masm32 \ include \ fpu.inc
include \ masm32 \ include \ user32.inc
include \ masm32 \ include \ msvcrt.inc
includelib \ masm32 \ lib \ user32.lib
includelib \ masm32 \ lib \ kernel32.lib
includelib \ masm32 \ lib \ msvcrt.lib
includelib \ masm32 \ lib \ fpu.lib
72

. Data ;ɞɢɪɟɤɬɢɜɚ ɨɩɪɟɞɟɥɟɧɢɹ ɞɚɧɧɵɯ
frmt db "% d",0
buf db 30 dup (0)
buf2 db 20 dup (0)
stdout DWORD?
stdin DWORD?
const dd 10
temp1 dd 0.0
temp2 dd 0.5
temp3 dd 0.5
temp4 dd 0.5
identif1 dd 1
identif2 dd 1
st1 db "Vvedyte a",0
st2 db "Vvedyte b",0
st3 db "Ɋɟɡɭɥɶɬɚɬ ɜɵɱɢɫɥɟɧɢɹ a + b",
st4 db "a + b ="
. Code; ɞɢɪɟɤɬɢɜɚ ɧɚɱɚɥɚ ɤɨɞɚ
_start:
invoke GetStdHandle,STD_OUTPUT_HANDLE
mov stdout,eax
invoke GetStdHandle,STD_INPUT_HANDLE
mov stdin,eax
invoke WriteConsoleA, stdout, ADDR st1, 11, NULL,NULL; VIVOD ST1
invoke ReadConsole, stdin, ADDR buf, 20, ADDR cRead,ULL ; ɱɬɟɧɢɹ
ɱɢɫɥɚ ɤɚɤ ɫɢɦɜɨɥ
invoke crt_atoi, ADDR buf ; ɩɪɟɨɛɪɚɡɨɜɚɬɶ ɫɢɦɜɨɥ ɜ ɱɢɫɥɨ
mov temp1, eax
lea edi, buf
mov ecx, 30
m1:
mov al, '.'
mov bl, [edi]
xor al, bl
jz m2
inc edi
loop m1
m2:
lea esi, buf2
73

mov ecx, 20
m3:
inc edi
mov ebx, [edi]
mov [esi], ebx
inc esi
loop m3
invoke crt_atoi, ADDR buf2 ;ɩɪɟɨɛɪɚɡɨɜɚɬɶ ɫɢɦɜɨɥ ɜ ɱɢɫɥɨ
mov temp2, eax
id1:
mov eax, identif1
mov ebx, const
mul ebx
SHL edx, 16; ɞɟɥɚɟɦ ɫɞɜɢɝ ɧɚ 16
mov dx, ax
mov identif1, edx
mov ecx, temp2
sub ecx, edx
jc id_end1
jmp id1
id_end1:
invoke GetStdHandle, STD_OUTPUT_HANDLE
mov stdout, eax
invoke GetStdHandle, STD_INPUT_HANDLE
mov stdin, eax
invoke WriteConsoleA, stdout, ADDR st2, 11, NULL, NULL; VIVOD
ST1
invoke ReadConsole, stdin, ADDR buf, 20, ADDR cRead, NULL; ɱɬɟɧɢɹ
ɱɢɫɥɚ ɤɚɤ ɫɢɦɜɨɥ
invoke crt_atoi, ADDR buf; ɩɪɟɨɛɪɚɡɨɜɚɬɶ ɫɢɦɜɨɥ ɜ ɱɢɫɥɨ
mov temp3, eax
lea edi, buf
mov ecx, 30
m4:
mov al, '.'
mov bl, [edi]
xor al, bl
jz m5
inc edi
74

loop m4
m5:
lea esi, buf2
mov ecx, 20
m6:
inc edi
mov ebx, [edi]
mov [esi], ebx
inc esi
loop m6
invoke crt_atoi, ADDR buf2; ɩɪɟɨɛɪɚɡɨɜɚɬɶ ɫɢɦɜɨɥ ɜ ɱɢɫɥɨ
mov temp4, eax
id2:
mov eax, identif2
mov ebx, const
mul ebx
SHL edx, 16;ɞɟɥɚɟɦ ɫɞɜɢɝ ɧɚ 16
mov dx, ax
mov identif2, edx
mov ecx, temp4
sub ecx, edx
jc id_end2
jmp id2
id_end2:
finit
fild temp1
fiadd temp3
fild temp2
fidiv identif1
fadd st (0), st (1)
fild temp4
fidiv identif2
fadd st (0), st (1)
invoke FpuFLtoA, 0, 10, ADDR st4, SRC1_FPU or SRC2_DIMM
invoke MessageBox, NULL, addr st4, addr st3, MB_OK
invoke ExitProcess, NULL ;ɜɨɡɜɪɚɬ ɭɩɪɚɜɥɟɧɢɹ Windows
; ɂ ɨɫɜɨɛɨɠɞɟɧɢɹ ɪɟɫɭɪɫɨɜ
end _start; ɞɢɪɟɤɬɢɜɚ ɨɤɨɧɱɚɧɢɹ ɩɪɨɝɪɚɦɦɵ ɫ ɢɦɟɧɟɦ start
75

ɋɟɝɦɟɧɬɵ ɧɟɪɚɜɧɨɩɪɚɜɧɵ ɜ ɩɪɚɜɚɯ ɞɨɫɬɭɩɚ ɤ ɧɢɦ. Ɍɪɢ ɚɩɩɚɪɚɬɧɨ
ɩɨɞɞɟɪɠɢɜɚɟɦɵɟ ɞɟɫɤɪɢɩɬɨɪɧɵɟ ɬɚɛɥɢɰɵ:
1. GDT – ɝɥɨɛɚɥɶɧɚɹ ɞɟɫɤɪɢɩɬɨɪɧɚɹ ɬɚɛɥɢɰɚ. ɗɬɨ ɨɫɧɨɜɧɚɹ ɨɛɳɟɫɢ-
ɫɬɟɦɧɚɹ ɬɚɛɥɢɰɚ, ɤ ɤɨɬɨɪɨɣ ɞɨɩɭɫɤɚɟɬɫɹ ɨɛɪɚɳɟɧɢɟ ɫɨ ɫɬɨɪɨɧɵ ɩɪɨɝɪɚɦɦ,
ɨɛɥɚɞɚɸɳɢɯ ɞɨɫɬɚɬɨɱɧɵɦɢ ɩɪɢɜɢɥɟɝɢɹɦɢ. Ɋɚɫɩɨɥɨɠɟɧɢɟ ɬɚɛɥɢɰɵ ɜ ɩɚɦɹɬɢ ɩɪɨɢɡɜɨɥɶɧɨ. ȼ ɬɚɛɥɢɰɟ ɦɨɝɭɬ ɫɨɞɟɪɠɚɬɶɫɹ ɫɥɟɞɭɸɳɢɟ ɬɢɩɵ ɞɟɫɤɪɢɩɬɨɪɨɜ:
–
ɞɟɫɤɪɢɩɬɨɪɵ ɫɟɝɦɟɧɬɨɜ ɤɨɞɨɜ ɩɪɨɝɪɚɦɦ;
–
ɞɟɫɤɪɢɩɬɨɪɵ ɫɟɝɦɟɧɬɨɜ ɞɚɧɧɵɯ ɩɪɨɝɪɚɦɦ;
–
ɞɟɫɤɪɢɩɬɨɪɵ ɫɬɟɤɨɜɵɯ ɫɟɝɦɟɧɬɨɜ ɩɪɨɝɪɚɦɦ;
–
ɞɟɫɤɪɢɩɬɨɪɵ TSS – ɫɟɝɦɟɧɬɵ ɫɨɫɬɨɹɧɢɹ ɡɚɞɚɱ;
–
ɞɟɫɤɪɢɩɬɨɪɵ ɞɥɹ ɬɚɛɥɢɰ LDT;
–
ɲɥɸɡɵ ɜɵɡɨɜɚ;
–
ɲɥɸɡɵ ɡɚɞɚɱ.
2. Ɍɚɛɥɢɰɚ LDT – ɥɨɤɚɥɶɧɚɹ ɞɟɫɤɪɢɩɬɨɪɧɚɹ ɬɚɛɥɢɰɚ. Ⱦɥɹ ɥɸɛɨɣ ɡɚ-
ɞɚɱɢ ɜ ɫɢɫɬɟɦɟ ɦɨɠɟɬ ɛɵɬɶ ɫɨɡɞɚɧɚ ɫɜɨɹ ɞɟɫɤɪɢɩɬɨɪɧɚɹ ɬɚɛɥɢɰɚ. Ɍɟɦ ɫɚɦɵɦ ɚɞɪɟɫɧɨɟ ɩɪɨɫɬɪɚɧɫɬɜɨ ɡɚɞɚɱɢ ɥɨɤɚɥɢɡɭɟɬɫɹ ɜ ɩɪɟɞɟɥɚɯ ɭɫɬɚɧɨɜɥɟɧɧɵɯ ɧɚɛɨɪɨɦ ɞɟɫɤɪɢɩɬɨɪɨɜ ɬɚɛɥɢɰɵ, ɪɚɫɩɨɥɨɠɟɧɢɟ ɤɨɬɨɪɨɣ ɜ ɩɚɦɹɬɢ
ɬɚɤɠɟ ɩɪɨɢɡɜɨɥɶɧɨ. ȼ ɬɚɛɥɢɰɟ ɦɨɝɭɬ ɫɨɞɟɪɠɚɬɶɫɹ ɫɥɟɞɭɸɳɢɟ ɬɢɩɵ ɞɟɫɤɪɢɩɬɨɪɨɜ:
–
ɞɟɫɤɪɢɩɬɨɪɵ ɫɟɝɦɟɧɬɨɜ ɤɨɞɨɜ ɩɪɨɝɪɚɦɦ;
–
ɞɟɫɤɪɢɩɬɨɪɵ ɫɟɝɦɟɧɬɨɜ ɞɚɧɧɵɯ ɩɪɨɝɪɚɦɦ;
–
ɞɟɫɤɪɢɩɬɨɪɵ ɫɬɟɤɨɜɵɯ ɫɟɝɦɟɧɬɨɜ ɩɪɨɝɪɚɦɦ;
–
ɲɥɸɡɵ ɜɵɡɨɜɚ;
–
ɲɥɸɡɵ ɡɚɞɚɱ.
3. Ɍɚɛɥɢɰɚ IDT – ɞɟɫɤɪɢɩɬɨɪɧɚɹ ɬɚɛɥɢɰɚ ɩɪɟɪɵɜɚɧɢɣ. Ɉɧɚ ɫɨɞɟɪɠɢɬ
ɞɟɫɤɪɢɩɬɨɪɵ ɫɩɟɰɢɚɥɶɧɨɝɨ ɬɢɩɚ, ɤɨɬɨɪɵɟ ɨɩɪɟɞɟɥɹɸɬ ɦɟɫɬɨɩɨɥɨɠɟɧɢɟ
ɩɪɨɝɪɚɦɦ – ɨɛɪɚɛɨɬɱɢɤɨɜ ɜɫɟɯ ɜɢɞɨɜ ɩɪɟɪɵɜɚɧɢɣ. ɗɥɟɦɟɧɬɵ ɷɬɨɣ ɬɚɛɥɢɰɵ ɧɚɡɵɜɚɸɬɫɹ ɲɥɸɡɚɦɢ ɬɪɟɯ ɬɢɩɨɜ – ɡɚɞɚɱ, ɩɪɟɪɵɜɚɧɢɣ, ɥɨɜɭɲɟɤ.
16. Ɉɛɪɚɛɨɬɤɚ ɩɪɟɪɵɜɚɧɢɣ ɜ ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɟ
Ɉɛɪɚɛɨɬɤɚ ɩɪɟɪɵɜɚɧɢɣ ɜ ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɟ ɨɬɥɢɱɚɟɬɫɹ ɨɬ ɨɛɪɚɛɨɬɤɢ ɜ ɪɟɚɥɶɧɨɦ ɪɟɠɢɦɟ ɬɚɤ ɠɟ ɫɭɳɟɫɬɜɟɧɧɨ, ɤɚɤ ɢ ɫɚɦ ɡɚɳɢɳɟɧɧɵɣ ɪɟɠɢɦ ɨɬɥɢɱɚɟɬɫɹ ɨɬ ɪɟɚɥɶɧɨɝɨ ɪɚɫɩɪɟɞɟɥɟɧɢɟɦ ɧɨɦɟɪɨɜ ɜɟɤɬɨɪɨɜ ɩɪɟɪɵɜɚɧɢɣ ɢ ɩɪɢɧɰɢɩɢɚɥɶɧɨ ɞɪɭɝɢɦ ɦɟɯɚɧɢɡɦɨɦ ɨɛɪɚɛɨɬɤɢ.
ɋɢɫɬɟɦɧɵɟ ɨɛɪɚɛɨɬɱɢɤɢ ɩɪɟɪɵɜɚɧɢɣ ɞɥɹ ɩɪɟɞɨɬɜɪɚɳɟɧɢɹ ɤɨɧɮɥɢɤɬɨɜ ɜɵɩɨɥɧɹɸɬ ɞɟɣɫɬɜɢɹ ɩɨ ɢɞɟɧɬɢɮɢɤɚɰɢɢ ɢɫɬɨɱɧɢɤɚ ɩɪɟɪɵɜɚɧɢɹ ɢ
ɥɢɲɶ ɡɚɬɟɦ ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɨ ɩɨ ɢɯ ɨɛɪɚɛɨɬɤɟ.
Ʉɥɸɱɟɜɵɦɢ ɤɨɦɩɨɧɟɧɬɚɦɢ ɜ ɫɯɟɦɟ ɨɛɪɚɛɨɬɤɢ ɩɪɟɪɵɜɚɧɢɣ ɹɜɥɹɸɬɫɹ
ɞɟɫɤɪɢɩɬɨɪɧɚɹ ɬɚɛɥɢɰɚ ɩɪɟɪɵɜɚɧɢɣ IDT ɢ ɫɢɫɬɟɦɧɵɣ ɪɟɝɢɫɬɪ idtr. ɉɪɢ
76

ɜɨɡɧɢɤɧɨɜɟɧɢɢ ɩɪɟɪɵɜɚɧɢɹ ɨɬ ɢɫɬɨɱɧɢɤɚ ɫ ɧɨɦɟɪɨɦ N ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ,
ɧɚɯɨɞɹɫɶ ɜ ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɟ, ɜɵɩɨɥɧɹɟɬ ɫɥɟɞɭɸɳɢɟ ɞɟɣɫɬɜɢɹ:
–
ɨɩɪɟɞɟɥɹɟɬ ɦɟɫɬɨɧɚɯɨɠɞɟɧɢɟ ɬɚɛɥɢɰɵ IDT, ɚɞɪɟɫ ɢ ɪɚɡɦɟɪ ɤɨɬɨɪɨɣ
ɫɨɞɟɪɠɚɬɫɹ ɜ ɪɟɝɢɫɬɪɟ idtr;
–
ɫɤɥɚɞɵɜɚɟɬ ɡɧɚɱɟɧɢɟ ɚɞɪɟɫɚ, ɩɨ ɤɨɬɨɪɨɦɭ ɪɚɡɦɟɳɟɧɚ IDT, ɢ ɡɧɚɱɟ-
ɧɢɟ n
x 8. ɉɨ ɷɬɨɦɭ ɫɦɟɳɟɧɢɸ ɜ ɬɚɛɥɢɰɟ IDT ɞɨɥɠɟɧ ɧɚɯɨɞɢɬɶɫɹ
8-ɛɚɣɬɨɜɵɣ ɞɟɫɤɪɢɩɬɨɪ, ɨɩɪɟɞɟɥɹɸɳɢɣ ɦɟɫɬɨɩɨɥɨɠɟɧɢɟ ɩɪɨɰɟɞɭɪɵ ɨɛɪɚɛɨɬɤɢ ɩɪɟɪɵɜɚɧɢɹ;
–
ɩɟɪɟɤɥɸɱɚɟɬɫɹ ɧɚ ɩɪɨɰɟɞɭɪɭ ɨɛɪɚɛɨɬɤɢ ɩɪɟɪɵɜɚɧɢɹ.
ɉɪɟɪɵɜɚɧɢɹ ɢ ɢɫɤɥɸɱɟɧɢɹ ɦɨɠɧɨ ɪɚɡɞɟɥɢɬɶ ɧɚ ɧɟɫɤɨɥɶɤɨ ɝɪɭɩɩ:
–
ɫɛɨɣ;
–
ɥɨɜɭɲɤɚ;
–
ɚɜɚɪɢɣɧɨɟ ɡɚɜɟɪɲɟɧɢɟ.
ɋɛɨɣ (ɨɲɢɛɤɚ) – ɩɪɟɪɵɜɚɧɢɟ ɢɥɢ ɢɫɤɥɸɱɟɧɢɟ, ɩɪɢ ɜɨɡɧɢɤɧɨɜɟɧɢɢ ɤɨɬɨɪɨɝɨ ɜ ɫɬɟɤ ɡɚɩɢɫɵɜɚɸɬɫɹ ɡɧɚɱɟɧɢɹ ɪɟɝɢɫɬɪɨɜ ɫs:iɪ, ɭɤɚɡɵɜɚɸɳɢɟ ɧɚ
ɤɨɦɚɧɞɭ, ɜɵɡɜɚɜɲɭɸ ɷɬɨ ɩɪɟɪɵɜɚɧɢɟ. ɗɬɨ ɩɨɡɜɨɥɹɟɬ, ɩɨɥɭɱɢɜ ɞɨɫɬɭɩ ɤ
ɫɟɝɦɟɧɬɭ ɤɨɞɚ, ɢɫɩɪɚɜɢɬɶ ɨɲɢɛɨɱɧɭɸ ɤɨɦɚɧɞɭ ɜ ɨɛɪɚɛɨɬɱɢɤɟ ɩɪɟɪɵɜɚɧɢɹ
ɢ, ɜɟɪɧɭɜ ɭɩɪɚɜɥɟɧɢɟ ɩɪɨɝɪɚɦɦɟ, ɮɚɤɬɢɱɟɫɤɢ ɨɫɭɳɟɫɬɜɢɬɶ ɟɟ ɪɟɫɬɚɪɬ.
Ʌɨɜɭɲɤɚ – ɩɪɟɪɵɜɚɧɢɟ ɢɥɢ ɢɫɤɥɸɱɟɧɢɟ, ɩɪɢ ɜɨɡɧɢɤɧɨɜɟɧɢɢ ɤɨɬɨɪɨɝɨ
ɜ ɫɬɟɤ ɡɚɩɢɫɵɜɚɸɬɫɹ ɡɧɚɱɟɧɢɹ ɪɟɝɢɫɬɪɨɜ ɫs:iɪ, ɭɤɚɡɵɜɚɸɳɢɟ ɧɚ ɤɨɦɚɧɞɭ,
ɫɥɟɞɭɸɳɭɸ ɡɚ ɤɨɦɚɧɞɨɣ, ɜɵɡɜɚɜɲɟɣ ɷɬɨ ɩɪɟɪɵɜɚɧɢɟ. Ʉɚɤ ɢ ɜ ɫɥɭɱɚɟ ɨɲɢɛɨɤ, ɜɨɡɦɨɠɟɧ ɪɟɫɬɚɪɬ ɩɪɨɝɪɚɦɦɵ. Ⱦɥɹ ɷɬɨɝɨ ɧɟɨɛɯɨɞɢɦɨ ɢɫɩɪɚɜɢɬɶ ɜ ɨɛɪɚɛɨɬɱɢɤɟ ɩɪɟɪɵɜɚɧɢɹ ɫɨɨɬɜɟɬɫɬɜɭɸɳɢɟ ɤɨɞ ɢɥɢ ɞɚɧɧɵɟ, ɩɨɫɥɭɠɢɜɲɢɟ
ɢɫɬɨɱɧɢɤɨɦ ɨɲɢɛɤɢ. ɉɨɫɥɟ ɷɬɨɝɨ ɩɟɪɟɞ ɜɨɡɜɪɚɬɨɦ ɭɩɪɚɜɥɟɧɢɹ ɧɟɨɛɯɨɞɢɦɨ ɫɤɨɪɪɟɤɬɢɪɨɜɚɬɶ ɡɧɚɱɟɧɢɟ iɪ
ɜ ɫɬɟɤɟ ɧɚ ɞɥɢɧɭ ɤɨɦɚɧɞɵ, ɜɵɡɜɚɜɲɟɣ
ɞɚɧɧɨɟ ɩɪɟɪɵɜɚɧɢɟ.
Ⱥɜɚɪɢɣɧɨɟ ɡɚɜɟɪɲɟɧɢɟ – ɩɪɟɪɵɜɚɧɢɟ, ɩɪɢ ɤɨɬɨɪɨɦ ɢɧɮɨɪɦɚɰɢɹ ɨ ɦɟɫɬɟ ɟɝɨ ɜɨɡɧɢɤɧɨɜɟɧɢɹ ɧɟɞɨɫɬɭɩɧɚ ɢɥɢ ɧɟɩɨɥɧɚ, ɢ ɩɨɷɬɨɦɭ ɪɟɫɬɚɪɬ ɩɪɚɤɬɢɱɟɫɤɢ ɧɟɜɨɡɦɨɠɟɧ, ɟɫɥɢ ɬɨɥɶɤɨ ɷɬɚ ɫɢɬɭɚɰɢɹ ɧɟ ɛɵɥɚ ɡɚɩɥɚɧɢɪɨɜɚɧɚ ɡɚɪɚɧɟɟ.
Ɇɢɤɪɨɩɪɨɰɟɫɫɨɪ ɨɞɧɨɡɧɚɱɧɨ ɨɩɪɟɞɟɥɹɟɬ, ɤɚɤɢɟ ɩɪɟɪɵɜɚɧɢɹ ɹɜɥɹɸɬɫɹ
ɫɛɨɹɦɢ, ɤɚɤɢɟ ɥɨɜɭɲɤɚɦɢ, ɚ ɤɚɤɢɟ ɚɜɚɪɢɣɧɵɦ ɡɚɜɟɪɲɟɧɢɟɦ,
ɩɨɬɨɦɭ ɱɬɨ
ɚɥɝɨɪɢɬɦɵ ɩɪɨɝɪɚɦɦ-ɨɛɪɚɛɨɬɱɢɤɨɜ ɫɭɳɟɫɬɜɟɧɧɨ ɪɚɡɥɢɱɚɸɬɫɹ.
ɒɥɸɡ – ɞɟɫɤɪɢɩɬɨɪ ɜ ɬɚɛɥɢɰɟ ɩɪɟɪɵɜɚɧɢɣ IDT ɩɪɟɞɧɚɡɧɚɱɟɧ ɞɥɹ ɭɤɚɡɚɧɢɹ ɬɨɱɤɢ ɜɯɨɞɚ ɜ ɩɪɨɝɪɚɦɦɭ ɨɛɪɚɛɨɬɤɢ ɩɪɟɪɵɜɚɧɢɹ. ȼ ɞɟɫɤɪɢɩɬɨɪɧɨɣ
ɬɚɛɥɢɰɟ ɩɪɟɪɵɜɚɧɢɣ IDT ɦɨɝɭɬ ɫɨɞɟɪɠɚɬɶɫɹ ɲɥɸɡɵ ɬɪɟɯ ɬɢɩɨɜ:
–
ɥɨɜɭɲɤɢ;
–
ɩɪɟɪɵɜɚɧɢɹ;
–
ɡɚɞɚɱɢ.
77

Ɏɢɡɢɱɟɫɤɢ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪ ɨɬɥɢɱɚɟɬ ɢɯ ɩɨ ɡɧɚɱɟɧɢɸ ɜ ɩɨɥɟ ɬɢɩɚ ɢ
ɫɨɞɟɪɠɢɦɨɦɭ ɨɫɬɚɥɶɧɵɯ ɩɨɥɟɣ.
Ⱦɥɹ ɬɨɝɨ ɱɬɨɛɵ ɫɞɟɥɚɬɶ ɜɨɡɦɨɠɧɵɦ ɨɛɪɚɛɨɬɤɭ ɩɪɟɪɵɜɚɧɢɣ ɜ ɡɚɳɢɳɟɧɧɨɦ ɪɟɠɢɦɟ, ɧɟɨɛɯɨɞɢɦɨ ɜɵɩɨɥɧɢɬɶ ɫɥɟɞɭɸɳɢɟ ɞɟɣɫɬɜɢɹ:
–
ɢɧɢɰɢɚɥɢɡɢɪɨɜɚɬɶ ɬɚɛɥɢɰɭ IDT;
–
ɫɨɫɬɚɜɢɬɶ ɩɪɨɰɟɞɭɪɵ ɨɛɪɚɛɨɬɱɢɤɨɜ ɩɪɟɪɵɜɚɧɢɣ;
–
ɡɚɩɪɟɬɢɬɶ ɚɩɩɚɪɚɬɧɵɟ ɩɪɟɪɵɜɚɧɢɹ;
–
ɩɟɪɟɩɪɨɝɪɚɦɦɢɪɨɜɚɬɶ ɤɨɧɬɪɨɥɥɟɪ ɩɪɟɪɵɜɚɧɢɣ i8259Ⱥ;
–
ɡɚɝɪɭɡɢɬɶ ɪɟɝɢɫɬɪ IDTR ɚɞɪɟɫɨɦ ɢ ɪɚɡɦɟɪɨɦ ɬɚɛɥɢɰɵ IDT;
–
ɩɟɪɟɣɬɢ ɜ ɡɚɳɢɳɟɧɧɵɣ ɪɟɠɢɦ;
–
ɪɚɡɪɟɲɢɬɶ ɨɛɪɚɛɨɬɤɭ ɩɪɟɪɵɜɚɧɢɣ.
17. Multimedia extensions-ɬɟɯɧɨɥɨɝɢɹ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɨɜ
Ɉɫɧɨɜɭ ɦɨɞɟɥɢ ɰɟɥɨɱɢɫɥɟɧɧɨɝɨ ɆɆɏ-ɪɚɫɲɢɪɟɧɢɹ ɫɨɫɬɚɜɥɹɸɬ ɞɜɟ
ɤɨɦɩɨɧɟɧɬɵ: ɩɪɨɝɪɚɦɦɧɚɹ ɢ ɚɩɩɚɪɚɬɧɚɹ. ɉɪɨɝɪɚɦɦɧɚɹ ɤɨɦɩɨɧɟɧɬɚ – ɫɢɫɬɟɦɚ ɤɨɦɚɧɞ ɆɆɏ-ɪɚɫɲɢɪɟɧɢɹ (ɩɹɬɶɞɟɫɹɬ ɫɟɦɶ ɤɨɦɚɧɞ) ɢ ɱɟɬɵɪɟ ɧɨɜɵɯ
ɬɢɩɚ ɞɚɧɧɵɯ.
ɆɆɏ-ɤɨɦɚɧɞɵ ɹɜɥɹɸɬɫɹ ɟɫɬɟɫɬɜɟɧɧɵɦ ɞɨɩɨɥɧɟɧɢɟɦ ɨɫɧɨɜɧɨɣ ɫɢɫɬɟɦɵ ɤɨɦɚɧɞ ɦɢɤɪɨɩɪɨɰɟɫɫɨɪɚ. Ɉɫɧɨɜɧɵɦ ɩɪɢɧɰɢɩɨɦ ɢɯ ɪɚɛɨɬɵ ɹɜɥɹɟɬɫɹ ɨɞɧɨɜɪɟɦɟɧɧɚɹ ɨɛɪɚɛɨɬɤɚ ɧɟɫɤɨɥɶɤɢɯ ɟɞɢɧɢɰ ɨɞɧɨɬɢɩɧɵɯ ɞɚɧɧɵɯ ɨɞɧɨɣ ɤɨɦɚɧɞɨɣ
– Single Instruɫtiɨn Multiɪle Dɚtɚ (SIMD).
Ⱥɩɩɚɪɚɬɧɚɹ ɤɨɦɩɨɧɟɧɬɚ – ɜɨɫɟɦɶ ɪɟɝɢɫɬɪɨɜ ɫɨɩɪɨɰɟɫɫɨɪɚ ɫɬɟɤɚ, ɢɦɟɸɳɢɯ ɪɚɡɦɟɪɧɨɫɬɶ ɜɨɫɟɦɶɞɟɫɹɬ ɛɢɬ ɢ ɢɝɪɚɸɳɢɯ ɪɨɥɶ ɆɆɏ-ɪɟɝɢɫɬɪɨɜ,
ɩɪɢ ɷɬɨɦ ɞɨɫɬɭɩɧɵɦɢ ɢɡ ɧɢɯ ɹɜɥɹɸɬɫɹ ɦɥɚɞɲɢɟ ɲɟɫɬɶɞɟɫɹɬ ɱɟɬɵɪɟ ɛɢɬɚ.
ɉɪɢ ɪɚɛɨɬɟ ɫɬɟɤɚ ɫɨɩɪɨɰɟɫɫɨɪɚ ɜ ɪɟɠɢɦɟ ɆɆɏ-ɪɚɫɲɢɪɟɧɢɹ ɨɧ ɪɚɫɫɦɚɬɪɢɜɚɟɬɫɹ ɧɟ ɤɚɤ ɫɬɟɤ, ɚ ɤɚɤ ɨɛɵɱɧɵɣ
ɪɟɝɢɫɬɪɨɜɵɣ ɦɚɫɫɢɜ ɫ ɩɪɨɢɡɜɨɥɶɧɵɦ
ɞɨɫɬɭɩɨɦ. Ɋɟɝɢɫɬɪɨɜɵɣ ɫɬɟɤ ɫɨɩɪɨɰɟɫɫɨɪɚ ɧɟ ɦɨɠɟɬ ɨɞɧɨɜɪɟɦɟɧɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶɫɹ ɩɨ ɫɜɨɟɦɭ ɩɪɹɦɨɦɭ ɧɚɡɧɚɱɟɧɢɸ ɢ ɤɚɤ ɆɆɏ-ɪɚɫɲɢɪɟɧɢɟ.
ȼɚɠɧɨɟ ɨɬɥɢɱɢɟ ɆɆɏ-ɤɨɦɚɧɞ ɨɬ ɨɛɵɱɧɵɯ ɤɨɦɚɧɞ ɩɪɨɰɟɫɫɨɪɚ ɡɚɤɥɸɱɚɟɬɫɹ ɜ ɬɨɦ, ɤɚɤ ɨɧɢ ɪɟɚɝɢɪɭɸɬ ɧɚ ɫɢɬɭɚɰɢɢ ɩɟɪɟɧɨɫɚ ɢ ɡɚɣɦɚ. ȼ ɫɥɭɱɚɟ ɜɵɯɨɞɚ ɡɧɚɱɟɧɢɹ ɪɟɡɭɥɶɬɚɬɚ ɡɚ ɩɪɟɞɟɥɵ ɨɩɟɪɚɧɞɚ ɜ
ɧɟɦ ɮɢɤɫɢɪɭɟɬɫɹ
ɦɚɤɫɢɦɚɥɶɧɨɟ ɢɥɢ ɦɢɧɢɦɚɥɶɧɨɟ ɡɧɚɱɟɧɢɟ. Ɍɚɤɨɣ ɩɪɢɧɰɢɩ ɮɨɪɦɢɪɨɜɚɧɢɹ
ɪɟɡɭɥɶɬɚɬɚ ɧɚɡɵɜɚɟɬɫɹ «ɚɪɢɮɦɟɬɢɤɨɣ ɫ ɧɚɫɵɳɟɧɢɟɦ».
ɇɟ ɜɫɟ ɬɪɚɧɫɥɹɬɨɪɵ ɚɫɫɟɦɛɥɟɪɚ ɩɨɞɞɟɪɠɢɜɚɸɬ ɆɆɏ-ɤɨɦɚɧɞɵ. ȼ
ɷɬɨɦ ɫɥɭɱɚɟ ɧɟɨɛɯɨɞɢɦɨ ɩɨɞɤɥɸɱɢɬɶ ɮɚɣɥ iɚmmx.inɫ. ȼɤɥɸɱɟɧɢɟɦ ɷɬɨɝɨ
ɮɚɣɥɚ ɞɢɪɟɤɬɢɜɨɣ inɫlude ɜ ɧɚɱɚɥɨ ɩɪɨɝɪɚɦɦɵ ɦɨɠɧɨ ɢɫɩɨɥɶɡɨɜɚɬɶ ɜɫɟ
ɆɆɏ-ɤɨɦɚɧɞɵ ɜ ɨɩɪɟɞɟɥɟɧɧɨɦ ɮɨɪɦɚɬɟ (ɬɚɛɥɢɰɚ 5).
MMX-ɤɨɦɚɧɞɵ ɢɫɩɨɥɧɹɸɬɫɹ
ɜ ɬɨɦ ɠɟ ɪɟɠɢɦɟ ɩɪɨɰɟɫɫɨɪɚ, ɱɬɨ ɢ ɤɨ-
ɦɚɧɞɵ ɫ ɩɥɚɜɚɸɳɟɣ ɡɚɩɹɬɨɣ. ɉɨɷɬɨɦɭ ɩɪɢ ɢɯ ɢɫɩɨɥɧɟɧɢɢ (ɤɪɨɦɟ EMMS)
«ɩɨɪɬɢɬɫɹ» ɫɥɨɜɨ ɫɨɫɬɨɹɧɢɹ ɪɟɝɢɫɬɪɨɜ ɫ ɩɥɚɜɚɸɳɟɣ ɡɚɩɹɬɨɣ. Ⱦɨɫɬɭɩɧɵ
78

ɫɥɟɞɭɸɳɢɟ MMX-ɤɨɦɚɧɞɵ (ɨɛɨɡɧɚɱɟɧɢɹ: mm – MMX – ɪɟɝɢɫɬɪ; m32,
m64 – ɩɚɦɹɬɶ ɨɛɴɟɦɚ ɬɪɢɞɰɚɬɶ ɞɜɚ ɢ ɲɟɫɬɶɞɟɫɹɬ ɱɟɬɵɪɟ ɛɢɬɚ, ɫɨɨɬɜɟɬ-
ɫɬɜɟɧɧɨ; imm – ɧɟɩɨɫɪɟɞɫɬɜɟɧɧɵɣ ɨɩɟɪɚɧɞ; ir32 – ɰɟɥɨɱɢɫɥɟɧɧɵɣ ɪɟɝɢɫɬɪ):
EMMS
Ɍɚɛɥɢɰɚ 5 – Ɋɚɡɦɟɪɧɨɫɬɶ ɬɢɩɨɜ ɆɆɏ-ɞɚɧɧɵɯ
Ɍɢɩɵ ɆɆɏ-ɞɚɧɧɵɯ Ⱦɢɚɩɚɡɨɧ ɝɪɚɧɢɱɧɵɯ ɡɧɚɱɟɧɢɣ
Ȼɚɣɬ ɛɟɡ ɡɧɚɤɚ 0…255
ɋɥɨɜɨ ɛɟɡ ɡɧɚɤɚ 0…65535
Ⱦɜɨɣɧɨɟ ɫɥɨɜɨ ɛɟɡ ɡɧɚɤɚ 0…4294967295
Ȼɚɣɬ ɫɨ ɡɧɚɤɨɦ –128…127
ɋɥɨɜɨ ɫɨ ɡɧɚɤɨɦ –32768…32767
Ⱦɜɨɣɧɨɟ ɫɥɨɜɨ ɫɨ ɡɧɚɤɨɦ –2147483648…2147483647
Ʉɨɦɚɧɞɚ ɨɛɟɫɩɟɱɢɜɚɟɬ ɩɟɪɟɯɨɞ ɩɪɨɰɟɫɫɨɪɚ ɨɬ ɢɫɩɨɥɧɟɧɢɹ MMX-
ɤɨɦɚɧɞ ɤ ɢɫɩɨɥɧɟɧɢɸ ɨɛɵɱɧɵɯ ɤɨɦɚɧɞ ɫ ɩɥɚɜɚɸɳɟɣ ɡɚɩɹɬɨɣ: ɨɧɚ ɭɫɬɚɧɚɜɥɢɜɚɟɬ ɡɧɚɱɟɧɢɟ 1 ɜɨ ɜɫɟɯ ɪɚɡɪɹɞɚɯ ɫɥɨɜɚ ɫɨɫɬɨɹɧɢɹ.
ɊȺDDB mm, mm/m64
ɊȺDDW mm, mm/m64
ɊȺDDD mm, mm/m64
Ʉɨɦɚɧɞɵ ɫɤɥɚɞɵɜɚɸɬ ɷɥɟɦɟɧɬɵ ɞɚɧɧɵɯ (ɛɚɣɬɵ, ɫɥɨɜɚ ɢɥɢ ɞɜɨɣɧɵɟ
ɫɥɨɜɚ) ɜɯɨɞɧɨɝɨ ɢ ɜɵɯɨɞɧɨɝɨ ɨɩɟɪɚɧɞɚ. ȿɫɥɢ ɫɭɦɦɚ ɷɥɟɦɟɧɬɨɜ ɞɚɧɧɵɯ
ɜɵɯɨɞɢɬ ɡɚ ɝɪɚɧɢɰɭ ɞɨɩɭɫɬɢɦɨɝɨ ɞɢɚɩɚɡɨɧɚ, ɬɨ ɩɨ
ɩɪɚɜɢɥɚɦ ɰɢɤɥɢɱɟɫɤɨɣ
ɚɪɢɮɦɟɬɢɤɢ ɢɡɛɵɬɨɤ ɨɬɫɱɢɬɵɜɚɟɬɫɹ ɨɬ ɞɪɭɝɨɣ ɝɪɚɧɢɰɵ ɞɢɚɩɚɡɨɧɚ. ɉɟɪɟɧɨɫɚ ɟɞɢɧɢɰɵ ɢɡ ɨɞɧɨɝɨ ɷɥɟɦɟɧɬɚ ɞɚɧɧɵɯ ɜ ɞɪɭɝɨɣ ɧɟ ɩɪɨɢɫɯɨɞɢɬ.
ɊȺDDSB mm, mm/m64
ɊȺDDSW mm, mm/m64
Ʉɨɦɚɧɞɵ ɫɤɥɚɞɵɜɚɸɬ ɷɥɟɦɟɧɬɵ ɞɚɧɧɵɯ (ɛɚɣɬɵ ɢɥɢ ɫɥɨɜɚ) ɜɯɨɞɧɨɝɨ ɢ
ɜɵɯɨɞɧɨɝɨ ɨɩɟɪɚɧɞɨɜ. ȿɫɥɢ ɫɭɦɦɚ ɜɵɯɨɞɢɬ ɡɚ ɝɪɚɧɢɱɧɨɟ ɡɧɚɱɟɧɢɟ ɞɨɩɭɫɬɢɦɨɝɨ ɞɢɚɩɚɡɨɧɚ, ɬɨ ɨɧɨ ɫɱɢɬɚɟɬɫɹ ɟɝɨ ɪɟɡɭɥɶɬɚɬɨɦ.
ɊȺDDUSB mm, mm/m64
ɊȺDDUSW mm, mm/m64
Ʉɨɦɚɧɞɵ
ɫɤɥɚɞɵɜɚɸɬ ɷɥɟɦɟɧɬɵ ɞɚɧɧɵɯ (ɛɚɣɬɵ ɢɥɢ ɫɥɨɜɚ) ɜɯɨɞɧɨɝɨ ɢ
ɜɵɯɨɞɧɨɝɨ ɨɩɟɪɚɧɞɨɜ. ȿɫɥɢ ɫɭɦɦɚ ɜɵɯɨɞɢɬ ɡɚ ɝɪɚɧɢɱɧɨɟ ɡɧɚɱɟɧɢɟ ɞɨɩɭɫɬɢɦɨɝɨ ɞɢɚɩɚɡɨɧɚ, ɬɨ ɨɧɨ ɫɱɢɬɚɟɬɫɹ ɟɝɨ ɪɟɡɭɥɶɬɚɬɨɦ.
79

ɊSUBB mm, mm/m64
ɊSUBW mm, mm/m64
ɊSUBD mm, mm/m64
Ʉɨɦɚɧɞɵ ɜɵɱɢɬɚɸɬ ɷɥɟɦɟɧɬɵ ɞɚɧɧɵɯ (ɛɚɣɬɵ, ɫɥɨɜɚ ɢɥɢ ɞɜɨɣɧɵɟ ɫɥɨɜɚ)
ɜɯɨɞɧɨɝɨ ɨɩɟɪɚɧɞɚ ɢɡ ɷɥɟɦɟɧɬɨɜ ɞɚɧɧɵɯ ɜɵɯɨɞɧɨɝɨ ɨɩɟɪɚɧɞɚ. ȿɫɥɢ ɪɟɡɭɥɶɬɚɬ ɜɵɯɨɞɢɬ ɡɚ ɝɪɚɧɢɰɭ ɞɨɩɭɫɬɢɦɨɝɨ ɞɢɚɩɚɡɨɧɚ, ɬɨ ɩɨ ɩɪɚɜɢɥɚɦ ɰɢɤɥɢɱɟɫɤɨɣ ɚɪɢɮɦɟɬɢɤɢ ɫɨɨɬɜɟɬɫɬɜɭɸɳɟɟ ɱɢɫɥɨ ɟɞɢɧɢɰ ɨɬɫɱɢɬɵɜɚɟɬɫɹ ɨɬ
ɞɪɭɝɨɣ ɝɪɚɧɢɰɵ ɞɢɚɩɚɡɨɧɚ. ɉɟɪɟɧɨɫɚ ɟɞɢɧɢɰɵ ɢɡ ɨɞɧɨɝɨ ɷɥɟɦɟɧɬɚ ɞɚɧɧɵɯ
ɜ ɞɪɭɝɨɣ ɧɟ ɩɪɨɢɫɯɨɞɢɬ
.
ɊSUBSB mm, mm/m64
ɊSUBSW mm, mm/m64
Ʉɨɦɚɧɞɵ ɜɵɱɢɬɚɸɬ ɷɥɟɦɟɧɬɵ ɞɚɧɧɵɯ (ɛɚɣɬɵ ɢɥɢ ɫɥɨɜɚ) ɜɯɨɞɧɨɝɨ
ɨɩɟɪɚɧɞɚ ɢɡ ɷɥɟɦɟɧɬɨɜ ɞɚɧɧɵɯ ɜɵɯɨɞɧɨɝɨ ɨɩɟɪɚɧɞɚ. ȿɫɥɢ ɪɚɡɧɨɫɬɶ ɜɵɯɨɞɢɬ ɡɚ ɝɪɚɧɢɱɧɨɟ ɡɧɚɱɟɧɢɟ ɞɨɩɭɫɬɢɦɨɝɨ ɞɢɚɩɚɡɨɧɚ, ɬɨ ɨɧɨ ɫɱɢɬɚɟɬɫɹ ɟɝɨ
ɪɟɡɭɥɶɬɚɬɨɦ.
ɊSUBUSB mm, mm/m64
ɊSUBUSW mm, mm/m64
Ʉɨɦɚɧɞɵ ɜɵɱɢɬɚɸɬ ɷɥɟɦɟɧɬɵ ɞɚɧɧɵɯ ɜɯɨɞɧɨɝɨ ɨɩɟɪɚɧɞɚ ɢɡ ɷɥɟɦɟɧɬɨɜ ɞɚɧɧɵɯ ɜɵɯɨɞɧɨɝɨ ɨɩɟɪɚɧɞɚ. ȿɫɥɢ ɪɚɡɧɨɫɬɶ ɜɵɯɨɞɢɬ ɡɚ ɝɪɚɧɢɱɧɨɟ
ɡɧɚɱɟɧɢɟ
ɞɨɩɭɫɬɢɦɨɝɨ ɞɢɚɩɚɡɨɧɚ, ɬɨ ɨɧɨ ɫɱɢɬɚɟɬɫɹ ɟɝɨ ɪɟɡɭɥɶɬɚɬɨɦ.
ɊSLLW mm, mm/m64/imm
ɊSLLD mm, mm/m64/imm
ɊSLLQ mm, mm/m64/imm
Ʉɨɦɚɧɞɵ ɜɵɩɨɥɧɹɸɬ ɫɞɜɢɝ ɷɥɟɦɟɧɬɨɜ ɞɚɧɧɵɯ (16-, 32- ɢɥɢ 64-ɪɚɡɪɹɞɧɵɯ
ɫɥɨɜ) ɜ ɜɵɯɨɞɧɨɦ ɨɩɟɪɚɧɞɟ ɧɚ ɱɢɫɥɨ ɛɢɬ, ɡɚɞɚɜɚɟɦɨɟ ɜɯɨɞɧɵɦ ɨɩɟɪɚɧɞɨɦ.
Ɉɫɜɨɛɨɞɢɜɲɢɟɫɹ ɦɥɚɞɲɢɟ ɪɚɡɪɹɞɵ ɡɚɩɨɥɧɹɸɬɫɹ ɧɭɥɹɦɢ.
ɊSRȺW mm, mm/m64/imm
ɊSRȺD mm, mm/m64/imm
Ʉɨɦɚɧɞɵ ɜɵɩɨɥɧɹɸɬ ɫɞɜɢɝ ɷɥɟɦɟɧɬɨɜ ɞɚɧɧɵɯ (16-, 32- ɢɥɢ 64-ɪɚɡɪɹɞɧɵɯ
ɫɥɨɜ) ɜ ɜɵɯɨɞɧɨɦ ɨɩɟɪɚɧɞɟ ɧɚ ɱɢɫɥɨ ɛɢɬ, ɡɚɞɚɜɚɟɦɨɟ ɜɯɨɞɧɵɦ ɨɩɟɪɚɧɞɨɦ.
ȿɫɥɢ ɫɞɜɢɝɚɟɬɫɹ ɩɨɥɨɠɢɬɟɥɶɧɨɟ ɱɢɫɥɨ, ɬɨ ɨɫɜɨɛɨɞɢɜɲɢɟɫɹ ɫɬɚɪɲɢɟ ɪɚɡɪɹɞɵ ɡɚɩɨɥɧɹɸɬɫɹ ɧɭɥɹɦɢ, ɚ ɟɫɥɢ ɨɬɪɢɰɚɬɟɥɶɧɨɟ, ɬɨ ɟɞɢɧɢɰɚɦɢ.
ɊSRLW mm, mm/m64/imm
ɊSRLD mm, mm/m64/imm
ɊSRLQ mm, mm/m64/imm
Ʉɨɦɚɧɞɵ ɜɵɩɨɥɧɹɸɬ ɫɞɜɢɝ ɷɥɟɦɟɧɬɨɜ ɞɚɧɧɵɯ (16-, 32- ɢɥɢ 64-ɪɚɡɪɹɞɧɵɯ
ɫɥɨɜ) ɜ ɜɵɯɨɞɧɨɦ ɨɩɟɪɚɧɞɟ ɧɚ ɱɢɫɥɨ ɛɢɬ, ɡɚɞɚɜɚɟɦɨɟ ɜɯɨɞɧɵɦ ɨɩɟɪɚɧɞɨɦ.
Ɉɫɜɨɛɨɞɢɜɲɢɟɫɹ ɫɬɚɪɲɢɟ ɪɚɡɪɹɞɵ ɡɚɩɨɥɧɹɸɬɫɹ ɧɭɥɹɦɢ.
ɊȺND mm, mm/m64
Ʉɨɦɚɧɞɚ ɜɵɱɢɫɥɹɟɬ ɩɨɪɚɡɪɹɞɧɨɟ ɥɨɝɢɱɟɫɤɨɟ «ɂ» ɫɜɨɢɯ ɨɩɟɪɚɧɞɨɜ.
80
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
