Мониторинг обменных курсов валют
18c0693f

классический способ передачи стековых аргументов


Довольно расточительное (в плане процессорных тактов) решение, особенно если функция вызывается многократно. При этом операнды команды PUSH перегоняются из секции .text (находящейся в кодовой кэш-памяти первого уровня) в область стека, находящейся в кэш-памяти данных. Ну и на хрена гонять их туда и обратно, когда аргументы можно использовать непосредственно по месту хранения.

Усовершенствованный пример выглядит так:

.code

       MOV EBP, ESP

       MOV ESP, offset func_arg + 4

       CALL my_func

       MOV ESP, EBP

      

.data

       func_arg      DD 00h, 696h, 999h, 669h






Самый выгодный курс обмена валюты