我正在尝试使用内联汇编...我读过这个页面http://www.codeproject.com/KB/cpp/edujini_inline_asm.aspx但我无法理解传递给我的函数的参数.
我正在写一个C写的例子..这是我的函数头:
write2(char *str, int len){
}
Run Code Online (Sandbox Code Playgroud)
这是我的汇编代码:
global write2
write2:
push ebp
mov ebp, esp
mov eax, 4 ;sys_write
mov ebx, 1 ;stdout
mov ecx, [ebp+8] ;string pointer
mov edx, [ebp+12] ;string size
int 0x80 ;syscall
leave
ret
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能将代码传递给C函数...我正在做这样的事情:
write2(char *str, int len){
asm ( "movl 4, %%eax;"
"movl 1, %%ebx;"
"mov %1, %%ecx;"
//"mov %2, %%edx;"
"int 0x80;"
:
: "a" (str), "b" (len)
);
}
Run Code Online (Sandbox Code Playgroud)
那是因为我没有输出变量,所以我该如何处理呢?此外,使用此代码:
global main
main:
mov ebx, 5866 ;PID
mov ecx, …Run Code Online (Sandbox Code Playgroud)