Похожие презентации:
Форматы команд процессора. (Лекция 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 с увеличением SPRET data
cop
Пример:
data-l
; IP ← SS:SP
; SP SP + data
data-h
RET 8
9
10.
Программное прерывание: INT ncop
Пример:
n
int 21h
10
11.
Формат строковых командcop
w
префикс сop
w
с префиксом
повторения
11