求助:一个很久都没有弄清的概念,谢谢!
请教:
在单片机中:
栈指针SP 和 程序计数器PC ,他们到底是什么东西?
他们分别有什么用?
还有他们有什么区别?
请各位大哥用比较通俗的话
或者比较通俗的例子来表示
因为,我看书老师看不懂。
谢谢!
问题点数:20、回复次数:11Top
1 楼jie_cs()回复于 2006-03-03 15:47:22 得分 0
sp是总是指向ss段的栈顶
pc是指向下一条要执行的指令,是系统隐含的,
比如中断的时候会指向中断程序的入口地址
这些跟计算机组成原理都差不多的Top
2 楼WAWJX(我爱我家乡)回复于 2006-03-03 16:14:51 得分 0
谢谢 大大:
jie_cs()
ss段 是什么啊?
SS 段存储的是数据,还是指令,还是程序?
还有数据存储器的地址指针 DPTR 是什么啊?
谢谢!
Top
3 楼CsharpGame(现为菜鸟)回复于 2006-03-03 19:30:21 得分 0
sp指向作为堆栈区的片内RAM的地址Top
4 楼jie_cs()回复于 2006-03-03 20:06:25 得分 0
我也刚学单片机
一起学习!
我觉得一些基础的东西自己看看书就行了Top
5 楼tyj_3()回复于 2006-03-03 23:16:52 得分 0
单片机中在程序调用和中断时,通常要用一段内存来保护当前程序使用到的数据和寄存器,,起保护数据的作用,SP用来存放堆栈的当前栈顶地址的,通常在RAM中,在程序开始运行时初始化,分为向上和向下生长型,单片机中大多是向下生长型,即PUSH一字节数据时,地址减1,POP时加1
PC是存放下一条将要执行的指令地址.这两个寄存器存放的地址都是系统程序自动执行的,当然你也可以通过程序改变Top
6 楼WAWJX(我爱我家乡)回复于 2006-03-04 08:23:48 得分 0
谢谢 各位大哥!
各位大大的回答真是精彩极了!
还向各位大大请教一个问题:
什么样的地址是必须使用通过DPTR简址寻址来访问的?
是根据什么来的啊?
谢谢!Top
7 楼wanyeye(助人者天助)回复于 2006-03-06 13:24:45 得分 0
双数据指针
为了加速数据块的移动速度Top
8 楼TerryWoo(李慕宁)回复于 2006-03-06 21:47:10 得分 0
看你指的是什么单片机,是51的话,sp是指向RAM中你设置的堆栈区的栈顶指针,由于51单片机中,堆栈是递增的,所以,一般在系统程序运行之初,可以设置堆栈,比如:
STACK EQU 0A0H
MOV SP, #STACK
呵呵。愿意和大家一起学习。Top
9 楼TerryWoo(李慕宁)回复于 2006-03-06 21:51:23 得分 0
程序存储器中的数据或片外RAM,对于52来说指超过片内0FFH以外的RAM必须使用dptr指针。
对于程序存储器,一般可以存放一些数据表格,就可通过movc a, @a+dptr来访问。而所谓的0ffh以外的RAM,则通过movx指令来访问,具体自己去看书吧。书上都说得很清楚呀。呵呵。Top
10 楼TerryWoo(李慕宁)回复于 2006-03-06 21:54:21 得分 0
至于PC么,就是程序计数器,它说白了就是一个计数电路而已。当然受逻辑控制的。呵呵。
原则上不要势图访问它。你可以通过用示波器接在MCU地址线上(不要写任何程序在单片机里)了解它的工作机制。呵呵。看看它是什么波型,画出来看看写写真值表就都明白啦。呵呵。Top
11 楼WAWJX(我爱我家乡)回复于 2006-03-09 08:25:10 得分 0
谢谢各位大哥:
请各位大哥再帮看看:“
求助:各位大大,请帮我看看这个 PS/2 问题,谢谢! ”
这个帖子!
谢谢!Top




