POP direct
第一条指令称之为推入,就是将direct中的内容送入堆栈中,第二条指令称之为弹出,就是将堆栈中的内容送回到direct中.推入指令的执行过程是,首先将SP中的值加1,然后把SP中的值当作地址,将direct中的值送进以SP中的值为地址的RAM单元中.例:
MOV SP,#5FH
MOV A,#100
MOV B,#20
PUSH ACC
PUSH B
则执行第一条PUSH ACC指令是这样的:将SP中的值加1,即变为60H,然后将A中的值送到60H单元中,因此执行完本条指令后, 内存60H单元的值就是100,同样,执行PUSH B时,是将SP+1,即变为61H,然后将B中的值送入到61H单元中,即执行完本条指令后,61H单元中的值变为20.
POP指令的在单片机中执行是这样的,首先将SP中的值作为地址,并将此地址中的数送到POP指令后面的那个direct中,然后SP减1.
接上例:
POP B
POP ACC
则执行过程是:将SP中的值(现在是61H)作为地址,取61H单元中的数值(现在是20),送到B中,所以执行完本条指令后B中的值是20,然后将SP减1,因此本条指令执行完后,SP的值变为60H,然后执行POP ACC,将SP中的值(60H)作为地址,从该地址中取数(现在是100),并送到ACC中,所以执行完本条指令后,ACC中的值是100.
这有什么意义呢 ACC中的值本来就是100,B中的值本来就是20,是的,在本例中,的确没有意义,但在实际工作中,则在PUSH B后一般要执行其他指令,而且这些指令会把A中的值,B中的值改掉,所以在程序的结束,如果我们要把A和B中的值恢复原值,那么这些指令就有意义了.
还有一个问题,如果我不用堆栈,比如说在PUSH ACC指令处用MOV 60H,A,在PUSH B处用指令MOV 61H,B,然后用MOV A,60H,MOV B,61H来替代两条POP指令,不是也一样吗 是的,从结果上看是一样的,但是从过程看是不一样的,PUSH和POP指令都是单字节,单周期指令,而MOV指令则是双字节,双周期指令.更何况,堆栈的作用不止于此,所以一般的计算机上都设有堆栈,单片机也是一样,而我们在编写子程序,需要保存数据时,常常也不采用后面的办法,而是用堆栈的办法来实现.
例:写出以下单片机程序的运行结果
MOV 30H,#12
MOV 31H,#23
PUSH 30H
PUSH 31H
POP 30H
POP 31H
结果是30H中的值变为23,而31H中的值则变为12.也就两者进行了数据交换.从这个例程能看出:使用堆栈时,入栈的书写次序和出栈的书写次序必须相反,才能保证数据被送回原位,不然就要出错了.
作业:在MCS51下执行上面的例程,注意观察内存窗口和堆栈窗口的变化.
11课:单片机算术运算指令
作者: 来源:本站原创 点击数: 2478 更新时间:2007年08月15日
不带进位位的单片机加法指令
ADD A,#DATA ;例:ADD A,#10H
ADD A,direct ;例:ADD A,10H
ADD A,Rn ;例:ADD A,R7
ADD A,@Ri ;例:ADD A,@R0
用途:将A中的值与其后面的值相加,最终结果否是回到A中.
例:MOV A,#30H
ADD A,#10H
则执行完本条指令后,A中的值为40H.
下面的题目自行练习
MOV 34H,#10H
MOV R0,#13H
MOV A,34H
ADD A,R0
- 51单片机例程 > 10课:单片机数据传送类指令
-
10课:单片机数据传送类指令
下载该文档 文档格式:DOC 更新时间:2008-03-02 下载次数:0 点击次数:3文档基本属性 文档语言: Simplified Chinese 文档格式: doc 文档作者: Administrators 关键词: 主题: 备注: 点击这里显示更多文档属性 经理: 单位: 分类: 创建时间: 上次保存者: 修订次数: 编辑时间: 文档创建者: 修订: 加密标识: 幻灯片: 段落数: 字节数: 备注: 演示格式: 上次保存时间:
- 下载地址 (推荐使用迅雷下载地址,速度快,支持断点续传)
- DOC格式下载
- 更多文档...
-
上一篇:单片机C51串口中断接收和发送测试例程(含通信协议的实...
下一篇:深圳市英蓓特信息技术有限公司ARM
点击查看更多关于51单片机例程的相关文档
- 您可能感兴趣的
- pic单片机定时器例程 单片机例程 pic单片机pwm例程 80c51单片机英文资料 51系列单片机开发宝典 51系列单片机 51单片机应用实例下载 mcs51单片机 51单片机学习
- 大家在找
-
- · 中级花卉园艺工
- · 粗集料筛分规范
- · 会计基础考试题
- · 甘肃省委副秘书长名单
- · 数控车床后置刀架编程
- · 第三十三中学
- · 教师分层培养实践探索
- · 耳鼻喉科三基试题
- · 中国外运江苏分公司
- · 中专学历查询真伪系统
- · 二手摩擦压力机
- · 冰天加速1.41免费版
- · 汉译英翻译词典
- · 珠宝店面设计
- · 示范性院校建设方案
- · 青海水电高级技工学校
- · 广州印花厂招工
- · 汽车理论习题答案
- · 安徽老板电话
- · 论文脚注格式
- · 重庆驾驶员考试题
- · 云柴4102柴油机的价格
- · 毛概课堂ppt演讲
- · 十堰东风60厂地址
- · 西安80坐标系的带号
- · 席慕容散文txt
- · 前列腺增大
- · 主神池最新章节txt
- · hushi
- · qq飞车刷车bug大全
- 赞助商链接