Основные непривилегированные команды процессора презентация

1. Пересылка данных MOV приемник, источник - Пересылка данных Базовая команда пересылки данных. Копирует содержимое источника в приемник, источник не изменяется. Пример. mov ax, bx PUSH источник - Поместить данные

Слайд 1ОСНОВНЫЕ НЕПРИВИЛЕГИРОВАННЫЕ КОМАНДЫ ПРОЦЕССОРА
Микропроцессоры и микропроцессорные системы


Слайд 21. Пересылка данных
MOV приемник, источник - Пересылка данных
Базовая команда пересылки данных. Копирует

содержимое источника в приемник, источник не изменяется.
Пример. mov ax, bx

PUSH источник - Поместить данные в стек
Помещает содержимое источника в стек. Источником может быть регистр, сегментный регистр, непосредственный операнд или переменная. Уменьшает ESP на размер источника (2 или 4). Команда PUSH почти всегда используется в паре с РОР (считать данные из стека). Поэтому, чтобы скопировать содержимое одного сегментного регистра в другой (что нельзя выполнить одной командой МОV), можно использовать такую последовательность команд:
push cs
рор ds ; теперь DS указывает на тот же сегмент, что и CS


Основные непривилегированные команды


Слайд 3
POP приемник - Считать данные из стека

Помещает в приемник слово или

двойное слово, находящееся в вершине стека, увеличивая ESP на 2 или 4 соответственно. POP выполняет действие обратное PUSH. Приемником может быть регистр общего назначения, сегментный регистр, кроме CS.

IN приемник, источник - Считать данные из порта
Копирует число из порта ввода-вывода, номер которого указан в источнике, в приемник. Приемником может быть только AL, АХ или ЕАХ. Источник - или непосредственный операнд, или DХ, причем во время использования непосредственного операнда можно указывать лишь номера портов не больше 255.

OUT приемник, источник - Записать данные в порт
Копирует число из источника (AL, АХ или ЕАХ) в порт ввода-вывода, номер , которого указан в приемнике. Приемник может быть либо непосредственным номером порта (не больше 255), либо регистром DX. На командах IN и OUT строится все общение процессора с устройствами ввода-вывода - клавиатурой, жесткими дисками, различными контроллерами, и используются они, в первую очередь, в драйверах устройств. Например, чтобы включить динамик PC, достаточно выполнить команды:
in a1, 61h
or а1, 3
out 61h, al






Слайд 4 ADD приемник, ИСТОЧНИК - Сложение
Команда выполняет арифметическое сложение приемника и

источника, помещает сумму в приемник, не изменяя содержимое источника. Приемник может быть регистром или переменной, источник - числом, регистром или переменной, но нельзя использовать переменную одновременно и для источника, и для приемника. Команда ADD никак не различает числа со знаком и без знака, но, употребляя значения флагов СF (перенос при сложении чисел без знака), ОF (перенос при сложении чисел со знаком) и SF (знак результата), разрешается применять ее и для тех, и для других.

SUB приемник, источник - Вычитание
Вычитает источник из приемника и помещает разность в приемник. Приемник может быть регистром или переменной, источник - числом, регистром или переменной, но нельзя использовать переменную одновременно и для источника, и для приемника. Точно так же, как и команда ADD, SUB не делает различий между числами со знаком и без знака, но флаги позволяют Использовать ее и для тех, и для других.




2. Команды двоичной арифметики


Слайд 5MUL источник - Умножение чисел без знака
Выполняет

умножение содержимого источника (регистр или переменная) и регистра AL, АХ, ЕАХ (в зависимости от размера источника) и помещает результат в АХ, DX:AX, EDX:EAX соответственно. Если старшая половина результата (АН, DX, EDX) содержит только нули (результат целиком поместился в младшую половину), флаги CF и OF устанавливаются в 0, иначе - в 1. Значение остальных флагов (SF, ZF, АF и PF) не определено.

