Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Программир на ассемблере.doc
Скачиваний:
17
Добавлен:
17.09.2019
Размер:
606 Кб
Скачать
☆

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 wmod reg r/m

2) MOV reg, data

MOV mem, data

1100011 wmod 000 r/mdatadata, если w=1

3) MOV reg, data

1011 w regdatadata, если w=1

4) MOV ac, mem

ac=AL ac=AX(если w=1)

1010000 waddr - lowaddr - high

5) MOV mem, ac

1010001 waddr - lowaddr - high

6) MOV sreg, reg

MOV sreg, mem

10001110mod 0 sreg r/m

7) MOV reg, sreg

MOV mem, sreg

10001100mod 0 sreg r/m