win32汇编 函数返回值在eax寄存器中

来源:互联网 发布:mt4外汇交易系统源码 编辑:程序博客网 时间:2024/05/24 04:36

.386.model flat,stdcalloption casemap:noneinclude E:\masm32\include\windows.incinclude E:\masm32\include\user32.incincludelib E:\masm32\lib\user32.libinclude E:\masm32\include\kernel32.incincludelib E:\masm32\lib\kernel32.lib.dataszCaption db 'qiuyuhan caption',0szText db 'HelloWorld',0szOK  db 'you clicked ok button',0szCANCEL db 'you clicked cancel button',0.codestart:invoke MessageBox,NULL,offset szText,offset szCaption,MB_OKCANCEL or MB_ICONQUESTION;所有函数的调用 返回值 都存在了eax寄存器中;cmp 如果两个值相等 标志期存器 ZF=1cmp eax,IDOK;ZF=1 时 跳转(相当于一个if  else 判断)je OKinvoke MessageBox,NULL,offset szCANCEL,offset szCaption,MB_OKjmp GOOK:invoke MessageBox,NULL,offset szOK,offset szCaption,MB_OKGO: invoke ExitProcess,NULLend start


效果




我们也可以用W32Dasm这个工具把我们编译好的汇编程序进行反汇编,查看汇编代码。


结果:



原创粉丝点击