66问答网
所有问题
当前搜索:
栈保存什么信息
单片机堆栈能
保存哪些
寄存器
答:
单片机关于堆栈操作的汇编语言规定:pop data addr;push data addr;所以,其实只要是SRAM映射的,也就是包括所有R0-R7,I/O寄存器等都可以 压入堆
栈保存
的。但是堆栈是个很宝贵的资源。一般在调用子程序时用于保存断点地址,和一些重要的寄存器,如状态寄存器 PSW和容易被子程序修改的寄存器。
消除递归不一定需要使用
栈
答:
5、在大量复杂的情况下,递归的问题无法直接转换成循环◇需要采用工作
栈
消除递归。工作栈提供一种控制结构当递归算法进层时需要将
信息
保留;当递归算法出层时需要从栈区退出信息。三、栈的特点:栈是一种线性表,对于它所有的插入和删除都限制在表的同一端进行,这一端叫做栈的“顶”,另一端则叫做栈...
单片机堆栈溢出后会怎样工作,是不是会复位
答:
当堆
栈保存
的是子程序地址的话,将出现不可预料的结果,执行完后将回不去了。2、如果栈顶设置在高位,比如6FH,如果溢出的话,那么后面压入堆栈的值将保存在一个虚拟的空间中,也就是80H之后的RAM空间,这个RAM空间是不存在的,因此会造成结果不正确,保存的是地址的话,也会无法回到保存位置。
如何设置堆栈空间?在中断响应时
哪些
变量值要入
栈
答:
在Win32中,寄存器esp
存放
着
栈
底指针,栈是向低地址方向生长,因此esp指向栈顶元素堆栈对比(操作系统):由编译器自动分配释放,存放函数的参数值,局部变量的值等。堆栈 是一个特定的
存储
区或寄存器,它的一端是固定的,另一端是浮动的。堆这个存储区存入的数据,是一种特殊的数据结构。所有的数据...
递归算法一定使用
栈
吗?
答:
5、在大量复杂的情况下,递归的问题无法直接转换成循环◇需要采用工作
栈
消除递归。工作栈提供一种控制结构当递归算法进层时需要将
信息
保留;当递归算法出层时需要从栈区退出信息。三、栈的特点:栈是一种线性表,对于它所有的插入和删除都限制在表的同一端进行,这一端叫做栈的“顶”,另一端则叫做栈...
单片机堆栈溢出后会怎样工作,是不是会复位?
答:
当堆
栈保存
的是子程序地址的话,将出现不可预料的结果,执行完后将回不去了。2、如果栈顶设置在高位,比如6FH,如果溢出的话,那么后面压入堆栈的值将保存在一个虚拟的空间中,也就是80H之后的RAM空间,这个RAM空间是不存在的,因此会造成结果不正确,保存的是地址的话,也会无法回到保存位置。
栈
的实例应用有
哪些
答:
栈
是一种数据结构,基本上稍微复杂一点的程序就会用到。比如说,遍历一个图,可以用到栈。搜索一个解,会用到栈。即便程序代码不用到栈,程序运行本身也会用到栈,程序的调用序列是以栈的形式存在的。例如:include<stdio.h> include<stdlib.h> include<malloc.h> include<iostream> using namespace...
单片机堆栈溢出后会怎样工作,是不是会复位?
答:
当堆
栈保存
的是子程序地址的话,将出现不可预料的结果,执行完后将回不去了。2、如果栈顶设置在高位,比如6FH,如果溢出的话,那么后面压入堆栈的值将保存在一个虚拟的空间中,也就是80H之后的RAM空间,这个RAM空间是不存在的,因此会造成结果不正确,保存的是地址的话,也会无法回到保存位置。
...就是存在
栈
中的数据可以共享,这是
什么
意思?
答:
是这样的 a=3就是a指向3,然后a = 4就是a指向4,这是编译后的运行方式,和代码中的引用传递是有区别的。区别在于,a值的改变不会影响到b的值,即使a和b是对象,b=c(c是另一个对象),a的值也不变;但是b.d=c,那么a.d也会变成c。你可以这样想:值传递的变量就是指向值的指针;而...
请问大家 汇编语言中 子程序调用指令和跳转指令有
什么
区别?谢谢...
答:
简单点说,call指令在跳转前
保存
当前指令地址,而jmp一类的指令不保存当前指令的地址。详细点说:call指令在跳转前会在
栈
中保存当前的程序计数器(IP)的值(有必要的话还要保存CS),保存完IP的值后,再去执行跳转指令。即相当于:push CS (没有这种指令,有没有这一句还要看调用的类型:far/near...
棣栭〉
<涓婁竴椤
4
5
6
7
9
10
8
11
12
13
涓嬩竴椤
灏鹃〉
其他人还搜