- •1. Регистры общего назначения:
- •Добавление элемента в стек
- •9. Вычитание двоичных чисел без знака
- •10.Вычитание двоичных числе со знаком
- •11. Умножение двоичных чисел без знака
- •12. Деление двоичных чисел без знака
- •13.Умножение двоичных чисел со знаком
- •Пример программы
- •Безусловные переходы
- •19.Команда сравнения, усл переход для ком-ды сравнения.
- •20.Команды условного перехода по состоянию флагов
- •21.Организация циклов
- •Команда loop
- •Cmp eax, ebx; {сравниваем eax с ebx} je @IfNot; {если равны, то переходим на иначе} используются команды сравнения
- •Епочечные команды
- •Ins адрес_приемника,номер_порта insb insw insd
Епочечные команды
Эти команды также называют командами обработки строк символов. Названия почти синонимичны. Отличие в том, что под строкой символов здесь понимается последовательность байт, а цепочка — это более общее название для случаев, когда элементы последовательности имеют размер больше байта — слово или двойное слово. Таким образом, цепочечные команды позволяют проводить действия над блоками памяти, представляющими собой последовательности элементов следующего размера:
8 бит — байт;
16 бит — слово;
32 бита — двойное слово.
Содержимое этих блоков для микропроцессора не имеет никакого значения. Это могут быть символы, числа и все что угодно. Главное, чтобы размерность элементов совпадала с одной из перечисленных и эти элементы находились в соседних ячейках памяти.
Всего в системе команд микропроцессора имеется семь операций-примитивов обработки цепочек. Каждая из них реализуется в микропроцессоре тремя командами, в свою очередь, каждая из этих команд работает с соответствующим размером элемента — байтом, словом или двойным словом. Особенность всех цепочечных команд в том, что они, кроме обработки текущего элемента цепочки, осуществляют еще и автоматическое продвижение к следующему элементу данной цепочки.
Перечислим операции-примитивы и команды, с помощью которых они реализуются, а затем подробно их рассмотрим:
пересылка цепочки:
movs адрес_приемника,адрес_источника movsb movsw movsd
сравнение цепочек:
cmps адрес_приемника,адрес_источника cmpsb cmpsw cmpsd
сканирование цепочки:
scas адрес_приемника scasb scasw scasd
загрузка элемента из цепочки:
lods адрес_источника lodsb lodsw lodsd
сохранение элемента в цепочке:
stos адрес_приемника stosb stosw stosd
получение элементов цепочки из порта ввода-вывода:
Ins адрес_приемника,номер_порта insb insw insd
вывод элементов цепочки в порт ввода-вывода:
outs номер_порта,адрес_источника outsb outsw outsd
