片机原理及应用教程(C语言版) 周国运 第4章 单片机C语言及程序设计.pptVIP

片机原理及应用教程(C语言版) 周国运 第4章 单片机C语言及程序设计.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.9.2 C51程序与汇编程序混合编程 表4-10 C51利用寄存器传递参数规则 参数号 char int long, float 一般指针 1 R7 R6,R7 (低字节) R4~R7 R1R2R3(R3为存储区, R2为高地址, R1为低地址) 2 R5 R4,R5 (低字节) R4~R7 或存储区 R1R2R3或存储区 3 R3 R2,R3 (低字节) 存储区 R1R2R3或存储区 4.9.2 C51程序与汇编程序混合编程 2、函数返回值的传递 当函数有返回值时,通过寄存器传递。 表4-11 C51函数返回值传递规则 返回类型 使用的 寄存器 说 明 bit C(进位标志) 由进位标志位返回 char或1字节指针 R7 由R7返回 int或2字节指针 R6,R7 高字节在R6,低字节在R7 long R4~R7 高字节在R4,低字节在R7 float R4~R7 32位IEEE格式 一般指针 R1~R3 R3为存储区,R1为低地址 4.9.2 C51程序与汇编程序混合编程 四、汇编语言文件及函数编写规则 汇编语言文件的构成主要有:定义模块名、函数声明、公共函数声明、引用函数声明、引用变量声明、函数定义等部分。 1、定义模块 对汇编语言文件定义模块名,一般一个文件为一个模块,也可以多个文件为同一个模块名。模块定义格式如下: NAME 模块名 定义模块要放在文件的开始。 例如: NAME EXAMP 4.9.2 C51程序与汇编程序混合编程 2、函数声明 即对本模块定义的函数作声明,其格式为: ?PR?函数名?模块名 SEGMENT CODE 格式中的函数名规则如上面一所述。 例如: ?PR?DISPLAY?EXAMP SEGMENT CODE ?PR?_RIGHT?EXAMP SEGMENT CODE ?PR?_?MUSIC?EXAMP SEGMENT CODE 说明:函数的声明放在文件的前面,一般在模块定义之后,并且紧接着模块定义。 4.9.2 C51程序与汇编程序混合编程 3、公共函数声明 如果函数在其它文件(模块)中调用,必须作公共函数声明。声明格式为: PUBLIC 函数名 例如: PUBLIC DISPLAY PUBLIC _RIGHT PUBLIC _?MUSIC 声明公共函数应放在函数声明之后。 4.9.2 C51程序与汇编程序混合编程 4、引用函数声明 如果在汇编程序中引用了其它文件中的函数,必须作引用声明。声明格式为: EXTRN CODE(函数名) 例如: EXTRN CODE(KEY) EXTRN CODE(_COUNT) 函数引用声明中的“KEY” 函数不传递参数;“_COUNT”函数通过寄存器传递参数。 4.9.2 C51程序与汇编程序混合编程 5、引用变量声明 如果在汇编程序中引用了其它文件中的变量,必须作引用声明。声明格式为: EXTRN 存储区(变量名) 其存储区域类型如表4-2所示的7种类型。 例如: EXTRN DATA(TIMER_SEC) EXTRN IDATA(DIS_BUF) ENTRN XDATA(SEND_BUF) 4.9.2 C51程序与汇编程序混合编程 6、函数编写格式 汇编语言函数的格式如下: RSEG ?PR?函数名?模块名 函数名: …… …… RET(或RETI) 4.9.2 C51程序与汇编程序混合编程 五、汇编语言文件编写举例 例4-6 编写一个完整的汇编语言程序文件,文件包含三个函数,分别是定时器/计数器T1产生方波信号的中断函数、循环右移多位函数和循环左移多位函数; 参数传递:T1的计数初值通过全局变量T1_H、T1_L传递。 左移、右移函数都有两个入口参数(被移位的数、移位的位数)和返回值(被移位后的数) ,要求通过寄存器传递。所有参数都是无符号字符型数据。 4.9.2 C51程序与汇编程序混合编程 程序如下: NAME EXAMP ;定义模块名 ?PR?T1_INT?EXAMP SEGMENT CODE ?PR?_RIGHT?EXAMP SEGMENT CODE ?PR?_LEFT?EXAMP SEGMENT CODE PUBLIC _RIGHT ;公共函数声明 PUBLIC _LEFT EXTRN DATA(T1_H) ;引用外部变量声明 EXTRN DATA(T1_L) 4.9.2 C51程序与汇编程序混合编程 CSEG AT 001B

您可能关注的文档

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档