Я пытаюсь передать массив моей программе сортировки, написанной на сборке. Код, который я до сих пор:c pass array to nasm function
main.c:
#include <stdio.h>
extern void myFunc(int * somedata);
int arr[5] = { 3, 2, 33, 11, 1};
void main(){
int i;
myFunc(arr);
for(i = 0; i < 5; i++)
{
// printf("%d\n", arr[i]);
}
}
myFunc.asm:
секция .text глобальная MyFunc ехЬегп Printf
myFunc:
enter 4,0
push ebx
push dword [ebp + 8]
call printf
pop ebx
leave
ret
Это просто некоторый код тестирования, чтобы узнать, как это сделать.
Мое понимание было бы в том, что это должно печатать указатель на массив, но я, вероятно, ошибаюсь.
Может ли кто-нибудь дать мне простой пример передачи массива в файл сборки (NASM).
Спасибо!
В вашей сборке вы нажимаете значение указателя на стек непосредственно перед вызовом printf. Но я не вижу, где вы нажимаете строку форматирования. Вам не нужно «нажимать»% x \ n "' на стек? – selbie