汇编语言SP=SP-2是什么意思
SP=SP-2这个是什么意思,具体点,我的理解能力不是很强这个是不是一个公式?SP-2又是什么意思,是不是进栈一次就要-2我看其他人都是SP-4很多例子,在线等,高手来解...
SP=SP-2 这个是什么意思,具体点,我的理解能力不是很强 这个是不是一个公式? SP-2又是什么意思,是不是进栈一次就要-2 我看其他人都是SP-4 很多例子,在线等,高手来解
展开
展开全部
SP=SP-2,是指堆栈指针移动2个字节。不是一进站就要移动2个字节,这和你操作的数大小有关。如果你操作的书是字节型的(比如C语言中char型),那就只移动1个字节,即SP=SP-1;如果是双字节的(比如C语言中的int型),就是SP=SP-2;如果是四字节的(比如C语言中的float型的)就是SP=SP-4.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sp是栈指针,在8086模式下都是以字为单位,压栈一次sp就减2,出栈一次sp就加2.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2009-09-27
展开全部
16位汇编:
PUSH 16位(寄存器/存储器) ; SP=SP-2
POP 16位(寄存器/存储器) ; SP=SP+2
SP是栈顶指针指示器(16位);
32位汇编:
PUSH 16位/32位(寄存器/存储器/立即数) ; ESP=ESP- 2/4
POP 16位/32位(寄存器/存储器/立即数) ; ESP=ESP+ 2/4
ESP是栈顶指针指示器(32位);
现在的程序都是32位的.
PUSH 16位(寄存器/存储器) ; SP=SP-2
POP 16位(寄存器/存储器) ; SP=SP+2
SP是栈顶指针指示器(16位);
32位汇编:
PUSH 16位/32位(寄存器/存储器/立即数) ; ESP=ESP- 2/4
POP 16位/32位(寄存器/存储器/立即数) ; ESP=ESP+ 2/4
ESP是栈顶指针指示器(32位);
现在的程序都是32位的.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
应该先了解一下什么是 “栈空间”对这个问题就不难理解了:
假设 一个栈段的长度是:10000---1FFFF,两个数相减等于 FFFF,首先需知道指向栈顶的SS:SP 指针所指向的地址是多少,因为栈顶总是指向栈空间最高单元的下一个单元。知道了SS:SP也就知道了栈空间的大小,即 SP-2 (减两个单元)如:SP=2E ,那么2E-2=2C,栈空间是 0000----2C, 共计 13个单元。
假设 一个栈段的长度是:10000---1FFFF,两个数相减等于 FFFF,首先需知道指向栈顶的SS:SP 指针所指向的地址是多少,因为栈顶总是指向栈空间最高单元的下一个单元。知道了SS:SP也就知道了栈空间的大小,即 SP-2 (减两个单元)如:SP=2E ,那么2E-2=2C,栈空间是 0000----2C, 共计 13个单元。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询