Настроим BP на текущую вершину
push 2000 ;Проталкиваем в стек значение параметра
call delay ;Вызываем подпрограмму delay
Текст подпрограммы подвергнется значительным изменениям:
Пример 3-8в. Передача параметра через стек
delay proc ;Процедура-подпрограмма
push CX ;Сохраним СХ основной программы
push BP ;Сохраним BP
mov BP,SP ; Настроим BP на текущую вершину стека
mov CX, [BP+6] ;Скопируем из стека параметр
del1: push CX ;Сохраним его
mov CX,0 ;Счетчик внутреннего цикла
del2 loop del2 ;Внутренний цикл(64К шагов)
pop CX ;Восстановим внешний счетчик
loop del1 ;Внешний цикл
pop BP ;Восстановим BP
pop CX ;и СХ программы
ret 2 ;Возврат и снятие со стека
;ненужного уже параметра
Содержание Назад Вперед