- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 μ’nSP?单片机程序设计 汇编语言程序设计 C和汇编的函数相互调用 4.1 汇编语言程序设计 4.2 C和汇编的函数相互调用 4.2.1 函数调用协议 4.2.1 程序调用协议 4.2.1 程序调用协议 4.2.2 在C程序中调用汇编函数 4.2.2 在C程序中调用汇编函数 4.2.2 在C程序中调用汇编函数 4.2.3 在汇编程序中调用C函数 4.2.3 在汇编程序中调用C函数 4.2.3 在汇编程序中调用C函数 SPCE061A IDE 的项目组织结构 汇编 C语言 调用F_SUB_C前的堆栈情况 调用F_SUB_C时的堆栈发生的变化 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 这节主要要讲的内容,包括三个方面 指令系统指的是一个CPU所能够处理的全部指令的集合,是一个CPU的根本属性。比如我们现在所用的CPU都是采用x86指令集的,他们都是同一类型的CPU,不管是PIII、Athlon或Joshua。我们也知道,世界上还有比PIII和Athlon快得多的CPU,比如Alpha,但它们不是用x86指令集,不能使用数量庞大的基于x86指令集的程序,如Windows98。之所以说指令系统是一个CPU的根本属性,是因为指令系统决定了一个CPU能够运行什么样的程序。 计算1~100的累加和 汇编必须有一个主函数的标号“_main”,而且必须声明此“_main”为全局型标号。 用户不用考虑程序代码的实际的物理地址,而是通过伪指令通知编译器把程序代码定位在什么类型的存储单元,具体地址由编译器管理。 程序用伪指令.RAM在数据存储区内声明了一个变量G_Sum,变量名G_Sum实际上代表了变量的地址,对变量进行读写操作时,则需要用[G_Sum]来表示变量中的实际内容。 C的编译器GCC把C语言代码编译为汇编代码,汇编编译器Xasm16对汇编代码进行编译成为目标文件。链接器将目标文件、库函数模块、资源文件连接成整体,形成一个可在芯片上运行的可执行文件。 伪指令 程序指令 立即数 4.1.1 汇编语言的语法格式 1.汇编语言语句格式: [标号:] 指令 [;或// 注释字符] 标号以冒号结束,作为指令所在地址的符号表示。标号按使用范围分为全局标号和局部标号两种; 指令分为硬指令和伪指令两种; 注释仅作为程序编写与阅读时的参考,汇编器不对其作任何处理。注释行必须用分号(;)或双斜线(//)起始,可与指令在同一行,也可在指令的前一行或后一行。 伪指令不必区分字母的大小写,但所有定义的标号包括宏名、结构名、结构变量名、段名及程序名,其字母大小写一律区分开。 4.1.1 汇编语言的语法格式 2.数制、数据类型与参数 μ’nSP?的汇编器将十进制作为默认数制。十六进制可用符号0x或$作为前缀,或用符号H作为后缀。 用双引号或单引号括起 ASCII字符串 H 十六进制 D或不写 十进制 O或Q 八进制 B 二进制 后缀 数制 μ’nSP?的数制及其后缀规定 4.1.1 汇编语言的语法格式 2.数制、数据类型与参数 μ’nSP?汇编指令中所用的数据类型 汇编指令中的参数可以是常数,也可以是表达式。常数参数基本有数值型和字符串型两种。 4.1.1 汇编语言的语法格式 3.全局标号与局部标号 全局标号是指在源程序的各个程序段中均能调用的标号,而局部标号则指仅在各个所定义的程序段中调用的标号。 全局标号原则上可以由任意数量的字母和数字字符组成,但只有前32位是有效的。它可以写在文件中的任何一行上,但必须以字母字符或下划线(_)开头,且标号名后须以冒号(:)来结束。 4.1.1 汇编语言的语法格式 3.全局标号与局部标号 局部标号只有在局部区域内定义才有效。正是这种约束才使得局部标号的定义可以安全地重复使用在整个程序各处而不致产生混乱错误。 局部标号也像全局标号那样最多可有32个字母或数字字符,且必须以字母字符或问号(?)开头。μ’nSP?的汇编器通常规定用问号(?)作为局部标号的前缀或后缀。 在不同的局部区域里所定义的局部标号都有不同的含义,且标号?a是不同于标号a?的。 切忌将诸如“+、-、*、/”这类运算符用在局部标号中。
您可能关注的文档
最近下载
- J16J157 蒸压加气混凝土砌块应用构造.pdf VIP
- 人教版(2024)七年级下册英语Unit 4 Eat Well 单元教学设计(共6课时).docx VIP
- 前期物业服务方案 投标.docx VIP
- 广东省东莞市高级中学2024年高一物理第二学期期末联考试题含解析.doc VIP
- 《支持低空智联网服务的5G网络规划建设技术规范》.pdf VIP
- (最新)有限空间作业安全培训考试试题(+答案).docx VIP
- 网络供应链安全管理制度.docx VIP
- 二手房学区房学位未使用协议.doc VIP
- 五年(2020-2024)高考数学真题分类汇编 专题10 解三角形(原卷版).pdf VIP
- 采购管理中的创新思维与实践.docx VIP
文档评论(0)