汇编中的proc指令 |
您所在的位置:网站首页 › 子程序的功能是什么 › 汇编中的proc指令 |
proc是子程序定义伪指令, far是该子程序的属性,决定调用程序和子程序是否在同一代码段 如下:为子程序定义及说明, 子程序名 PROC NEAR ( 或 FAR ) xxxxxx具体代码 ret 子程序名 ENDP子程序名为符合语法的标识符 NEAR属性(段内近调用): 调用程序和子程序在同一代码段中,只能被相同代码段的其他程序调用; FAR属性(段间远调用): 调用程序和子程序不在同一代码段中,可以被相同或不同代码段的程序调用. 使用proc传递参数proc完整格式: label PROC [attributes] [USES reglist], parameter_list传递参数举例: _ProcDlgMain proc uses ebx edi esi hWnd,wMsg,wParam,lParam AlignSize proc uses ecx edx nSize:UINT,nAlign:UINT其中use的功能就相当于 push ecx push edx如果你学习过DOS汇编就应该知道了,在子程序中一般会把一些寄存器入栈,然后子程序运行完后再把这些寄存器的值pop出来,相当暂时把寄存器中值保存在栈中,uses就是一条伪操作而已,如果你不嫌麻烦,也可以直接自己push入栈也可以的,win32好多这样的伪操作和伪指令,其实就是真正指令的一种封装,本来真正的指令是push ecx 和push edx的,win32把它封装成一个uses就可以完成了,但是在编译的时候,编译器还是会编译成push ecx push edx的,当然加上uses后,子程序运行前会自动把要保护的寄存器入栈,子程序结束后会自动把自动把寄存器中的值还原,所以可以节省程序员写代码的时间 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |