标签:
.386;32位架构 .model flat, stdcall; include masm32.inc include kernel32.inc includelib masm32.lib includelib kernel32.lib .data;数据段 szText db "Hello ASM!", 0 .code;代码段 TestPrint proc near;过程声明 push ebp;保存栈基址寄存器 mov ebp,esp;新栈底 sub esp,100h;开辟新的256字节栈空间 push ebx;保存基址寄存器 push esi;保存源变址 push edi;保存目的变址 lea edi,[ebp-100h];把新的栈顶地址给EDI mov ecx,40h;设置拷贝次数 mov eax,0CCCCCCCCh;拷贝的值 rep stos dword ptr es:[edi];拷贝EAX里的内容到EDI所指向的地方 mov eax,[ebp+8];取出第一个参数 push eax;把EAX传入Stdout函数 call StdOut;调用函数 pop edi;恢复EDI pop esi;恢复ESI pop ebx;恢复EBP mov esp,ebp;恢复ESP pop ebp;恢复EBP ret ;函数返回 TestPrint endp start: lea eax,szText;取字符串 push eax;传参数 call TestPrint;调用函数 pop eax;恢复栈平衡 end start
标签:
原文地址:http://blog.csdn.net/ultimater/article/details/44927111