Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 44.Ассемблер.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
56 Кб
Скачать
☆
  1. Основные команды ассемблера

По назначению можно выделить команды (в скобках приводятся примеры мне­монических кодов операций команд ассемблера ПК типа IBMPC):

□ выполнения арифметических операций (ADD и ADC— сложения и сложения с переносом, SUB и SBB— вычитания и вычитания с заемом, MUL и IMUL— умножения без знака и со знаком, DIV и IDIV— деления без знака и со знаком, СМР — сравнения и т. д.);

□ выполнения логических операций (OR,AND,NOT,XOR,TEST и т. д.);

Основные команды ассемблера:

  • пересылки данных (MOV— переслать, XCHG— обменять, IN— ввести в микро­процессор, OUT— вывести из микропроцессора и т. д.);

  • передачи управления (ветвления программы: JMP— безусловного перехода, CALL— вызова процедуры, RET— возврата из процедуры, J* — условного пе­рехода, LOOP— управления циклом и т. д.);

  • обработки строк символов (MOVS— пересылки, CMPS — сравнения, LODS—загрузки, SCAS— сканирования. Эти команды обычно используются с пре­фиксом (модификатором повторения)REP;

  • прерывания работы программы (INT— программные прерывания, INTO— услов­ного прерывания при переполнении, IRET— возврата из прерывания);

  • управления микропроцессором (ST* и CL* — установки и сброса флагов, HLT—останова, WAIT— ожидания, NOP— холостого хода и т. д.).

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

□ MOVdst,src— пересылка данных (move— переслать из srcвdst).

Пересылает1: один байт (если src и dst имеют формат байта) или одно слово (если src и dst имеют формат слова) между регистрами или между регистром и памятью, а также заносит непосредственное значение в регистр или в па­мять.

Операнды dst и src должны иметь одинаковый формат — байт или слово.

Src могут иметь тип: г (register) — регистр, m(memory) — память, і (impedance) — непосредственное значение. Dst могут быть типа г, т. Нельзя в одной команде использовать операнды: rsegm совместно с І; два операнда типа m и два опе­ранда типа rsegm). Операнд і может быть и простым выражением:

movАХ, 15б*10Н

movАХ, (152 + 101В) / 15

и т. п.

Вычисление выражения выполняется только при трансляции. Флаги не ме­няет.

  • PUSHsrc— занесение слова в стек (push— протолкнуть; записать в стек изsrc). Помещает в вершину стека содержимо еsrc— любого 16-битового реги­стра (в том числе и сегментного) или двух ячеек памяти, содержащих 16-би­товое слово. Флаги не меняются;

  • POPdst— извлечение слова из стека (pop— вытолкнуть; считать из стека в dst). Снимает слово с вершины стека и помещает его вdst— любой 16-бито­вый регистр (в том числе и сегментный) или в две ячейки памяти. Флаги не меняются.

В командах PUSH и POP операнды dst и src могут быть только типов гит.

В книге для отображения операндов команд приняты обычное обозначение орг и семан­тические обозначения src (source— источник) и dst (destination— приемник).

2.2 Арифметические команды

Операнды могут быть двоичные (8 или 16 бит, целые, со знаком или без знака), двоично-десятичные (от 1 до 255 байт, без знака, в упакованном или распакован­ном (ASCII-коды) форматах). Машина не обращает внимания на формат и обра­щается с ними формально, как с двоичными числами в дополнительном коде. Но для десятичной арифметики после операции требуется коррекция (операции только над одним байтом).