Assembly lea 0xY(%esp),%esi做什么?

Assembly lea 0xY(%esp),%esi做什么?,assembly,x86,att,Assembly,X86,Att,我不明白这个代码会做什么 lea 0x13(%esp), %esi %esp是堆栈指针,%esi是索引寄存器 是0x13偏移量吗?我习惯了英特尔语法,所以我相信这就是发生的情况: lea esi, [esp+13h] 假设esp为0x18000-此操作的结果将为0x18013,因为您实际上没有使用lea访问任何内存 同样,我只对英特尔语法有经验,所以我的答案可能不正确。希望这对你有帮助

我不明白这个代码会做什么

lea   0x13(%esp), %esi
%esp是堆栈指针,%esi是索引寄存器


是0x13偏移量吗?

我习惯了英特尔语法,所以我相信这就是发生的情况:

lea esi, [esp+13h]
假设
esp
为0x18000-此操作的结果将为0x18013,因为您实际上没有使用
lea
访问任何内存

同样,我只对英特尔语法有经验,所以我的答案可能不正确。希望这对你有帮助