196.66K
Категория: ПрограммированиеПрограммирование

Форматы команд процессора. (Лекция 19.2)

1.

Формат команд прямых внутрисегментных переходов
JMP m1
; прямой безусловный переход
CALL m1 ; прямой вызов процедуры
JNZ m1
; условный прямой переход
LOOP m1 ; команда цикла
сop
disp-l
cop
disp-h
Знаковая величина disp в машинном коде - это разность между
внутрисегментным адресом перехода и текущим значением IP
(адресом следующей команды).
1

2.

Специфические форматы.
Частные случаи команды MOV
Пересылка непосредственного операнда в регистр
MOV reg, data
cop w reg
data-l
; reg data
data-h
Пример команды: mov bx, 4
Длина непосредственного операнда в машинном коде должна быть
равна разрядности операции - w
2

3.

Пересылка между регистром АХ или AL и памятью (прямой адрес)
MOV AX /AL, прямой адрес
MOV прямой адрес, AX/AL
cop dw
Пример:
disp-l
mov ax, ds:obl
; AX/AL ds: disp
; ds:disp AX/AL
disp-h
; ax ds:obl
3

4.

Команда XCHG reg, АХ
XCHG reg, AX
Пример:
; reg AX
cop
reg
xchg bx, ax
4

5.

Команды обращения к портам: IN, OUT
а) прямо заданный номер порта
IN AX/AL, port
; AX/AL ← порт
OUT port, AX/AL
; порт ← AX/AL
cop
w
port
б) косвенно заданный номер порта в регистре DX
IN
AX/AL, DX
; AX/AL [DX]
OUT DX, AX/AL
; [DX] AX/AL
сop
w
5

6.

Команды PUSH/POP с сегментным регистром
Пример: push ds
сop sr cop
6

7.

Особенности формата команд сдвига
В байте СОР бит С задает количество бит сдвига:
C=0 – сдвиг на 1 разряд
C=1 – сдвиг на CL разрядов
cop
cw
Во втором байте команды поле вторичного Сор кодирует тип команды
сдвига
7
6
5
4
3
mod cop
2
1
0
r/ m
7

8.

Межсегментный прямой переход
JMP far ptr cs: disp
cop
disp-l
disp-h
; IP disp
; CS seg
seg-l
seg-h
disp - прямой внутрисегментный адрес команды в другом кодовом
сегменте
seg - новое значение для указателя кодового сегмента CS. Поле
остается пустым до загрузки машинного кода в память.
8

9.

Возврат из процедуры RET с увеличением SP
RET data
cop
Пример:
data-l
; IP ← SS:SP
; SP SP + data
data-h
RET 8
9

10.

Программное прерывание: INT n
cop
Пример:
n
int 21h
10

11.

Формат строковых команд
cop
w
префикс сop
w
с префиксом
повторения
11
English     Русский Правила