- •Методичесике указания к выполнению лабораторных работ по дисциплине
- •График проведения
- •Лабораторная работа № 1
- •Общие сведения
- •Задание
- •Содержание отчета
- •Что нужно знать для защиты отчета
- •Рекомендуемая литература
- •Лабораторная работа № 2
- •Общие сведения
- •Задание
- •Содержание отчета
- •Задание
- •Содержание отчета
- •Задание
- •Содержание отчета
- •Что нужно знать для защиты отчета
- •Рекомендуемая литература
- •Лабораторная работа № 5
- •Общие сведения
- •Задание
- •Варианты заданий
- •Содержание отчета
- •Задание
- •Варианты заданий
- •Содержание отчета
- •Что нужно знать для защиты отчета
- •Рекомендуемая литература
- •Лабораторная работа № 7
- •Общие сведения
- •Варианты заданий
- •Содержание отчета
- •Что нужно знать для защиты отчета
- •Рекомендуемая литература
Задание
Внимательно изучить работу команд пересылки данных по источникам, указанным выше.
Ознакомиться с исходным текстом программы, приведенным ниже.
Выполнить ассемблирование и линкование исходного текста программы.
Загрузить .exe файл в td.exe. Выполнить программу по шагам, анализируя принцип работы каждой команды по состоянию регистров, используемых в команде и ячеек памяти, к которым обращается данная, выполненная команда.
; Исходный текст программы
Data SEGMENT
Tab DB 1,2,3,4,5,6,7,8,9,0Ah,0Bh,0Ch,0Dh,0Eh,0Fh
Addr DW Char,Data
New DW ?,?
NewAddr DD 12345678h
Dest DW ?
Char DB '*'
Data ENDS
Code SEGMENT
ASSUME DS:Data,CS:Code,ES:Data,SS:Stack1
Start: mov AX,Data
mov DS,AX
;демонстрация работы команды MOV - 'А, просто так...'
mov addr,DS
mov ES,addr
mov CH,77h
mov CL,0EEh
mov DI,offset Tab
mov Dest,DI
mov DX,CX
mov AL,CH
mov AX,Addr
mov New,AX
mov AL,Char
mov Tab,AL
mov SI,0CDh
mov Addr,577h
mov DI,14h
;демонстрация работы команды обмена
xchg CL,CH
xchg AX,CX
;демонстрация трансляции элементов таблицы
mov BX,5
mov AX,2
xlat
;загрузка эффективного адреса
mov AX,offset Char
lea BX,Char
;загрузка полного адреса
mov AX,DS
lds BX,NewAddr
mov DS,AX
lea BP,Addr
les DI,[BP]
;загрузка/сохранение флагов
lahf
mov AH,11010101b
sahf
;работа со стеком
push DS
push ES
pop DS
pop ES
pushf
mov AX,0FD5h
push AX
popf
popf
;Завершение работы программы
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.
Лабораторная работа № 5
Тема: работа с командами двоичной арифметики.
Цель: освоить работу команд двоичной арифметики для знаковых и беззнаковых данных различной длины и влияние этих команд на флаговый регистр.