БЕЛОРУССКИЙ НАЦИОНАЛЬНЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И РОБОТОТЕХНИКИ
КАФЕДРА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ И АВТОМАТИЗИРОВАННЫХ СИСТЕМ
Отчет
По лабораторной работе № 3
Адресация данных в Assemblerе. Организация памяти.
По дисциплине
«Языки программирования (Assembler)»
Исполнители: | Студенты группы 107212, | |
Преподаватель: | А. А. Несенчук |
Минск, 2013
Цель работы
Изучение режимов адресации операндов языка Assembler и организации памяти.
Краткие теоретические сведения
Режимы адресации операндов:
1. Регистровая адресация
2. Непосредственная адресация
3. Прямая адресация
4. Косвенная регистровая адресация
5. Адресация по базе
6. Прямая адресация с индексированием
7. Адресация по базе с индексированием
Регистровая адресация – способ адресации, когда операнд извлекается из регистра или загружается в регистр.
Непосредственная адресация – это адресация когда, в качестве операнда источника указывается 8 или 16 битовое значение операнда.
Прямая адресация – это когда исполнительный адрес является составной частью программы. В качестве операнда обычно используется идентификатор.
Косвенная регистровая регистрация – это когда в качестве операнда источника или операнда приемника используется его исполнительный адрес, который содержится в одном из регистров, которые могут использоваться для адресации.
Адресация по базе - это вид адресации при которой исполнительный адрес вычисляется путем сложения содержимого регистра BX и BP и некоторого сдвига.
Прямая адресация с индексированием – это вид адресации, когда исполнительный адрес вычисляется как сумма значений и содержимого индексного регистра.
Адресация по базе с индексированием – это вид адресации, при котором исполнительный адрес вычисляется как сумма содержимого базового и индексного регистров.
Задания по лабораторной работе
Задание 1
Написать программу сложение двух чисел А1 и А2, расположенных в ОП относительно начала сегмента данных, соответственно по адресам А1- 30h и A2- 20h. Результат сложения этих чисел поместить в память начиная с адреса 10h относительно начала сегмента данных ds. Числа имеют 32 двоичных разряда.
А1=12345678h
A2=9ABCDEF0h
Основные этапы выполнения задания:
1. Занести числа А1 и А2 по соответствующим заданным адресам, используя косвенную регистровую адресацию операндов.
2. Извлечь младшие байты чисел в регистры РОН
3. Выполнить сложение чисел
4. Поместить сумму чисел по указанному адресу
5. Осуществить трансляцию и компиляцию программы, выполнить пошаговую отладку программы в отладчике TD, проконтролировать выполнение программы по состоянию дампа памяти и регистра на каждом шаге выполнения. Особое внимание обратить на регистр флагов и влаг переноса CF.