堆栈区和SP堆栈区是30H-7FH,而堆栈操作时从默认SP=07H开始,那么堆栈区是做什么用的呢?没说完整啊,堆栈区到底
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 10:19:50
堆栈区和SP
堆栈区是30H-7FH,而堆栈操作时从默认SP=07H开始,那么堆栈区是做什么用的呢?
没说完整啊,堆栈区到底干什么用的?如果是堆栈操作用的话,为什么SP要默认等于07H呢?应该是30H啊
堆栈区是30H-7FH,而堆栈操作时从默认SP=07H开始,那么堆栈区是做什么用的呢?
没说完整啊,堆栈区到底干什么用的?如果是堆栈操作用的话,为什么SP要默认等于07H呢?应该是30H啊
LS说的是 x86汇编的
看lz问得明显是 51单片机的
SP默认是07H
但是程序总要用ram的..07很多时候都是要被用掉得所以,
一般来说 个开始运行的时候.就会确定好了 堆栈的起始地址
比如你说的30H
那么开始的时候会把 SP = 30H
当然如果你原本吧用的数据都定义在 很后面,
直接不修改sp也是没有关系的
///////////////////////////
补充.先说一下堆栈的作用.
比如你用call指令的时候.
cpu回吧 你的返回地址压入堆栈.比如这个时候sp = 07,返回地址=1122H
那么call后
07H = 11H
08H = 22H
SP = 09H.因为压入2个直接所以变成09//sp = sp + 2
你用ret或者ret指令后,sp = sp - 2
还有pop push指令.也是相关的作用,
没有堆栈或者堆栈设置错误.你调用指令根本就不能用,
程序肯定会跳飞.这就是堆栈的作用
至于SP为什么默认等于7 ..因为前面8个字节都是 特殊功能寄存器,别人做cpu只好sp默认等于7了..其实sp默认等于多少都没有关系,因为这东西.初始化的时候..必定要修改的.
至于你说的堆栈区是30H-7FH...根本就没有这种说法,
只要你的单片机有ram 要你设置 80h 90h ..也没有关系.
只是"51"单片机只有128个字节,所以最大只能设置成7Fh
至于为什么要30H开始,因为20H开始时位寻址区.一般给某些特殊数据用,但是你要用也没有关系,0-20H这些地址.是4主.特殊功能寄存器,自然也最好保留,但是你要高兴 从07H开始...也是可以用的,
////////////////////////////////////////
讲了那么多..楼主才给5分.太不够意思了..o(∩_∩)o
看lz问得明显是 51单片机的
SP默认是07H
但是程序总要用ram的..07很多时候都是要被用掉得所以,
一般来说 个开始运行的时候.就会确定好了 堆栈的起始地址
比如你说的30H
那么开始的时候会把 SP = 30H
当然如果你原本吧用的数据都定义在 很后面,
直接不修改sp也是没有关系的
///////////////////////////
补充.先说一下堆栈的作用.
比如你用call指令的时候.
cpu回吧 你的返回地址压入堆栈.比如这个时候sp = 07,返回地址=1122H
那么call后
07H = 11H
08H = 22H
SP = 09H.因为压入2个直接所以变成09//sp = sp + 2
你用ret或者ret指令后,sp = sp - 2
还有pop push指令.也是相关的作用,
没有堆栈或者堆栈设置错误.你调用指令根本就不能用,
程序肯定会跳飞.这就是堆栈的作用
至于SP为什么默认等于7 ..因为前面8个字节都是 特殊功能寄存器,别人做cpu只好sp默认等于7了..其实sp默认等于多少都没有关系,因为这东西.初始化的时候..必定要修改的.
至于你说的堆栈区是30H-7FH...根本就没有这种说法,
只要你的单片机有ram 要你设置 80h 90h ..也没有关系.
只是"51"单片机只有128个字节,所以最大只能设置成7Fh
至于为什么要30H开始,因为20H开始时位寻址区.一般给某些特殊数据用,但是你要用也没有关系,0-20H这些地址.是4主.特殊功能寄存器,自然也最好保留,但是你要高兴 从07H开始...也是可以用的,
////////////////////////////////////////
讲了那么多..楼主才给5分.太不够意思了..o(∩_∩)o
堆栈区和SP堆栈区是30H-7FH,而堆栈操作时从默认SP=07H开始,那么堆栈区是做什么用的呢?没说完整啊,堆栈区到底
已知堆栈区逻辑地址为SS:SP=2600H:1300H,计算物理地址
设一个堆栈段共有100H个字节单元,堆栈的起始地址是1250H:0000H,若在堆栈中有5个字数据,求SS和SP的内容?
微机原理堆栈物理地址SP,
某系统中,已知建立堆栈时SS=2360H,SP=0800H,经过一段时间后,SP的内容变为0700H,则堆栈中有多少个字
一个堆栈从地址1200:0000H开始,他的最后一个偏移地址为0200H,SP的内容为0052H.
堆栈的地址由SP的内容确定,其操作规律是 ?
已知SS=1000H,SP=2000H堆栈段最后一个单元的物理地址为13000H 求堆栈段的断首物理地址 栈顶物理地址
关于单片机堆栈指针sp变化的问题
堆栈操作时物理地址是怎么形成的
设数据元素序列{a,b,c,d,e,f,g}的进堆栈操作和出堆栈操作可任意进行(排除堆栈为空时的出堆栈操作情况),下列哪
汇编小题:(SS)=338AH,(SP)=450H,执行PUSH BX,PUSHF后,堆栈顶部的物理地址是?