![](/user_photo/2706_HbeT2.jpg)
- •Методичесике указания к выполнению лабораторных работ по дисциплине
- •График проведения
- •Лабораторная работа № 1
- •Общие сведения
- •Задание
- •Содержание отчета
- •Что нужно знать для защиты отчета
- •Рекомендуемая литература
- •Лабораторная работа № 2
- •Общие сведения
- •Задание
- •Содержание отчета
- •Задание
- •Содержание отчета
- •Задание
- •Содержание отчета
- •Что нужно знать для защиты отчета
- •Рекомендуемая литература
- •Лабораторная работа № 5
- •Общие сведения
- •Задание
- •Варианты заданий
- •Содержание отчета
- •Задание
- •Варианты заданий
- •Содержание отчета
- •Что нужно знать для защиты отчета
- •Рекомендуемая литература
- •Лабораторная работа № 7
- •Общие сведения
- •Варианты заданий
- •Содержание отчета
- •Что нужно знать для защиты отчета
- •Рекомендуемая литература
Задание
Ознакомиться с текстом программы, приведенным ниже. Набрать исходный текст программы, продолжив его, как указано в комментарии, демонстрацией видов адресации, которых нет в предложенном фрагменте программы. Выполнить ассемблирование и линкование исходного текста программы. Загрузить .exe файл Вашей программы в td.exe.
Выполнить программу по шагам. После каждой команды анализировать состояние операндов команд, то есть искать ожидаемый результат выполнения команды на регистрах и (или) в ячейке памяти, которые используются в, выполненной на данном шаге, команде. При таком анализе необходимо будет точно определять адреса смещений к ячейкам памяти от начала сегмента данных, для поиска искомых значений в окне дампа.
; Исходный текст программы
Data SEGMENT
Val DB ?,37h,0FCh,14,'ASSEMBLER'
Val1 DW 0ABCDh,65535,?
Addr DW Val1
Val2 DD 0ECDF7AD7h
FullAddr DD Start
Data ENDS
Code SEGMENT
ASSUME DS:Data,CS:Code,SS:Stack1,ES:Data
Start : mov AX,Data
mov DS,AX
;способы адресации
; Прямая
mov AL,Val+1
; Непосредственная
mov BH,55h
; Прямая
mov Val,BH
; Косвенная базовая
mov BX,offset Val1
mov CX,[BX]
mov BP,80h
mov DX,[BP]
; Косвенная индексная
mov SI,offset Val
mov AL,[SI]
mov AH,2[SI]
mov BX,0h
mov CX,CS:[BX]
; Продолжите эту программу демонстрацией различных способов адресации
…………………………………………………………………………………
mov AH,4Ch
int 21h
Code ENDS
Stack1 SEGMENT Stack
DB 128 dup (0)
Stack1 ENDS
END Start
Содержание отчета
Отчет по лабораторной работе должен содержать:
титульный лист;
тему и цель работы;
листинг программы, а также дамп памяти после выполнения программы (вид дампа в отчете см. Приложение В);
выводы по работе.
Что нужно знать для защиты отчета
Для защиты отчета по лабораторной работе необходимо внимательно изучить темы: «Декларация простых данных на ассемблере» и «Виды адресации». Вопросы для защиты лабораторной работы индивидуальны и задаются в форме небольших примеров – задач. Для ответа на вопросы необходимо четко ориентироваться в листинге программы, для определения величин смещения к данным и командам. Находить в распечатке дампа памяти данные по их смещению, а также уметь правильно читать эти данные.
Рекомендуемая литература
Юров В. Assembler / В. Юров. – СПб.: Питер, 2001.- 624с.:ил.
Чекатков А.А. Использование TA при разработке программ / АА. Чекатков. – К.: Диалектика, 1995.
Сван Т. Освоение Turbo Assembler./ Т. Сван. – К.: Диалектика, 1996.
Лабораторная работа № 4
Тема: изучение команд пересылки данных.
Цель: разобраться в работе команд центрального процессора, составляющих группу команд пересылки данных.
Общие сведения
Все команды центрального процессора разделены на группы по признаку их общего назначения. В группу команд пересылки данных входят следующие команды:
mov – пересылка данных;
lea – загрузка эффективного адреса;
lds – настройка регистровой пары DS:рег.;
les - настройка регистровой пары ЕS:рег.;
lahf – загрузка регистра АН младшим байтом флагового регистра;
sahf – загрузка младшего байта флагового регистра значением из регистра АН;
xchg – обмен значениями между операндами;
xlat – табличная трансляция данных;
push - помещение значения операнда в стек;
pushf – помещение значения из флагового регистра в стек;
pop – изъятие значения из стека и размещение в операнде;
popf - изъятие значения из стека и размещение во флаговом регистре;
in – чтение значения из порта;
out - вывод значения в порт.
Для выполнения лабораторной работы кроме изучения описания команд по конспекту лекций желательно ознакомиться с описанием этих команд в справочной системе по ассемблеру – архив lern (учебник Юрова В.).