我想將一個數組傳遞給用匯編寫的我的排序程序。我的代碼到目前爲止是:c傳遞數組到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:
.text段 全球myFunc的 的extern printf的
myFunc:
enter 4,0
push ebx
push dword [ebp + 8]
call printf
pop ebx
leave
ret
這只是一些測試代碼來學習如何做到這一點。
我的理解是,這應該打印指向數組的指針,但我可能是錯的。
任何人都可以給我一個簡單的例子,將數組傳遞給程序集文件(NASM)。
謝謝!
在您的程序集中,您在調用printf之前將指針值推入堆棧。但是我沒有看到你在推送一個格式化字符串。難道你不需要有效地將%x \ n「'推入堆棧嗎? – selbie 2013-03-10 04:25:53