永发信息网

汇编中的uses定义什么用

答案:2  悬赏:10  手机版
解决时间 2021-03-19 00:41
  • 提问者网友:了了无期
  • 2021-03-18 06:27
AlignSize proc uses ecx edx nSize:UINT,nAlign:UINT
看到这段函数的申明头。不知道在proc之后加个uses ecx,edx什么用。
求大神。
最佳答案
  • 五星知识达人网友:归鹤鸣
  • 2021-03-18 07:50
其实的它的功能就相当于
push ecx
push edx
如果你学习过DOS汇编就应该知道了,在子程序中一般会把一些寄存器入栈,然后子程序运行完后再把这些寄存器的值pop出来,相当暂时把寄存器中值保存在栈中,uses就是一条伪操作而已,如果你不嫌麻烦,也可以直接自己push入栈也可以的,win32好多这样的伪操作和伪指令,其实就是真正指令的一种封装,本来真正的指令是push ecx 和push edx的,win32把它封装成一个uses就可以完成了,但是在编译的时候,编译器还是会编译成push ecx push edx的,当然加上uses后,子程序运行前会自动把要保护的寄存器入栈,子程序结束后会自动把自动把寄存器中的值还原,所以可以节省程序员写代码的时间
全部回答
  • 1楼网友:一袍清酒付
  • 2021-03-18 08:20
虽然上面的说的大多内容,但是你去看看,kip r.irvine assembly language for x86 7th 这个版本,虽然uses这个语句属于半模块化的程序,与push还是有一定区别,用ESP 的时候就知道了,后面两条就是无符号的两个整形变量等效于 nsize : ptr uint 。一个变量定义。 反正自己去看看吧,内容挺多的大概800~900页的样子,内容相当的全面。 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