win32汇编:helloASM

.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


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值