Перечислите команды преобразования типов. Приведите синтаксис каждой команды. Приведите примеры использования команд преобразования типов при выполнении арифметических операций.
Команды преобразования типов: CBW, CWD, CWDE, CDQ.
CBW — команда преобразования байта (в регистре AL) в слово (в регистре АХ) путем распространения значения старшего бита AL на все биты регистра АН;
CWD — команда преобразования слова (в регистре АХ) в двойное слово (в регистрах DX:AX) путем распространения значения старшего бита ах на все биты регистра DX;
CWDE — команда преобразования слова (в регистре АХ) в двойное слово (в регистре ЕАХ) путем распространения значения старшего бита АХ на все биты старшей половины регистра ЕАХ;
CDQ — команда преобразования двойного слова (в регистре ЕАХ) в учетверенное слово (в регистрах EDX:EAX) путем распространения значения старшего бита ЕАХ на все биты регистра EDX;
Пример:
xor ax,ax
mov al,a_
cbw
Приведите функциональную классификацию машинных команд. Перечислите команды пересылки данных. Опишите синтаксис каждой команды и принцип ее работы. Приведите примеры использования команд пересылки.
Общего назначения: mov, xchg.
Синтаксис:
mov <операнд назначения>,<операнд-источник>
xchg <операнд1>,<операнд2>
mov - это основная команда пересылки данных. Она реализует самые разнообразные варианты пересылки. Алгоритм работы: копирование второго операнда в первый операнд.
xchg - обмен двух значений между регистрами или между регистрами и памятью. Алгоритм работы: обмен содержимого операнд_1 и операнд_2.
|
|
Команды работы со стеком: push, pop.
Синтаксис:
push источник
pop назначение
pop - запись значения из вершины стека по месту, указанному операндом назначение.
push- запись значения источник в вершину стека.
Команды преобразования данных: xlat
xlat- подмена байта в регистре al байтом из последовательности (таблицы) байтов в памяти. Вычисляется адрес, равный ds:bx+(al), выполняется замена байта в регистре al байтом из памяти по вычисленному адресу.
Пример:
mov ah,1h
push ds pop esxchg ax,bx
Перечислите команды переноса элемента из аккумулятора в цепочку. Опишите синтаксис каждой команды и принцип ее работы. Приведите примеры использования команд переноса элемента из аккумулятора в цепочку.
stos --Эта команда позволяет произвести действие, обратное команде lods, т.е. сохранить значение из регистра-аккумулятора в элементе цепочки. Эту операцию удобно использовать вместе с операциями поиска (сканирования) и загрузки с тем, чтобы, найдя нужный элемент, извлечь его в регистр и записать на его место новое значение. Команды, поддерживающие эту операцию, могут работать с элементами размером 8, 16 или 32 бита. Микропроцессор предоставляет четыре команды сохранения элемента цепочки из регистра-аккумулятора, работающие с элементами разного размера:
|
|
сохранить элемент из регистра-аккумулятора al /ax /eax в цепочке:
Stos адрес_приемника
сохранить байт из регистра-аккумулятора al в цепочке:
Stosb адрес_приемника
сохранить слово из регистра-аккумулятора ax в цепочке:
Stosw адрес_приемника
сохранить двойное слово из регистра-аккумулятора еax в цепочке:
Stosw адрес_приемника
Команда пересылает элемент из аккумулятора в элемент цепочки по адресу, соответствующему содержимому пары регистров es : edi / di . При этом содержимое edi / di подвергается инкременту или декременту (что зависит от состояния флага df ) на значение, равное размеру элемента цепочки.
35. Дайте определение понятия «стек». Перечислите команды работы со стеком. Опишите синтаксис каждой команды и принцип ее работы. Приведите примеры использования команд работы со стеком.
Стек - форма организации памяти.
Команды работы со стеком Push, Pop.
Синтаксис:
pop приемник
Выгружает из стека 2байта(4байта) и помещает их в приёмник.
push источник
Погружает в стек 2байта(4байта) из источника
пример:
push ax
pop bx
36. Перечислите команды сравнения цепочек. Опишите синтаксис каждой команды и принцип ее работы. Опишите результат использования префиксов повторения. Приведите примеры использования команд сравнения цепочек.
|
|
1)CMPS адрес_приемника,адрес_источника — сравнить строки (CoMPare String);
2)CMPSB — сравнить строку байтов (CoMPare String Byte);
3)CMPSW — сравнить строку слов (CoMPare String Word);
4)CMPSD — сравнить строку двойных слов (CoMPare String Double word).
Синтаксис команды CMPS:cmps адрес_приемника,адрес_источника
Здесь:адрес_источникаопределяет цепочку-источник в сегменте данных, адрес цепочки должен быть заранее загружен в пару ds:esi/si; адрес_приемникаопределяет цепочку-приемник, которая должна находиться в дополнительном сегменте, а ее адрес должен быть заранее загружен в пару регистров es:edi/diАлгоритм работы команды cmps заключается в последовательном выполнении вычитания (элемент цепочки-источника - элемент цепочки-получателя) над очередными элементами обеих цепочек.
Дата добавления: 2018-05-09; просмотров: 383; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!