各种装配问题

问题描述

| 我正在看一些组装的东西。因此,
pushl bar
subl $4,%esp
movl bar,($esp)
相同。 几个问题: 1)
%esp
寄存器有什么特别之处? 2)寄存器周围的括号是什么意思? 3)
pushl bar
意味着在堆栈顶部有条形,对吗?那么,当我
subl $4
时会发生什么?这是否意味着我要在堆栈顶部创建一个空白空间以便我将
bar
移入?     

解决方法

ESP是堆栈指针-它始终指向堆栈的“顶部” 括号表示“ ESP所指向的内存”,而不是ESP寄存器本身 您将堆栈指针向下移动了四个字节(在大多数实现中,堆栈指针向下增长-将某些内容推入堆栈的“顶部”意味着将其存储在较低的内存地址中)