- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
北航17系微机原理实验报告二
微机原理实验报告实验二 汇编语言和 C 语言的交互编程(PC 机模拟运行)实验目的了解汇编程序对 C 程序中的全局变量的访问和方法的调用。了解 C 程序对汇编程序的调用。掌握汇编语言和 C 语言交互调用的 ARTPCS 规则。掌握 IAR 集成开发环境下工程的建立和基本配置。实验设备PC 计算机,Windows XP 操作系统和 IAR 开发环境。实验内容汇编程序访问 C 程序中的全局变量。汇编程序调用 C 程序中的方法。C 程序调用汇编程序。实验步骤汇编程序访问 C 程序中的全局变量基于 C 工程模板新建工程项目单击 New document,新建文件,保存文件,为文件命名并保存成汇编格式。将新建的汇编文件添加到工程项目中。 右键单击”test2_1-Debug”,后续操作如图所示。在 C 文件中自定义一个全局变量。 注意,C 文件可以是自动生成的 main.c,也可以是新建的其它 C 文件。C 文件的新建 和添加到工程中的方式类似于汇编文件,不再赘述。在新建的汇编文件中编写汇编程序,让汇编程序访问 C 文件中定义的全局变量。编译并调试程序,在程序调试的状态下将定义的全局变量添加到观察窗口 Watch 中。 在调试程序的同时,观察全局变量的值的变化。汇编程序调用 C 程序中的方法在工作空间(workspace)中基于 C 工程模板新建工程。新建工程的方法同实验 1。新建汇编文件和C文件,另存为,命名,保存,并将新建的文件添加到工程中。新 建文件和将文件添加到工程中的方法同实验1。在C文件中编写C程序,实现5个数的相加,并将结果返回。在汇编程序中编写汇编程序,在汇编程序处给定5个加数,并调用C文件中的C程 序,实现5个加数相加,并在汇编程序中观察相加的结果。C 程序调用汇编程序在工作空间中新建基于 C 工程模板的项目,命名并保存在自己指定的路径下。 新建项目的方法同实验 1新建汇编文件并添加到工程中。在汇编文件中编写汇编程序实现字符串的复 制,并声明汇编字符串复制函数能够被外部程序调用。进行工程配置,将 C 语言和汇编互相调用的访问类型(process type)由默认 的 Thumb 模式改为 ARM 模式,其它配置默认。在 main.c 中声明调用汇编字符串复制函数,并在 main()函数体中调用汇编字 符串复制函数对自己所给的字符串进行复制。并用 printf 函数打印出复制前 后所定义字符串变量中存储的字符串。) 让程序进入调试状态,打开 view 中的 Terminal I/O 窗口,运行程序,在 Terminal I/O 窗口中可以观察到 printf 函数的输出结果实验程序及结果汇编程序访问 C 程序中的全局变量实验代码:Main.c:int h=0;asm.s: NAME ARMCODE PUBLIC __iar_program_startSECTION .intvec : CODE (2) CODE32 __iar_program_start B ARMCODE SECTION .text:CODE(2) CODE32 IMPORT hARMCODE LDR R1,=h LDR R0,[R1] ADD R0,R0,#2 STR R0,[R1] MOV PC,LR END运行截图运行结果分析该程序调用了C语言中的全局变量h,并且将h的值+2后再赋给h。因此每运行一次h的值便+2。图为运行4次后,全局变量h的值变为16。汇编程序调用 C 程序中的方法实验代码ARM_add.s: NAME add PUBLIC __iar_program_startSECTION .intvec: CODE (2) CODE32__iar_program_start B Reset SECTION .text: CODE (2) CODE32 ResetMOVSP,#0x1F0000ADDSP,SP,#0x20 IMPORT addSTRLR,[SP,#-4]!MOV R0,#0x1MOV R1,#0x2MOV R2,#0x3MOV R3,#0x4MOV R4,#0x5STR R4,[SP,#-4]!BLaddADDSP,SP,#4 LDR PC,[SP],#4 ENDmain.c:intadd(int a,int b,int c ,int d,int e){return(a+b+c+d+e);}运行截图运行结果分析根据ARTPCS规则,程序使用R0~R3传递前四个参数,第五个参
您可能关注的文档
- 2018届高三一轮复习第四课--探究世界的本质.ppt
- 2018届高三一轮复习哲学第二课百舸争流的思想.ppt
- 2018届中考化学(人教版)总复习教材过关课件:第六单元-碳和碳的化合物-(共41张PPT).ppt
- 2018届中考化学(人教版)总复习教材过关课件:第二单元-我们周围的空气-(共44张PPT).ppt
- 2018届中考化学(人教版)总复习教材过关课件:第七单元-燃料及其利用-(共26张PPT).ppt
- 2018届高考化学第一轮考点专题突破复习课件33.ppt
- 2018届中考物理复习课件:专题五-.ppt
- 2018年单独招生面试模拟试题大汇总.doc
- 2018届中考化学(人教版)总复习教材过关课件:第八单元-金属和金属材料-(共56张PPT).ppt
- 2018年高考化学复习备考的思考.ppt
文档评论(0)