Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
WOmwwemmjb.file.doc
Скачиваний:
3
Добавлен:
30.04.2022
Размер:
256.51 Кб
Скачать

2.4. Порядок выполнения работы

1) Скопировать на рабочий компьютер папку asm_lab1. В ней находятся:

- ассемблер (MASM.exe), редактор связей (LINK.exe) и отладчик (AFD.com).

- текст первой программы (skelet.asm), содержащей пример типичной программы на ассемблере с подробными комментариями. Программа выводит на экран монитора приветствие.

2) Просмотреть в текстовом редакторе исходный код программы skelet.asm. Элементы данной программы следует использовать в качестве примера при написании всех программ данной ЛР.

3) Запустить bat-файл make_skelet.bat. В ответ на все запросы нажать клавишу «Enter». Будут сформированы объектный (skelet.obj) и исполняемый файлы (skelet.exe). Выполнить программу, запустив exe-файл.

4) Освоить пошаговое выполнение программы, а также отображение состояния регистров процессора и содержимого сегментов с помощью отладчика AFD.com. В таблице 5 приведены некоторые команды и функциональные клавиши для работы в отладчике. Дополнительную информацию можно получить, нажав функциональную клавишу F4 (Help).

Таблица 5

Команды и функциональные клавиши для работы с отладчиком AFD

Команда

Назначение

L skelet

Загрузить skelet.exe

Quit

Выход из отладчика

F2

Пошаговое выполнение без входа в процедуры

F1

Пошаговое выполнение, в том числе внутри процедур

F3

Просмотр (возврат в командное поле) ранее выполненных команд

Продолжение табл. 5

F7, F8, F9, F10

Переход в режим непосредственного редактирования содержимого регистров и памяти. Клавиши перемещают курсор с панели на панель соответственно вверх, вниз, влево и вправо. Перемещение внутри панели производится клавишами управления курсором. Для выхода обратно в командный режим переместите курсор в поле команд.

G

Непошаговое выполнение программы.

R AX = ab7d

Запись значения в регистр. В приведенном примере – значения ab7d в регистр AX.

ZF=1

Присвоить значение флагу условия, в данном случае – флагу нуля.

M 1 SS:40

M 2 DS:0

Отобразить на первой панели памяти содержимое сегмента стека, начиная со смещения 40

Отобразить на второй панели памяти содержимое сегмента данных с начала (смещение 0)

5) Изучить, собрать и запустить в отладчике программу data_mov.asm. Программа демонстрирует использование директив описания данных и команд пересылок.

6) Изучить, собрать и запустить в отладчике программу add_sub.asm. Программа демонстрирует работу с командами сложения и вычитания. Обратить внимание на изменение флагов при выполнении арифметических операций.

7) На основе изученных программ выполнить все 3 части задания для самостоятельной работы, вариант которого берется из таблицы 6.

2.5. Задание на лабораторную работу

Написать программу, которая:

  • приветствует именно Вас;

  • содержит директивы описания данных, команды пересылок и арифметические команды в соответствии с выбранным вариантом (таблица 6).

Выполнить программу в отладчике и отследить все изменения содержимого регистров, памяти и флагов (изменения значений регистров и флагов отследить и добавить в комментарии к программам).

Таблица 6

Варианты заданий на лабораторную работу

№ вар.

Категория

Задание

1

Данные

а) A – массив из 5 байт.

б) B – двойное слово, инициализированное большим числом.

в) V – массив из 10 байт, инициализированных последовательными буквами алфавита.

г) Z – массив 8 слов, инициализированных повторяющимся значением

Пересылки

а)  Старшее слово переменной B – в DX, младшее – в AX.

б) Третий элемент массива V – в CL.

в) Значение 0FA98h в регистр ES.

г) Значение регистра DX – в начало переменных V и Z

Продолжение табл. 6

Арифметика

Занести в массив A некоторые числовые значения и выполнить их сложение. Результат поместить в DH. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний.

2

Данные

а) F – массив из 3 слов.

б) H – двойное слово, инициализированное большим числом.

в) K – массив из 5 байт, инициализированных последовательными цифрами (символами).

г) L – массив из 8 слов, инициализированных повторяющимся значением

Пересылки

а) Последнего элемента K – в CH.

б) Некоторые значения в AX и DX.

в) Значение регистра DX – в переменные H и K со смещением 2

г)  Значение из DX – в старшее слово переменной H, из AX – в младшее.

Арифметика

Занести в массив F некоторые числовые значения. Вычесть из первого числа остальные. Результат поместить в СX. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний.

3

Данные

а) F – массив из 4 байт.

б) H – двойное слово, инициализированное большим числом.

в) K – массив из 5 слов, инициализированных повторяющимся числом.

г) L – массив 7 байт, инициализированных гласными буквами

Продолжение табл. 6

Пересылки

а)  Старший байт переменной H – в CH, младший – в DH.

б) Третий элемент массива K – в CX.

в) Значение 54F8h в регистр AX.

г) Значение регистра SI – в конец переменных H и K

Арифметика

Занести в массив F некоторые числовые значения и выполнить их сложение. Результат поместить в DX. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний

4

Данные

а) F – массив из 5 байт.

б) H – двойное слово, инициализированное большим числом.

в) K – массив из 4 байт, инициализированных звездочками.

г) L – массив 20 слов, инициализированных повторяющимся значением

Пересылки

а) Последний элемент массива K – в CH.

б) Некоторые значения в AX и DX.

