Система команд Intel. Условные переходы

Содержание

Слайд 2

Система команд Команда копирования данных MOV Команда сложения ADD

Система команд

Команда копирования данных MOV

Команда сложения ADD

Слайд 3

Система команд Регистр флагов Intel

Система команд

Регистр флагов Intel

Слайд 4

Система команд Пример: mov ax,-10 mov bx,-11 add ax,bx 1111111111110110 +

Система команд

Пример:
mov ax,-10
mov bx,-11
add ax,bx

1111111111110110
+
1111111111110101
= 1111111111101011

CF=1 Флаг переноса
ZF=0

Флаг нуля
SF=1 Флаг знака
OF=0 Флаг переполнения
PF=1 Флаг четности
Слайд 5

Система команд Пример: mov ax,-10 mov bx,11 add ax,bx 1111111111110110 +

Система команд

Пример:
mov ax,-10
mov bx,11
add ax,bx

1111111111110110
+
0000000000001011
= 0000000000000001

CF=1 Флаг переноса
ZF=0

Флаг нуля
SF=0 Флаг знака
OF=0 Флаг переполнения
PF=0 Флаг четности
Слайд 6

Система команд Пример: mov al,127 mov bl,1 add al,bl 01111111 +

Система команд

Пример:
mov al,127
mov bl,1
add al,bl

01111111
+
00000001
= 10000000

CF=0 Флаг переноса
ZF=0

Флаг нуля
SF=1 Флаг знака
OF=1 Флаг переполнения
PF=0 Флаг четности
Слайд 7

Система команд Пример: mov al,255 mov bl,1 add al,bl 11111111 +

Система команд

Пример:
mov al,255
mov bl,1
add al,bl

11111111
+
00000001
= 00000000

CF=1 Флаг переноса
ZF=1

Флаг нуля
SF=0 Флаг знака
OF=0 Флаг переполнения
PF=1 Флаг четности
Слайд 8

Система команд Команды для работы с шиной IN – читать данные

Система команд

Команды для работы с шиной

IN – читать данные с шины
OUT

– отправить данные на шину

Порт

Приемник данных

Источник данных

Слайд 9

Система команд mov dx,8 out dx,00000101b Отправить «00000101» на 8 порт

Система команд

mov dx,8
out dx,00000101b

Отправить «00000101» на 8 порт

mov dx,9
in eax,dx

Получить из

9 порта, записать в EAX
Слайд 10

Система команд Команды перехода mov ax,bx jmp label3 mov dx,cx add

Система команд

Команды перехода

mov ax,bx
jmp label3
mov dx,cx
add ax,dx
label3: mov cx,ax

Команда безусловного перехода

Команды

будут пропущены

Адрес перехода

Слайд 11

Система команд Команды условного перехода mov ax,a cmp ax,b gle label1

Система команд

Команды условного перехода

mov ax,a
cmp ax,b
gle label1

label1:

if (a>b)
{

}

Условный оператор в языке

высокого уровня транслятор заменяет на по крайней мере 2 команды процессора:
Команда сравнения
Команда условного перехода

Процессор Intel не умеет работать с двумя операндами в памяти, поэтому один из них копируем в регистр

Сравниваем

Если a<=b переходим на адрес label1

Слайд 12

Система команд Команда cmp Алгоритм работы команды cmp: Вычесть из 1-го

Система команд

Команда cmp

Алгоритм работы команды cmp:
Вычесть из 1-го операнда 2-й
Соответствующим образом

изменить регистр флагов
Результат вычитания нигде не сохраняется
Слайд 13

Система команд Команды условного перехода Сравнить A=00000011 B=00000001 00000011 - 00000001

Система команд

Команды условного перехода

Сравнить
A=00000011
B=00000001

00000011
-
00000001
=00000010

CF=0
ZF=0
A>B

Сравнить
A=00000011
B=00000011

00000011
-
00000011
=00000000

CF=0
ZF=1
A=B

Сравнить
A=00000001
B=00000011

00000001

-
00000011
=11111110

CF=1
ZF=0
A

Занимаем
у старшего
разряда

Слайд 14

Система команд Команды условного перехода

Система команд

Команды условного перехода

Слайд 15

Система команд Команды условного перехода

Система команд

Команды условного перехода