Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лр№6 Команды пересылки.doc
Скачиваний:
19
Добавлен:
01.03.2025
Размер:
109.06 Кб
Скачать

Xchg al,sema ; Обмен байтами память - регистр

Xchg al,bl ; Обмен байтами регистр - регистр

Xchg ax,cx ; Обмен словами регистр - аккумулятор

Отметим следующее:

в команде XCHG нельзя указывать сегментные регистры,

команда XCHG AX, AX используется как команда пустой операции NOP.

Команда XLAT. Однобайтная команда преобразования XLAT с кодом операции D7 заменяет содержимое аккумулятора AL на байт из 256-байтной таблицы, начальный адрес которой находится в регистре BX. Другими словами, содержимое AL используется как индекс таблицы, адресуемой регистром BX. Алгоритм выполнения команды XLAT состоит из двух шагов:

  1. прибавить содержимое регистра AL к содержимому регистра BX;

  2. использовать результат как смещение в сегменте данных (относительно DS) и поместить адресуемый байт из памяти в регистр AL.

Команда XLAT обычно применяется для быстрого преобразования символов из одного символьного кода в другой. Время ее выполнения составляет 11 тактов синхронизации.

Пример :(AL)=47 XLAT (AL)=E1

(BX)=1200

(DS)=F000

([F1247])=E1

Изучить выполнение команды MOV dst, src с косвенной адресацией, имеющей форматы MOV mem/reg1, MOV mem/reg2; MOV mem/reg, data:

MOV AX, [DI]

MOV [SI], BL

INT3

Перейти в поле 2, нажав клавишу F7. Ввести команды D 100, A и выше указанную программу. Выйти из режима ассемблирования, нажав одновременно две клавиши ctrl+enter. В соответствующих регистрах и ячейках памяти записать указанные числа. Выполнить программу в пошаговом режиме, многократно нажимая клавишу F2. Изучить выполнение команды MOV dst, src с базовой адресацией, имеющей форматы MOV mem/reg1, mem/reg2; MOV mem/reg, data:

MOV AX, [BP+10]

MOV [BX], DL

INT3

Перейти в поле 2, нажав клавишу F7. Ввести команды D 100, A и выше указанную программу. Выйти из режима ассемблирования, нажав одновременно две клавиши ctrl+enter. В соответствующих регистрах и ячейках памяти записать указанные числа. Выполнить программу в пошаговом режиме, многократно нажимая клавишу F2.

4.6. Изучить выполнение команды MOV dst, src с индексной адресацией, имеющей форматы MOV mem/reg1, mem/reg2; MOV mem/reg, data:

MOV [SI+5], AX

MOV DX, [DI+10]

MOV [SI], 34

INT3

Перейти в поле 2, нажав клавишу F7. Ввести команды D 100, A и выше указанную программу. Выйти из режима ассемблирования, нажав одновременно две клавиши ctrl+enter. В соответствующих регистрах и ячейках памяти записать указанные числа. Выполнить программу в пошаговом режиме, многократно нажимая клавишу F2.

4.7. Изучить выполнение команды MOV dst, src с базовой индексной адресацией, имеющей форматы MOV mem/reg1, mem/reg2; MOV mem/reg, data:

MOV AX, [BP+SI]

MOV [BX+DI], CX

MOV [BX+SI+4], 34

INT3

Перейти в поле 2, нажав клавишу F7. Ввести команды D 100, A и выше указанную программу. Выйти из режима ассемблирования, нажав одновременно две клавиши ctrl+enter. В соответствующих регистрах и ячейках памяти записать указанные числа. Выполнить программу в пошаговом режиме, многократно нажимая клавишу F2.

Домашнее задание

Составить фрагмент программы в соответствии с вариантом домашнего задания и оформить его в виде таблицы 1.

Содержание отчета:

  1. Название работы.

  2. Цель работы.

  3. Фрагмент программы в таблице 1.

  4. Таблица 2 с результатами работы.

  5. Фрагмент программы домашнего задания, оформленный в виде таблицы 1 с результатами каждого шага, записанными в графе «комментарии».

  6. Вывод о проделанной работе.

Контрольные вопросы:

  1. Назначение команды MOV.

  2. Назначение команды XLAT, LEA.

  3. Назначение команды XCHG.

  4. Назначение команд SAHF, LAHF.

  5. Чем отличаются команды ADD и ADC?

  6. Где находится второй множитель в командах умножения?

  7. В каких регистрах находится результат после умножения?

  8. В каких регистрах находится результат после деления?

Литература

  1. Майко Г.В. «Ассемблер для IBM PC»: - М.: «Бизнес-Информ», «Сирин», 1999г. – 212с.

  2. Юров В., Хорошенко С. «Аssembler»: учебный курс – СПб: Питер Ком, 1999г. – 672 с.