
- •Дагестанкий государтвенный технический университет
- •Махачкала 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слав Михайлович Исмаилов Шейх-Магомед Абдулаевич Лагиева Марият Тагировна
Вариант 10.
Написать программу, в которой в сегменте данных резервируются:
Четыре слов со значениями: 1245Н, FАС1Н, 12С1Н, 45С6Н.
Три байта со значениями: 27Н, 80Н, АВН.
Цепочка символов “крланюои”.
Три байта без инициализации и один со значением ‘$’.
Программа выполняет следующие действия:
Инициализирует сегмент регистр DS.
Складывает третье и четвертое слова последовательности (1). Из младшего байт результата вычитает второй байт последовательности (2), полученное значение записывает во второй байт последовательности (4), старший байт результата уменьшенный на 53Н заносится в первый байт последовательности (4).
Первый байт последовательности (2) складывает с младшим байтом полученного в п.2. результата и вычитает третий байт последовательности (2), результат записывает в третий байт последовательности (4).
В регистр SI заносится значение адреса последовательности (2), в регистр ВХ – значение адреса (3), затем осуществляется обмен содержимым этих регистров.
Используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (3) перекодировать, в качестве таблицы перекодировки взять последовательность символов (2).
Перекодированную последовательность вывести на экран, а результат наблюдать в отладчике в альтернативном окне. Вывод на экран строки символов см. приложении.
Вариант 11.
Написать программу, в которой в сегменте данных резервируются:
Четыре слов со значениями: 245FН, 7С1Н, 128СН, 445СН.
Три байта со значениями: 2СН, 90Н, 61Н.
Цепочка символов “крланюои”.
Три байта без инициализации и один со значением ‘$’.
Программа выполняет следующие действия:
Инициализирует сегмент регистр DS.
Из второго слова последовательности (1) вычитает четвертое слово этой последовательности. Из младшего байта результата вычитает третий байт последовательности (2), полученное значение записывает в третий байт последовательности (4), старший байт результата уменьшенный на 30Н заносится во второй байт последовательности (4).
Первый байт последовательности (2) складывает с младшим байтом полученного в п.2. результата и вычитает второй байт последовательности (2), результат записывает в первый байт последовательности (4).
В регистр SI заносится значение адреса последовательности (2), в регистр ВХ – значение адреса (3), затем осуществляется обмен содержимым этих регистров.
Используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (3) перекодировать, в качестве таблицы перекодировки взять последовательность символов (2).
Перекодированную последовательность вывести на экран, а результат наблюдать в отладчике в альтернативном окне. Вывод на экран строки символов см. приложении.
Вариант 12.
Написать программу, в которой в сегменте данных резервируются:
пять слов со значениями: 245FН, 7АС1Н, 128СН, 445СН, 2233Н.
Три байта со значениями: 2СН, 10Н, 61F4Н.
Цепочка символов “крланюои”.
Три байта без инициализации и один со значением ‘$’.
Программа выполняет следующие действия:
Инициализирует сегмент регистр DS.
Из пятого слова последовательности (1), вычитает третье слово этой последовательности. К младшему байту результата добавляет значение 61Н, полученное значение записывает в третий байт последовательности (4), из второго байта последовательности (2) вычитает старший байт результата и заносит полученное значение во второй байт последовательности (4).
Дважды декрементированное значение третьего байта последовательности (4) (или содержимое AL)заносит в первый байт последовательности (4).
Используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (3) перекодировать, в качестве таблицы перекодировки взять последовательность символов (2).
Используя адрес, хранящийся в SI (косвенную адресацию), три байта последовательности (4) перекодировать, используя таблицу последовательность символов (3).
Перекодированную последовательность вывести на экран, а результат наблюдать в отладчике в альтернативном окне. Вывод на экран строки символов см. приложении.