Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Прогр_на_ассембл_для_WINLOWS.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
908 Кб
Скачать
☆

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

Машинная команда представляет собой закодированное по определенным правилам указание процессору на выполнение определённых действий. В своих программах мы будем использовать основные команды процессора 80386, так как они входят в состав систем команд последующих моделей процессоров. В ассемблере используются мнемокоды команд, то есть коды операций и операнды представлены с помощью символов алфавита языка, причем собственно коды операций являются ключевыми словами. Для лучшего использования и освоения системы команд ее принято делить на группы по функциональному назначению. Ниже приводится базовая система команд микропроцессора 80386 без команд арифметического сопроцессора и расширений [4].

Приняты следующие условные обозначения операндов: src – источник данных, dest – приемник данных, r – регистр, m – память, port – порт ввода-выода

Команды пересылки данных

MOV dest,src

Пересылка данных в регистр из регистра, памяти или непосредственного операнда. Пересылка данных в память из регистра или непосредственного операнда

XCHG r/m,r

Обмен данными между регистрами или регистром и памятью

MOVSX r,r/m

Пересылка байта или слова с его расширением до слова или двойного слова с дублированием знакового бита

MOVZX r,r/m

Пересылка байта или слова с его расширением до слова или двойного слова с дублированием нулевого бита

XLAT

Загрузить в AL байт из таблицы в сегменте данных , на начало которой указывает содержимое EBX(BX), при этом начальное значение AL является смещением

LEA r,m

Загрузка исполнительного адреса. Относительный адрес второго операнда загружается в регистр. Команда LEA r,mem эквивалентна команде MOV r,offset mem

LDS r,m

Загрузка указателя. Считывает из памяти двойное слово, содержащее полный адрес некоторой ячейки и загружает младшую часть указателя в указанный регистр, старшую – в регистр DS. Допускается использование 32-разрядного регистра и 32-разрядного смещения

LES r,m

Аналогично предыдущей, но с регистром ES

LGS r,m

Аналогично предыдущей, но с регистром GS

LSS r,m

Аналогично предыдущей, но с регистром SS

SETcc r/m

Установка байта по условию «сс», аналогичному условиям в командах условной передачи управления при выполнении условия в 1, в противном случае в 0

LAHF

Копирует содержимое младшего байта регистра флагов (SF, ZF, AF, PF, CF ) в регистр AH

SAHF

Копирует содержимое регистра AH в младший байт регистра флагов

Команды ввода/вывода

IN AL(AX,EAX),port

Ввод в аккумулятор из порта ввода/вывода. Порт адресуется непосредственно

IN AL(AX,EAX),DX

Ввод в аккумулятор из порта ввода/вывода. Порт адресуется косвенно через регистр DX

INS

INSB

INSW

INSD

Вводит данные из порта, адресуемого регистром DX в ячейку ES:[EDI/DI]. После ввода байта, слова или двойного слова производится коррекция EDI/DI на 1, 2, 4 соответственно. При наличии префикса повторения процесс продолжается, пока содержимое ECX/CX не станет равным 0

OUT port,AL(AX,EAX)

Вывод из аккумулятора в порт ввода/вывода. Порт адресуется непосредственно

OUT DX,AL(AX,EAX)

Вывод из аккумулятора в порт ввода/вывода. Порт адресуется косвенно через регистр DX

OUTS

OUTSB

OUTSW

OUTSD

Выводит данные из ячейки памяти, адресуемой регистрами DS:[ESI/SI] в порт, адресуемый DX. После вывода производится коррекция ESI/SI. При наличии префикса повторения процесс повторяется пока ECX/CX не 0