Я использую 32-разрядную сборку NASM, и мне было интересно, есть ли способ передать определенное число квадратов (8 байтов) в качестве параметра подпрограмме в 32-разрядной сборке Nasm.Я знаю, что стек в 32-битной сборке организован так, чтобы принимать определенные двойные слова (4 байта).Поэтому мне интересно, если это вообще возможно сделать.
Пример кода:
section .data
x: dq 10 ;Defining x as a 8 byte number
section .bss
section .text
global asm_main
asm_main:
enter 0,0 ;Creating stack frame
push QWORD[x] ;pushing x as a parameter for the test subprogram
call test ;Calling the subprogram
add esp,8 ;Deallocating memory used by parameter
leave
ret
Но при запуске кода появляется сообщение о том, что (push QWORD[x])
:
инструкция не поддерживается в 32-разрядной версиирежим