DIV источник - Целочисленное деление без знака
Выполняет целочисленное деление без знака AL, АХ или ЕАХ (в зависимости от размера источника) на источник (регистр или переменная) и помещает результат в AL, АХ или ЕАХ, а остаток - в АН, DX или EDX соответственно. Результат всегда округляется в сторону нуля, абсолютное значение остатка меньше абсолютного значения делителя. Флаги СF, OF, SF, ZF, AF и PF после этой команды не определены, а переполнение или деление на ноль вызывает исключение #DE (ошибка при делении) в защищенном режиме и прерывание 0 - в реальном.







Слайд 6INC приемник - Инкремент
Увеличивает приемник

(регистр или переменная) на 1. Единственное отличие этой команды от ADD приемник,1 состоит в том, что флаг СF не затрагивается. Остальные арифметические флаги (OF, SF, ZF, AF, PF) устанавливаются в соответствии с результатом сложения.
DEC приемник - Декремент
Уменьшает приемник (регистр или переменная) на 1. Единственное отличие этой команды от SUB приемник,1 заключается в том, что флаг CF не затрагивается. Остальные арифметические флаги (OF, SF, ZF, АР, PF) устанавливаются в соответствии с результатом вычитания.
CMP приемник, источник - Сравнение
Сравнивает приемник и источник и устанавливает флаги, Действие осушествляется путем вычитания источника (число, регистр или переменная) из приёмника (регистр или переменная; приемник и источник не могут быть переменными одновременно), причем результат вычитания никуда не записывается. Единственным следствием работы этой команды оказывается изменение флагов CF, OF, SF, ZF, AF и РF. Обычно команду СМР используют вместе с командами условного перехода (Jсс) и другими, которые позволяют применить результат сравнения, не обращая внимания на детальное значение каждого флажка.



Слайд 7AND приемник, источник

- Логическое И
Команда выполняет побитовое «логическое И» над приемником (регистр или переменная) и источником (число, регистр или переменная: источник и приемник не могут быть переменными одновременно) и помещает результат в приемник. Любой бит результата равен 1, только если соответствующие биты обоих операндов были равны 1, и равен 0 в остальных случаях. Наиболее часто AND применяют для выборочного обнуления отдельных битов. Например, команда
аnd al, 00001111b
06нулит старшие четыре бита регистра AL, сохранив неизменными четыре младших. Флаги OF и CF обнуляются, SF, ZF и PF устанавливаются в соответствии с результатом, AF не определен.
OR приемник, источник - Логическое ИЛИ
Выполняет побитовое «логическое ИЛИ» над приемником (регистр или переменная) и источником (число, регистр или переменная; источник и приемник не могут быть переменными одновременно) и помещает результат в приемник. Любой бит результата равен 0, только если соответствующие биты обоих операндов были равны 0, и равен 1 в остальных случаях. Команду OR чаще всего используют для выборочной установки отдельных битов. Например, команда
or al, 00001111b
приведет к тому, что младшие четыре бита регистра AL будут установлены в 1.
При выполнении команды OR флаги OF и CF обнуляются, SF, ZF и PF устанавливаются в соответствии с результатом, AF не определен.




3. Логические операции


Слайд 8 ХОR приемник, источник -

Логическое исключающее ИЛИ
Выполняет побитовое «логическое исключающее ИЛИ» над приемником (регистр или переменная) и источником (число, регистр или переменная: источник и приемник не могут быть переменными одновременно) и помещает результат в приемник. Любой бит результата равен 1, если соответствующие биты операндов различны, и нулю - в противном случае. XОR используется для самых разных операций, например:
хоr ах, ах ; Обнуление регистра АХ.
или
хоr ах, Ьх
хоr bx, ах
хоr ах, Ьх ; Меняет местами содержимое АХ и. ВХ.
Оба примера могут выполняться быстрее, чем команда :
mov ах, 0
NОТ приемник - Инверсия
Каждый бит приемника (регистр или переменная), равный нулю, устанавливается в 1, и каждый бит, равный 1, сбрасывается в 0. Флаги не затрагиваются.
TEST приемник, источник - Логическое сравнение
Вычисляет результат действия побитового «логического И» над приемником (регистр или переменная) и источником и устанавливает флаги SF, ZF и PF в соответствии с полученным показателем, не сохраняя результата . TEST, так же как и СМР, используется в основном в сочетании с командами условного перехода (Jсс).

