Домашнее задание. Закрепить умения создавать программы с подключением внешних процедур
Закрепить умения создавать программы с подключением внешних процедур. Лабораторная работа №5 Анализ функционирования программы вычисления факториала в отладчике. Исследование состояния регистров процессора при выполнении программы. Цель: Научиться исследовать регистры процессора в отладчике при вычислении программы факториала. Программное обеспечение: TASM. Оборудование: персональный компьютер, практикум, тетради для лабораторных работ. Правила по технике безопасности: общие (приложение). Литература: Магда Ю. Ассемблер для процессоров Intel Pentium. Голубь Н. Г. Искусство программирования на Ассемблере. Лекции и упражнения. Время выполнения: 2 часа. ВОПРОСЫ ВХОДНОГО КОНТРОЛЯ: 1. Дайте определение отладчика. 2. Перечислите регистры процессора. МЕТОДИЧЕСКИЕ УКАЗАНИЯ Реализация рекурсивных процедур Процедура называется рекурсивной, если она прямо или косвенно обращается к себе самой. Рекурсия является естественным свойством для большого числа математических и вычислительных алгоритмов. Важно отметить, что любой рекурсивный алгоритм можно сделать итеративным, но это не всегда целесообразно. В теории программирования рекурсия, как правило, воспринималась неоднозначно. В конечном итоге была выработана следующая рекомендация — рекурсию следует избегать в случаях, когда имеется очевидное итерационное решение. Как мы убедимся из приведенного ниже обсуждения, очевидная рекурсивная задача вычисления факториала не дает никакого выигрыша относительно другой программной реализации. Настоящий эффект возникает в тех задачах, где рекурсия использована в определении обрабатываемых данных. Такими данными могут являться, например, динамические структуры данных — стеки, деревья, списки, очереди и т. п. .data r_fact dw 0 .code fac proc push bp mov bp, sp mov cx, [bp+4] mov ax, cx mul r_fact mov r_fact, ax dec cx jz end_p push cx call fact end_p: mov sp, bp pop bp ret fact endp main: mov r_fact.1 push word ptr 5 call fact : … СОДЕРЖАНИЕ РАБОТЫ: Проследите в отладчике за тем, как происходит удаление кадров стека из процедуры и возврат в программу на первую после инициирующей рекурсивный вызов команды CALL команду. ВОПРОСЫ ВЫХОДНОГО КОНТРОЛЯ: 1. Дайте определение рекурсии. Домашнее задание Закрепить умения исследовать регистры процессора при вычислении программы факториала.
Практическая работа №9
|