您好、欢迎来到现金彩票网!
当前位置:老k棋牌 > 栈寻址 >

相对基址变址寻址方式处理堆栈的一点小问题具体在补充里···

发布时间:2019-06-10 16:12 来源:未知 编辑:admin

  在基址寄存器BP中存放堆栈顶的地址,用位移量表示栈顶到数组第一个元素的距离,变址寄存器则用来访问数组中的每一个元素,那为什么计算有效地址时还是三者相加的,相加后结果不应该是...

  在基址寄存器BP中存放堆栈顶的地址,用位移量表示栈顶到数组第一个元素的距离,变址寄存器则用来访问数组中的每一个元素,那为什么计算有效地址时还是三者相加的,相加后结果不应该是大于三者了吗?大于栈顶不是错了???

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  x86系列中堆栈在内存中是栈底是高地址,栈顶是低地址。所以相加是没错的。但是三者相加的话,栈顶地址加上位移量后指向了栈底,再加上变址寄存器的,那不是大于栈底地址了,那也不对啊,难道变址寄存器中是负值?还有就是X86是倒着的,那哪些是正着存的啊?不好意思,我不懂的太多了用位移量表示栈顶到数组第一个元素的距离,加上位移量怎么会到栈底呢?再说数组是用堆栈来存的吗?通常的push操作,是栈顶先减数的长度,然后存数;pop操作是先取数,再加数的长度。而数组一般是先定义好再用的,定义的时候在内存里开辟一块儿空间给数组,这块空间的起始地址就是数组的引用,比如数组int a[10],开辟了10个int,a就是这块儿空间的起始地址,a[4]就是a的地址加上4个int的长度。

http://drpetermitoff.com/zhanxunzhi/4.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有