Написать прогу с разными способами передачи, содержащую процедуру, исследовать её работу в отладчике - Assembler
Формулировка задачи:
Составить три программы (с разными способами передачи
параметров в процедуру), содержащую процедуру, выполняющую
нижеприведённые действие. Исследовать её работу в отладчике.
Возводит целое число X в целую степень n (в качестве параметра
передавать числа X и n).
Сделайте прогу, в долгу не останусь)
Решение задачи: «Написать прогу с разными способами передачи, содержащую процедуру, исследовать её работу в отладчике»
textual
Листинг программы
use16 org 100h main: push cs mov bp,sp mov ax,[bp] mov ds,ax pop es push 8 mov cx,7 call power int 20h power: push sp pop ax push bp mov bp,ax add sp,2 mov ax,ss:[bp] rol cx,8 xchg ch,cl shr bx,16 loop1: add bx,ax loop loop1 ret
Объяснение кода листинга программы
- Постановка задачи: написать программу с разными способами передачи, содержащую процедуру, исследовать её работу в отладчике.
- Используемый язык программирования: Assembler.
- Организация исходных данных: в памяти ЭВМ.
- Основной алгоритм: отсутствует.
- Описание работы программы: — Передача сегмента данных в стек. — Передача сегмента стека в регистр BP. — Передача значения регистра SP в регистр AX. — Передача сегмента стека в регистр ES. — Вызов процедуры POWER. — Передача значения регистра CX в процедуру POWER. — Вызов функции завершения работы программы.
- Описание работы процедуры POWER: — Передача значения регистра SP в регистр AX. — Добавление значения 2 к регистру SP. — Передача сегмента стека в регистр BP. — Передача значения регистра SS в регистр AX через стек. — Ротация значения регистра CX на 8 бит влево. — Обмен значениями регистров CH и CL. — Побитовое сдвиг значения регистра BX на 16 бит вправо. — Повторение цикла до достижения условия цикла. — Возврат в основную программу.
- Выполняемый код: — Начало работы программы. — Вызов процедуры POWER. — Вызов функции завершения работы программы.
- Необходимые действия перед запуском программы: — Загрузка программы в память ЭВМ. — Передача сегмента данных в стек. — Передача сегмента стека в регистр BP. — Передача значения регистра SP в регистр AX. — Передача сегмента стека в регистр ES. — Вызов процедуры POWER. — Передача значения регистра CX в процедуру POWER. — Вызов функции завершения работы программы.