Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 183; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.008 с.) |