в)  Значение из DL – в старший байт переменной H, из AH – в младший.

г) Значение регистра DX – в переменные H и K со смещением 2

Арифметика

Занести в массив F некоторые числовые значения. Вычесть из среднего числа сумму остальных. Результат поместить в ВX. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний

Продолжение табл. 6

5

Данные

а) A – массив из 3 слов.

б) B – двойное слово, инициализированное большим числом.

в) Q – массив из 10 байт, инициализированный повторяющимся словом «asm».

г) R – массив 4 слов, инициализированных последовательными числовыми значениями

Пересылки

а)  Старший байт переменной B – в DL, младший – в AH.

б) Третий элемент переменной Q – в регистр CL.

в) Значения 0FA98h в регистр ES.

г) Значение регистра DX – в начало переменных Q и R

Арифметика

Занести в массив A некоторые числовые значения и выполнить их сложение. Результат поместить в BX. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний.

6

Данные

а) F – массив из 3 слов.

б) H – двойное слово, инициализированное большим числом.

в) K – массив из 5 байт, инициализированных последовательными цифрами.

г) L – массив 8 слов, инициализированных повторяющимся значением

Продолжение табл. 6

Пересылки

а) Последний элемент переменной K – в CH.

б) Некоторые значения в AX и DX.

в) Значение регистра DX – в переменные H и K со смещением 1

г)  Значение из DX – в старшее слово переменной H, из AX – в младшее.

Арифметика

Занести в массив F некоторые числовые значения. Вычтите из среднего числа остальные. Результат поместить в СX. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний.

7

Данные

а) F – массив из 4 байт.

б) H – двойное слово, инициализированное большим числом.

в) K – массив из 5 слов, инициализированных повторяющимся числом.

г) L – массив 7 байт, инициализированных знаками препинания буквами

Пересылки

а)  Старшее слово переменной H – в SI, младшее – в DI.

б) Третий элемент переменной K – в CX.

в) Значения 54F8h в регистр AX.

г) Значение регистра SI – в конец переменных H и K

Арифметика

Занести в массив F некоторые числовые значения. Выполнить сложение двух первых и двух последних. Найти разность полученных промежуточных сумм Результат поместить в BP. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний.

Продолжение табл. 6

8

Данные

а) F – массив из 5 байт.

б) H – двойное слово, инициализированное большим числом.

в) K – массив из 4 байт, инициализированных звездочками.

г) L – массив 20 слов, инициализированных повторяющимся значением

Пересылки

а) Последний элемент массива K – в CH.

б) Некоторые значения в AX и DX.

в)  Значение из DH – в старший байт переменной H, из AH – в младший.

г) Значение регистра DX – в переменные H и K со смещением 1

Арифметика

Занести в массив F некоторые числовые значения. Вычтите из среднего числа сумму остальных. Результат поместить в ВX. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний

9

Данные

а) G – массив из 6 байт.

б) H – двойное слово, инициализированное большим числом.

в) M – массив из 10 байт, инициализированных различными числами.

г) N – массив из 5 слов, инициализированных повторяющимся значением

Пересылки

а)  Старшее слово переменной H – в AX, младшее – в DX.

б) Второй элемент массива M – в CH.

в) Значение 0FAC8h в регистр ES.

г) Значение регистра AX – в переменные M и N со смещением 3

Продолжение табл. 6

Арифметика

Занести в массив G некоторые числовые значения и выполнить их сложение. Результат поместить в AL. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний.

10

Данные

а) I – массив из 4 слов.

б) J – двойное слово, инициализированное большим числом.

в) L – массив из 6 байт, инициализированных символом ‘&’.

г) M – массив 8 слов, инициализированных последовательными числовыми значениями

Пересылки

а) Последний элемент массива L – в CH.

б) Некоторые значения в AX и BX.

в) Значение регистра BX – в переменные L и M со смещением 4

г)  Значение из BX – в старшее слово переменной H, из AX – в младшее.

Арифметика

Занести в массив I некоторые числовые значения. Вычесть из последнего числа остальные. Результат поместить в DX. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний.

11

Данные

а) F – массив из 6 байт.

б) H – двойное слово, инициализированное большим числом.

в) Y – массив из 5 слов, инициализированных разными символами.

г) Z – массив 8 байт, инициализированных числом 7Ch

Продолжение табл. 6

Пересылки

а)  Старший байт переменной H – в CH, младший – в AH.

б) Третий элемент переменной Y – в BX.

в) Значение 5AF8h в регистр AX.

г) Значение регистра SI – в конец переменных H и Y

Арифметика

Занести в массив F некоторые числовые значения. Выполнить сложение трех первых элементов и трех последних. Найти разность первой и второй суммы. Результат поместить в СL. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний.

12

Данные

а) F – массив из 6 байт.

б) H – двойное слово, инициализированное большим числом.

в) K – массив из 4 байт, состоящий из различных числовых значений.

г) L – массив 20 слов, инициализированных повторяющимся значением

Пересылки

а) Последний элемент переменной K – в CH.

б) Некоторые значения в AX и BX.

в)  Значение из BL – в старший байт переменной H, из BH – в младший.

г) Значение регистра AX – в переменные H и K со смещением 2

Арифметика

Занести в массив F некоторые числовые значения. Вычесть из третьего числа остальные. Результат поместить в CL. В тексте программы отметить все устанавливаемые арифметическими командами значения флагов состояний.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]