Как в готовом коде менять смещение переменных не меняя самого кода?

Есть процедура, с написанным кодом и в ней есть переменные (я сделал на переменных, а не стеке передачу параметров процедуре так как я ещё не дорос до проф уровня). Мне надо не меняя кода самой процедуры сделать смещение переменных на нужное значение (понятно дело что указатель). Это значение будет меняться.


Ответы (1 шт):

Автор решения: PRODIGY

Вот варианты передачи аргументов через регистры и через стек (fasm):

format   pe gui
include 'win32ax.inc'
;//----------
.data
szMes1   db  'Передача параметров через регистры!',0
szMes2   db  'Передача параметров через стек!',0
buff     db  0
;//----------
.code
start:
       mov     ebx,szMes1    ;// аргумент в регистре EBX
       call    Registers

       push    szMes2        ;// аргумент в стеке
       call    Stacks

       invoke  ExitProcess,0
;//------------
proc   Registers
       invoke  MessageBox,0,ebx,<'Fasm example',0>,0
       ret
endp
proc   Stacks param1
       mov     ebx,[param1]
       invoke  MessageBox,0,ebx,<'Fasm example',0>,0
       ret
endp
.end start
→ Ссылка