汇编 LEA指令

汇编 LEA指令LEA 指令返回间接操作数的偏移地址 由于间接操作数可能使用一个或多个寄存器 因此其偏移值是在运行时计算的

LEA指令返回间接操作数的偏移地址。由于间接操作数可能使用一个或多个寄存器,因此其偏移值是在运行时计算的。

void makeArray( ){ char myString[30]; for(int i = 0;i < 30;i++) myString[i] = '#'; } 

虽然数组有30字节,但按4字节对其,ESP减去了32。

makeArray PROC push ebp mov ebp,esp sub wsp,32 lea esi,[ebp-32] mov ecx,30 L1: mov BYTE PTR [esi],'#' inc esi loop L1 add esp,32 pop ebp ret makeArray ENDP 

使用OFFSET操作符获取堆栈参数的地址是不可能的,因为OFFSET只能获取在编译时就已经知道的地址。

lea esi,FFSET [ebp-32] ;错误 
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/206161.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月19日 下午4:19
下一篇 2026年3月19日 下午4:20


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号