Программирование на JAVA

Длина последовательности n, информация о которой хранится в памяти по адресу N, и адрес первого числа, NUM1, передаются под­программе через регистры ECX и EBX. Вычисленная подпрограммой сумма возвра­щается вызывающей программе через регистр EAX. Соответствующую часть вызы­вающей программы составляют первые четыре команды из числа представлен­ных на рис. 5.19. Первые две команды загружают в регистры ECX и EBX значения N и NUM1. Команда Call выполняет переход к подпрограмме, начинающейся по ад­ресу LISTADD. Кроме того, эта команда помещает в стек процессора адрес воз­врата из подпрограммы. Подпрограмма вычисляет сумму и помещает ее в регистр EAX. После возврата из подпрограммы вызывающая программа сохраняет эту сум­му в памяти по адресу SUM.

Таким образом, регистры ЕВХ, ЕСХ и ЕАХ используются для передачи параметров. Регистр EDI подпрограмма при выполнении сложения за­действует в качестве индексного регистра, поэтому его содержимое должно со­храняться и восстанавливаться при помощи команд PUSH и POP. Подпрограмма вызывается командой

CALL LISTADD

Первым делом эта команда проталкивает в стек адрес возврата, а затем выпол­няет переход по адресу LISTADD


<< назад вперед >>