Обработка строки с ариф. операциями оверлейными функциями - Assembler

Узнай цену своей работы

Формулировка задачи:

Всем привет, ломаю голову не могу понять как решить данную задачу, если кто знает объясните пжлст:

Написать программу для обработки строк вида “A1 x1 A2 x2 … xN-1 AN”, где Ai – числа (i в диапазоне [1, N]), xi – одна из арифметических операций (для обработки арифметических операций сформировать оверлейные функции, в память одновременно может быть загружена только одна функция, загрузку функций оптимизировать).

Решение задачи: «Обработка строки с ариф. операциями оверлейными функциями»

textual
Листинг программы
push    ebp;сохраняем базу стека, вызывающего кода
mov ebp,esp;стек теперь в базе
sub esp,m;выделяем место под локальные переменные
mov eax,[ebp+8];какой-то, там параметр из стека
. . .;код подпрогаммы.
mov esp,ebp;востанавливаем стек, уничтожая локальные переменные
pop ebp;востанавливает базу стека, вызывающего кода
ret n; зависит от стратегии(конвенции) передачи параметров и размера самих параметров

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

Код, который вы предоставили, является фрагментом функции на языке Assembler, который обрабатывает строку с арифметическими операциями. Вот список действий, которые выполняются в этом коде:

  1. push ebp; сохраняет базу стека вызывающего кода
  2. mov ebp, esp; база стека теперь находится в стеке
  3. sub esp, m; выделяет место под локальные переменные
  4. mov eax, [ebp+8]; перемещает значение параметра из стека в eax
  5. ...; здесь выполняется код подпрограммы
  6. mov esp, ebp; восстанавливает стек, уничтожая локальные переменные
  7. pop ebp; восстанавливает базу стека вызывающего кода
  8. ret n; возвращает управление в вызывающую программу, при этом в стек добавляется n (количество параметров, передаваемых в функцию) Обратите внимание, что действиями 3 и 4 выделяется место под локальные переменные и вводится одно из значений параметров функции в eax. Значение m используется для вычитания из стека, и его размер зависит от стратегии передачи параметров и размера самих параметров.

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

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