mov sp ,#70h 是什么意思?

org0000hajmpmainorg000bh;T0溢出中断入口地址•ajmptime0org0020hmain:clrp1.5movr1,#0ffhmov... org 0000h
ajmp main

org 000bh ;T0溢出中断入口地址•
ajmp time0

org 0020h
main: clr p1.5
mov r1,#0ffh
mov r2,#00h ;给计数器r2赋初值0

;****************************************************************
mov sp,#70h ;设置堆栈
;****************************************************************

mov tmod,#01h ;设置T0工作方式
mov th0,#3ch ;T0置计数初值
mov tl0,#0b0h
setb et0 ;允许T0溢出中断
setb ea ;cpu开中断
setb tr0 ;启动T0开始计数

wait: cjne r2,#20,wait ;定时时间未到,继续查询等待
acall light ;定时时间到,调用查表求灯光子程序
ajmp wait

;以下是查表求灯光子程序
light: mov r2,#00h ;计数器重新赋初值

inc r1 ;查表求灯光,详细解释见试验5“多位数码显示”
mov a,r1
mov dptr,#tab
movc a,@a+dptr
mov p0,a
cjne a,#0ffh,next
mov r1,#0ffh
next: ret ;子程序返回

;以下是中断服务程序
time0: inc r2 ;计数器加1
mov th0,#3ch ;重置计数初值
mov tl0,#0b0h
reti ;中断返回

tab: db 0fah,0f5h,0ebh,0d7h ;灯光变换表格
db 0afh,5fh,0aah,055h,0f0h,0fh,0ffh
end

mov sp ,#70h 是什么意思? 这条指令对前后的程序有什么影响?sp既然是堆栈指针指令,也就是说这条指令是关于堆栈的操作,那为什么没有PUSH 和pop指令出现?
这条指令的意思是不是说:其下的指令是不是在#70h以后的ram内执行?
为什么要有这条指令,没有行吗?
展开
 我来答
做而论道
高能答主

2011-09-21 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
mov sp ,#70h 是用来设定栈底。
堆栈在 acall light 调用子程序时,就用到了。
另外,执行中断服务程序时,也用到了。

不仅仅是PUSH 和pop指令才用堆栈。

为什么要有这条指令,没有行吗?
--没有,也行,堆栈的栈底,默认值是 07H。
--但是,可能会和其它程序的使用空间发生冲突。
--对于楼主给出的这个小程序来说,应该没有冲突。
华瑞RAE一级代理商
2024-04-11 广告
impulse-4-xfxx是我们广州江腾智能科技有限公司研发的一款先进产品,它结合了最新的技术创新和市场需求。此产品以其卓越的性能和高效的解决方案,在行业内树立了新的标杆。impulse-4-xfxx不仅提升了工作效率,还为用户带来了更优... 点击进入详情页
本回答由华瑞RAE一级代理商提供
百度网友4198c29
2011-09-24 · TA获得超过203个赞
知道答主
回答量:121
采纳率:0%
帮助的人:73万
展开全部
那个是将栈的位置放到别的地方去.有没有用要看实际情况,一般情况下都会给个初值,因为他本身的初值是07H,不够用.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hu85732396
2011-09-22 · 超过25用户采纳过TA的回答
知道答主
回答量:152
采纳率:0%
帮助的人:119万
展开全部
楼上正解,SP只是一个堆栈指针。指向的位置是RAM区的栈底,而你说的下面的指令,是程序,存放在程序存储区的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式