Слайд 94. Команды передачи управления
JMP операнд

- Безусловный переход
JMP передает управление в другую точку программы, не сохраняя какой-либо информации для возврата. Операндом может быть непосредственный адрес для перехода (В программах используют имя метки, установленной перед командой, на которую выполняется переход), а также регистр или переменная, содержащая адрес. В зависимости от типа перехода различают:
переход типа shоrt (короткий переход) - если адрес перехода находится в пределах -128 ... +127 байт от команды JМР;
переход типа near (ближний переход) - если адрес перехода находится в том же сегменте памяти, что и команда JМР;
о переход типа far (дальний переход) - если адрес перехода находится в другом сегменте. Дальний переход может выполняться и в тот же самый сегмент при условии, что в сегментной части операнда указа но число, совпадающее с текущим значением CS;
При выполнении переходов типа short и пеаг команда JMР фактически преобразовывает значение регистра EIP (или IP), изменяя тем самым смещение следующей исполняемой команды относительно начала сегмента кода.





Слайд 10Jcc метка - Условный переход
Пример.
cmp ax,

0
je local_1 ; переход, если ax=0
jmp far_tabel
local_1:

far_table:

Это набор команд, выполняющих переход (типа short или nеаг), если удовлетворяется соответствующее условие, которым в каждом случае реально является состояние тех или иных флагов. Но, когда команда из набора Jсс используется сразу после СМР, условия приобретают формулировки, соответствующие отношениям между операндами СМР . Например, если операнды СМР были равны, то команда JE, выполненная сразу после СМР, осуществит переход. Операнд для всех команд из набора Jсс - 8-битное или 32-битное смещение относительно текущей команды.


Слайд 11LOOP метка

- Цикл
Уменьшает регистр СХ (ECX) на 1 и выполняет переход типа short на метку (которая не может быть дальше расстояния -128 ... +127 байт от команды LOOP), если CX (ЕСХ) не равен нулю. Эта команда используется для организации циклов, в которых регистр СХ (EСХ) играет роль счетчика. Так, в следующем фрагменте команда ADD выполнится 10 раз:
mov сx, 0Ah
loop_start:
add аx, cх
lоор loop_start
Команда LOOP полностью эквивалентна паре команд
dec cх
jnz метка ; если не 0
Но LOOP короче этих двух команд на один байт и не изменяет значения флагов.



Слайд 12LOOPE метка - Цикл, пока равно

(ZF=1)
LOOPZ метка - Цикл, пока ноль (ZF=1)
LOOPNE метка - Цикл, пока не равно (ZF=0)
LOOPNZ метка - Цикл, пока не ноль (ZF=0)
Пример.
mov cx, str_length
move_loop:
lodsb ; чтение байта из строки
stosb ;запись байта в строку
cmр al, 13
loopnz move_loop

CALL операнд - Вызов процедуры
Сохраняет текущий адрес в стеке и передает управление по адресу, указанному в операнде. Операндом может быть непосредственное значение адреса (метка в ассемблерных программах), регистр или переменная, содержащие адрес перехода. Если в качестве адреса перехода указано только смещение, считается, что адрес расположен в том же сегменте, что и команда CALL.



Слайд 13 REТ число - Возврат из процедуры
RЕТN число
RЕТF число
REТN считывает из стека

слово (или двойное слово, в зависимости от режима адресации) и загружает его в IP (или EIP), выполняя тем самым действия, обратные ближнему вызову процедуры командой CALL. Команда RETF загружает из стека IP (EIP) и CS, возвращаясь из дальней процедуры. Если в программе указана команда RET, ассемблер заменит ее на REТN или RETF в зависимости от того, как была описана процедура, которую эта команда завершает.


INT число - Вызов прерывания
INT аналогично команде CALL помещает в стек содержимое регистров FLAGS, CS и IP, после чего передает управление программе, называемой обработчиком прерываний с указанным в качестве операнда номером (число от 0 до 0FFh). Например, следующий фрагмент кода завершает выполнение программы и возвращает управление DOS:
mov ax, 4C01h
int 21h


IREТ - Возврат из обработчика прерывания
IREТD




Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика