Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Лабораторная работа № 8. Использование стека и рекурсивных процедур. Организация передачи параметров через стек в процедуру вычисления факториала числаСодержание книги
Поиск на нашем сайте
Цель работы 1. Изучение принципов функционирования памяти и микропроцессора компьютера при выполнении операций со стеком для передачи параметров через стек и рекурсивными подпрограммами. 2. Приобретение навыков использования команд для работы со стеком и подпрограммами для организации передачи параметров через стек. 3. Получение представления об особенностях обработки данных, команд и режимах доступа к данным при организации передачи параметров в подпрограммы через стек. 4.9.2. Контрольные вопросы 1. Какие регистры используются при работе со стеком? Назначение регистра BP. 2. Когда передаваемые в процедуру аргументы записываются в стек? Какое место они занимают в стеке после входа в процедуру? 3. Формат процедуры при использовании передачи параметров через стек. Пролог и эпилог процедуры. 4. Какие действия выполняются в вызывающей программе после возврата из процедуры и для чего? 5. Как вычисляется адрес требуемого параметра в стеке в процедурах ближнего вызова? Как вычислить адрес аргумента в процедуре дальнего вызова? 6. Передача параметров по ссылке и ее особенности. Какой оператор используется для записи в регистр адреса данного, а не самого данного? 7. Передача параметров по значению и ее особенности. Задание на лабораторную работу 1. Написать программу на языке ассемблера, которая использует стек для передачи параметров в процедуру вычисления факториала числа. 1.1. В сегменте данных определить две двухбайтовые ячейки с одинаковым значением: 3h, ниже – еще две двухбайтовые ячейки для сохранения результата с произвольным первоначальным значением. 1.2. В сегменте кода описать процедуру ближнего вызова, в которой содержится программа вычисления факториала числа. 1.3. Число, для которого необходимо вычислить факториал должно передаваться в качестве аргумента через стек. 1.4. В сегменте кода в основной программе выполнить дважды вызов процедуры вычисления факториала: в первом случае аргумент передается по значению (из первой ячейки), во втором случае – по ссылке (из второй ячейки). 1.5. Результаты вычисления факториала записать в соответствующие ячейки памяти, определенные в сегменте данных. 2. На основе исходной программы получить исполняемый файл. Выполнить программу по шагам с помощью отладчика TD, описать изменение состояния регистров и ячеек памяти при выполнении программы. Обратить особое внимание на следующие моменты: 2.1. Каково содержимое стека до входа в процедуру и после? 2.2. Как изменяется содержимое стека при рекурсивных вызовах процедуры и возвратах из рекурсии? 2.3. На что указывает регистр SP после выполнения первой команды эпилога процедуры? 2.4. Каким образом в программе осуществляется передача параметра по значению и по ссылке? 2.5. Какое значение имеют ячейки памяти, отведенные под исходные данные, и почему? 5. задания к практическим занятиям Практические задания рассчитаны на студентов, имеющих некоторые навыки программирования на языке ассемблера, полученные ими в ходе выполнения лабораторных, идущих параллельно с практическими занятиями. Для выполнения практических заданий студенты должны уметь работать с текстовым редактором, командной строкой операционной системы и иметь представление об электронных вычислительных машинах, системах счисления, а также принципах фон Неймана из курса информатики. При подготовке к практическому занятию студенты должны повторить лекционный и дополнительный материал, относящийся к изучаемой теме, ознакомиться с теоретическими сведениями, а также ответить на контрольные вопросы, приведенные в соответствующих разделах настоящего практикума. В процессе изучения материала следует уделять особое внимание приведенным примерам и фрагментам программ. Подготовка к практическому занятию является самостоятельной работой студентов и выполняется ими до аудиторного занятия. Возникшие вопросы решаются совместно с преподавателем в начале аудиторного занятия. В ходе практического занятия студенты выполняют соответствующие задания. В соответствии с заданием создаётся программа на языке ассемблера, исходный текст которой формируется в любом текстовом редакторе, например, Блокноте. Затем после получения исполняемого файла осуществляется выполнение программы на виртуальной машине DOSBox (см. раздел 3). Возникшие при выполнении задания вопросы решаются с преподавателем в течение аудиторного занятия. По результатам выполнения практического задания студенты дополняют отчёт необходимыми сведениями (пояснениями, распечатками программ). В целом отчёт по практическому занятию должен включать в себя: 1. Текст исходной программы на языке ассемблера с комментариями в соответствии с заданием. 2. Краткие письменные ответы на контрольные вопросы практического занятия.
|
||||
Последнее изменение этой страницы: 2020-12-09; просмотров: 119; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.118.184.36 (0.006 с.) |