- •Дагестанкий государтвенный технический университет
- •Махачкала 1997 г.
- •Лабораторная работа №1
- •1.1.Создание выполнимого файла, работа в отладчике, изучение оператора пересылки mov.
- •1.2. Оператор mov.
- •1.3. Основные команды отладчика afd.
- •1.4. Индивидуальные задания.
- •2.1. Сегментация памяти, директивы ассемблера
- •2.2. Прямая адресация
- •2.3. Косвенная адресация
- •2.4. Директива assume
- •2.5. Индивидуальные задания
- •Лабораторная работа №3
- •3.1. Директивы equ, label, команды сложения и вычитания
- •3.1.1. Директивы equ
- •3.1.2. Директива label
- •3.2. Команды сложения и вычитания
- •3.3. Индивидуальные задания Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 7.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Вариант 11.
- •Вариант 12.
- •3.4. Примечание
- •Лабораторная работа №4
- •4.1. Изучение операторов обмена xchg и xlat
- •. Индивидуальные задания Вариант 1.
- •Вариант 2.
- •Вариант 3.
- •Вариант 4.
- •Вариант 5.
- •Вариант 6.
- •Вариант 7.
- •Вариант 8.
- •Вариант 9.
- •Вариант 10.
- •Вариант 11.
- •Вариант 12.
- •4.3. Приложение
- •Литература
- •Оглавление
- •Хачумов Вячbслав Михайлович Исмаилов Шейх-Магомед Абдулаевич Лагиева Марият Тагировна
. Индивидуальные задания Вариант 1.
Написать программу, в которой в сегменте данных резервируются:
Пять слов со значениями: 2516Н, 630Н, 1841Н, 3345Н, 123Н.
Цепочка символов “кмпотхд”.
Три байта без инициализации и один со значением ‘$’.
Программа выполняет следующие действия:
Инициализирует сегмент регистр DS.
Из первого слова последовательности (1) вычитает третье слово этой
последовательности, а результат складывает со вторым словом.
Младший байт полученного результата записывается в первый байт последовательности (3), от старшего байта результата вычитается значение 10н, полученное значение заносится во второй байт последовательности (3). В третий байт этой последовательности заносится инкрементированное значение младшего байта результата, полученного в п.2.
В регистр SI заносится значение адреса последовательности (2), в регистр ВХ – значение адреса (3), затем осуществляется обмен содержимым этих регистров.
Используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (3) перекодировать, в качестве таблицы перекодировки взять последовательность символов (2).
Перекодированную последовательность вывести на экран, а результат наблюдать в отладчике в альтернативном окне. Вывод на экран строки символов см. приложении.
Вариант 2.
Написать программу, в которой в сегменте данных резервируются:
Пять слов со значениями: 2499Н, 2106Н, 333Н, 1821Н, 3СВ6Н.
Цепочка символов “кмпотхд”.
Три байта без инициализации и один со значением ‘$’.
В программе необходимо предусмотреть выполнение следующих действий:
Инициализирует сегмент регистр DS.
К первому слову последовательности, а из результата вычесть пятое слово.
Младший байт полученного результата записывается в третий байт последовательности (3), старший байт результата инкрементировать и результата занести в первый байт последовательности (3). Во второй байт этой последовательности заносится декремент значения младшего байта, полученного в п.2.
В регистр DI заносится значение адреса последовательности (2), в регистр BX – значение адреса (3), затем осуществляется обмен содержимым этих регистров.
Используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (3) перекодировать, в качестве таблицы перекодировки взять последовательность символов (2).
Перекодированную последовательность вывести на экран, а результат наблюдать в отладчике в альтернативном окне. Вывод на экран строки символов см. в приложении.
Вариант 3.
Написать программу, в которой в сегменте данных резервируются:
Пять слов со значениями: 1389Н, 2145Н, 326Н, 2821Н, 2265Н.
Цепочка символов “кмпотхд”.
Три байта без инициализации и один со значением ‘$’.
В программе необходимо предусмотреть выполнение следующих действий:
Инициализирует сегмент регистр DS.
К второму слову последовательности (1) прибавить третье слово этой последовательности, а из результата вычесть пятое слово.
Младший байт полученного результата записывается в третий байт последовательности (3), из старшего байта результата вычитается значение 2 и результат заносится в первый байт последовательности (3). Во второй байт этой последовательности заносится уменьшенное на 3 значение младшего байта результата, полученного в п.2.
В регистр DI заносится значение адреса последовательности (2), в регистр BX – значение адреса (3), затем осуществляется обмен содержимым этих регистров.
Используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (3) перекодировать, в качестве таблицы перекодировки взять последовательность символов (2).
Перекодированную последовательность вывести на экран, а результат наблюдать в отладчике в альтернативном окне. Вывод на экран строки символов см. в приложении.
