OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8597|回复: 7

[MCS-51]汇编程序中函数返回跑飞问题

[复制链接]

1

主题

3

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2012-5-17
在线时间
0 小时
发表于 2012-6-19 15:53:12 | 显示全部楼层 |阅读模式

汇编程序中函数返回跑飞问题

代码如下:
  ORG  0000H
  LJMP Start

Start: ACALL Init
Main: ACALL TlTr
  LJMP Main

TlTr: MOV  1001H,#03FH ;左移初始值
  MOV  1002H,#0FCH ;右移初始值
  ACALL TLeft
  ACALL TRight
  RET                              //跑飞位置1

TLeft: MOV  1000H,#006H ;循环次数
  MOV  A,1001H
  USH ACC
LLoop: SETB 1.2
  OP  ACC
  MOV  0,A
  CLR  1.2
  RR  A
  USH ACC
  ACALL Delay
  DEC  1000H
  MOV  A,1000H
  JNZ  LLoop
  RET                              //跑飞位置1

TRight: MOV  1000H,#006H ;循环次数
  MOV  A,1002H
  USH ACC
RLoop: SETB 1.2
  OP  ACC
  MOV  0,A
  CLR  P1.2
  RL  A
  PUSH ACC
  ACALL Delay
  DEC  1000H
  MOV  A,1000H
  JNZ  RLoop
  RET                              //跑飞位置1
        ;程序初始化函数
Init: SETB P1.1
  MOV  P0,#0FFH
  CLR  P1.1
  SETB P1.3
  MOV  P0,#00H
  CLR  P1.3
  RET
        ;延时函数
Delay: MOV  R5,#0EAH
  MOV  R6,#060H
DLoop: SETB C
  MOV  A,R6
  SUBB A,#00H
  MOV  A,R5
  SUBB A,#00H
  JC  DEnd
  MOV  A,R6
  DEC  R6
  JNZ  DLoop
  DEC  R5
  LJMP DLoop
DEnd: RET

  END 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2012-6-19 19:27:31 | 显示全部楼层
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2012-7-19
在线时间
2 小时
发表于 2012-7-19 13:43:31 | 显示全部楼层
压栈、出栈不对称。
回复 支持 反对

使用道具 举报

3

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
63
金钱
63
注册时间
2012-10-8
在线时间
1 小时
发表于 2013-1-18 11:34:58 | 显示全部楼层
回复【3楼】freewarm:
---------------------------------
怎么不对称啊,没这个概念,给说一下吧
大家好才是真的好
回复 支持 反对

使用道具 举报

4

主题

13

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2012-12-18
在线时间
0 小时
发表于 2013-1-18 11:49:14 | 显示全部楼层
没事就不要用压栈出站,压的和出的不一样能不飞吗
回复 支持 反对

使用道具 举报

13

主题

202

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2012-10-27
在线时间
65 小时
发表于 2013-2-8 14:31:24 | 显示全部楼层
回复【楼主位】fly928sky:
---------------------------------
都没有初始化SP就敢CALL???
回复 支持 反对

使用道具 举报

13

主题

202

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2012-10-27
在线时间
65 小时
发表于 2013-2-8 14:31:55 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
汇编忙、、、、装~~
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2014-4-10
在线时间
0 小时
发表于 2014-4-16 23:08:44 | 显示全部楼层
16位地址应该用DPTR:
MOV DPTR,#1001H
MOV 1001H,#03FH在汇编语句里是没有的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 22:54

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表