云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > keil c语言编程常见错误分析要点

keil c语言编程常见错误分析要点

  • 62 次阅读
  • 3 次下载
  • 2025/5/3 1:28:39

MOV 0x09,#tmp(0x00)

这种情况应该是在这里所有介绍各种情况中效率最高的访问外ram的方法了,请大家记住他。 第3种情况:

uchar xdata * xdata pstr; pstr=\

这中情况也是对的,但效率不如第2种情况。编译后的汇编代码如下。

MOV DPTR, #0x000A ;0x000A,0x000B是在外ram区分配的pstr指针变量地址空间 MOV A, #tmp(0x00) MOV @DPTR, A INC DPTR MOV A, #tmp(0x00) MOVX @DPTR, A

这种方式一般用在内ram资源相对紧张而且对效率要求不高的项目中。 第4种情况:

uchar data * xdata pstr; pstr=\

如果详细看了第1种情况的读者发现这种写法和第1种很相似,是的,同第1 种情况一样这样也是有bug的,但是这次是把pstr分配到了外ram区了。编译后的汇编代码如下。 MOV DPTR, #0x000A ;0x000A是在外ram区分配的pstr指针变量的地址空间 MOV A, #tmp(0x00) MOVX @DPTR, A 第5种情况: uchar * data pstr; pstr=\

大家注意到\前的关键字声明没有了,是的这样会发生什么事呢?下面这么写呢!对了用齐豫的一首老歌名来说就是 “请跟我来”,请跟我来看看编译后的汇编代码,有人问这不是在讲C51吗? 为什么还要给我们看汇编代码。C51要想用好就要尽可能提升C51编译后的效率,看看编译后的汇编会帮助大家尽快成为生产高效C51代码的高手的。还是看代码吧! MOV 0x08, #0X01 ;0x08-0x0A是在内ram区分配的pstr指针变量的地址空间 MOV 0x09, #tmp(0x00) MOV 0x0A, #tmp(0x00)

注意:这是新介绍给大家的,大家会疑问为什么在前面的几种情况的pstr指针变量都用2 byte空间而到这里就用3 byte空间了呢?这是KeilC的一个系统内部处理,在KeilC中一个指针变量最多占用 3 byte空间,对于没有声明指针指向存储空间类型的指针,系统编译代码时都强制加载一个字节的指针类型分辩值。具体的对应关系可以参考KeilC的help中C51 User's Guide。 第6种情况: uchar * pstr; pstr=\

这是最直接最简单的指针变量声明,但他的效率也最低。还是那句话,大家一起说好吗!编译后的汇编代码如下。

MOV DPTR, #0x000A ;0x000A-0x000C是在外ram区分配的pstr指针变量地址空间 MOV A, #0x01 MOV @DPTR, A INC DPTR

MOV DPTR, #0x000A MOV A, #tmp(0x00) MOV @DPTR, A INC DPTR MOV A, #tmp(0x00) MOVX @DPTR, A

这种情况很类似第5种和第3种情况的组合,既把pstr分配在外ram空间了又增加了指针类型的分辨值。

搜索更多关于: keil c语言编程常见错误分析要点 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

MOV 0x09,#tmp(0x00) 这种情况应该是在这里所有介绍各种情况中效率最高的访问外ram的方法了,请大家记住他。 第3种情况: uchar xdata * xdata pstr; pstr=\这中情况也是对的,但效率不如第2种情况。编译后的汇编代码如下。 MOV DPTR, #0x000A ;0x000A,0x000B是在外ram区分配的pstr指针变量地址空间 MOV A, #tmp(0x00) MOV @DPTR, A INC DPTR MOV A, #tmp(0x00) MOVX @DPTR, A 这种方式一般用在内ram资源相对紧张而且对效率要求不高的项目中。 第4种情况: uchar data * xdata pstr; pstr=\

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com