J'essaie de passer un tableau à mon programme de tri écrit en assemblée. Le code que j'ai à ce jour est:c passer tableau à la fonction nasm
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:
section .text myFunc mondiale extern printf
myFunc:
enter 4,0
push ebx
push dword [ebp + 8]
call printf
pop ebx
leave
ret
Ceci est juste un code de test pour apprendre à faire cela. Ma compréhension serait que cela devrait imprimer le pointeur vers le tableau, mais je me trompe probablement. Quelqu'un peut-il me donner un exemple simple de passage d'un tableau à un fichier d'assemblage (NASM).
Merci!
Dans votre assemblage, vous poussez la valeur du pointeur sur la pile juste avant d'appeler printf. Mais je ne vois pas où vous poussez une chaîne de formatage. N'avez-vous pas vraiment besoin de "pousser"% x \ n "' sur la pile? – selbie