Написать прогу с разными способами передачи, содержащую процедуру, исследовать её работу в отладчике - 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

Объяснение кода листинга программы

  1. Постановка задачи: написать программу с разными способами передачи, содержащую процедуру, исследовать её работу в отладчике.
  2. Используемый язык программирования: Assembler.
  3. Организация исходных данных: в памяти ЭВМ.
  4. Основной алгоритм: отсутствует.
  5. Описание работы программы: — Передача сегмента данных в стек. — Передача сегмента стека в регистр BP. — Передача значения регистра SP в регистр AX. — Передача сегмента стека в регистр ES. — Вызов процедуры POWER. — Передача значения регистра CX в процедуру POWER. — Вызов функции завершения работы программы.
  6. Описание работы процедуры POWER: — Передача значения регистра SP в регистр AX. — Добавление значения 2 к регистру SP. — Передача сегмента стека в регистр BP. — Передача значения регистра SS в регистр AX через стек. — Ротация значения регистра CX на 8 бит влево. — Обмен значениями регистров CH и CL. — Побитовое сдвиг значения регистра BX на 16 бит вправо. — Повторение цикла до достижения условия цикла. — Возврат в основную программу.
  7. Выполняемый код: — Начало работы программы. — Вызов процедуры POWER. — Вызов функции завершения работы программы.
  8. Необходимые действия перед запуском программы: — Загрузка программы в память ЭВМ. — Передача сегмента данных в стек. — Передача сегмента стека в регистр BP. — Передача значения регистра SP в регистр AX. — Передача сегмента стека в регистр ES. — Вызов процедуры POWER. — Передача значения регистра CX в процедуру POWER. — Вызов функции завершения работы программы.

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы