win32汇编:helloASM

来源:互联网 发布:windows xp sp3 iso 编辑:程序博客网 时间:2024/06/08 18:07
.386;32位架构.model flat, stdcall;include masm32.incinclude kernel32.incincludelib masm32.libincludelib 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];把新的栈顶地址给EDImov 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;恢复EDIpop esi;恢复ESIpop ebx;恢复EBPmov esp,ebp;恢复ESPpop ebp;恢复EBPret ;函数返回TestPrint endpstart:lea eax,szText;取字符串push eax;传参数call TestPrint;调用函数pop eax;恢复栈平衡end start


0 0
原创粉丝点击