- •Министерство образования российской федерации ижевский государственный технический университет
- •1. Методика выполнения лабораторных работ
- •2. Основные сведения об ассемблере
- •2.1. Регистры процессора
- •2.2. Команды ассемблера
- •2.3. Прерывания ассемблера
- •4. Режимы адресации команд
- •5. Байт способа адресации
- •7. Система команд
- •7.1. Команды пересылки
- •7.1.1. Общие команды пересылки данных
- •6. Режимы адресации переходов
- •7.1.1.2. Xchg - перестановка
- •7.1.1.3. Xlat - перекодировка
- •7.1.1.7. Команда lahf - загрузка флагов в регистр ан
- •7.1.1.8. Sahf - установка флагов из регистра ан
- •7.1.2. Команды пересылки данных с использованием стека (стековые команды)
- •7.1.3. Команды ввода - вывода
- •1.4. Команды пересылки цепочек байт или слов (цепочечные команды)
- •7.1.4.1. Movs - пересылка строки байтов или слов
- •7.1.4.2. Movsb/movsw - пересылка строки байтов или слов
- •7.1.4.3. Lods - загрузка строки байтов или слов
- •7.1.4.8. Cmpsb/cmpsw - сравнение строки байтов или слов
- •7.1.4.9. Scas - сканирование строки байтов или слов
- •7.1.4.10. Scasb/scasw - сканирование строки байтов или слов
- •7.2. Арифметические команды
- •7.2.1. Команды сложения
- •7.2.2. Команды вычитания
- •7.2.3. Команды сравнения
- •7.2.4. Команды умножения
- •7.2.4.2. Imul - умножение знаковых величин
- •7.2.5. Команды деления
- •7.2.5.2. Idiv - деление знаковых величин
- •7.3. Логические команды
- •7.4. Команды сдвигов
- •7.5. Команды переходов (передачи управления)
- •7.5.1. Команды безусловных переходов
- •7.5.2. Команды условных переходов
- •7.5.3. Команды вызовов (подпрограммы)
- •7.5.4. Команды возвратов (из подпрограмм)
- •7.5.5. Команды управления циклами
- •7.5.6. Команды прерываний
- •7.6. Команды управления микропроцессором
- •8. Примеры выполнения лабораторных работ
- •9. Учебно-методическая литература
- •Описание команд отладчика debug
- •Команды процессора 8086
- •1. Команды пересылки данных
- •1.1. Общие команды пересылки данных
- •Xlat Перекодировка
- •Xchg Перестановка
- •1.2. Стековые команды
- •1.3. Команды ввода-вывода
- •In Ввод байта или слова из порта
- •1.4. Команды пересылки цепочек
- •2. Арифметические команды
- •2.1. Команды сложения
- •Inc Инкремент
- •2.2. Команды вычитания
- •2.3. Команды сравнения
- •2.4. Команды умножения
- •Imul Целое умножение знаковых величин
- •2.5. Команды деления
- •Idiv Целое деление знаковых величин
- •3. Логические команды
- •Xor Исключающее или
- •4. Команды сдвигов
- •5. Команды передачи управления
- •5.1. Команды вызова процедуры
- •5.2. Команды прерываний
- •Int Прерывание
- •Into Прерывание по переполнению
- •Iret Возврат из обработки прерывания
- •5.3. Команды условных переходов
- •5.4. Команды безусловных переходов
- •5.5. Команды управления циклами
- •6. Команды управления процессором
6. Режимы адресации переходов
1. Внутрисегментный прямой режим адресации переходов - эффективный адрес перехода равен сумме 8- или 16-битного смещения и текущего содержимого IP. Когда смещение имеет длину 8 бит, этот режим называется коротким переходом. Внутрисегментную прямую адресацию в большинстве книг называют относительной адресацией, т.к. смещение вычисляется “относительно” IP. Этот режим допустим в условных и безусловных переходах, но в команде условного перехода может быть смещение длиной 8 бит.
2. Внутрисегментный косвенный режим адресации переходов - эффективный адрес перехода есть содержимое регистра или ячейки памяти, которые указываются в любом режиме (кроме непосредственного) адресации данных. Содержимое IP заменяется эффективным адресом перехода. Данный режим допустим только в командах безусловного перехода.
3. Межсегментный прямой режим адресации переходов - заменяет содержимое IP одной частью команды, а содержимое CS - другой частью команды. Назначение данного режима адресации - обеспечить переход из одного сегмента кода в другой.
4. Межсегментный косвенный режим адресации переходов - заменяет содержимое IP и CS содержимым двух смежных слов из памяти, которые определяются в любом режиме адресации данных кроме непосредственного и регистрового. Отметим, что физический адрес перехода равен сумме нового содержимого IP и содержимого CS, умноженного на 16. Межсегментный переход может быть только безусловным.
7. Система команд
Систему команд МП 8086 образуют 113 базовых команд, многие из которых допускают использование разнообразных режимов адресации.
Можно провести классификацию команд по функциональному назначению:
1. Команды пересылки
2. Арифметические команды
3. Логические команды
4. Команды сдвигов
5. Команды переходов
6. Команды управления состоянием ЭВМ
Рассмотрим более подробно каждую группу команд.
7.1. Команды пересылки
Команды пересылки предназначены для пересылки данных между регистрами, а также между регистрами и памятью. Пересылка из ячейки памяти в ячейку памяти недопустима. Команды пересылки можно разделить на четыре подгруппы:
1.1. Общие команды пересылки данных
1.2. Команды пересылки данных с использованием стека (стековые команды)
1.3. Команды ввода - вывода
1.4. Команды пересылки цепочек байт или слов (цепочечные команды)
Отличительной особенностью команд пересылки данных является то, что они не модифицируют состояния флагов.
7.1.1. Общие команды пересылки данных
Данная подгруппа команд включает в себя команды, осуществляющие пересылки регистр - регистр, регистр - память и память - регистр. Наиболее распространенной среди них является команда MOV (передать, переслать).
7.1.1.1. MOV- пересылка данных
Команда MOV имеет следующее обобщенное представление
MOV dst, src
src (source - источник) показывает, откуда пересылается операнд (байт или слово);
dst (destination - адресат, место назначения) показывает, куда пересылается операнд.
Существует семь форматов команды MOV
1) MOV reg_1, reg_2
MOV reg, mem
MOV mem, reg
100010 d wmod reg r/m
2) MOV reg, data
MOV mem, data
1100011 wmod 000 r/mdatadata, если w=1
3) MOV reg, data
1011 w regdatadata, если w=1
4) MOV ac, mem
ac=AL ac=AX(если w=1)
1010000 waddr - lowaddr - high
5) MOV mem, ac
1010001 waddr - lowaddr - high
6) MOV sreg, reg
MOV sreg, mem
10001110mod 0 sreg r/m
7) MOV reg, sreg
MOV mem, sreg
10001100mod 0 sreg r/m
