- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机各硬件基础报告
实验名称:实验4:寻址方式和指令系统 姓名:袁鹏学号:XX 实验班号:33机器号:42 一.实验目的 1.了解MSP430G2xxx汇编格式指令和常用寻址方式 2.了解C语言函数调用过程 3.通过反汇编了解C编译器实现初始化变量的方法 4.掌握计算机中数的表示和编码 二.实验任务 1)程序用到了哪些指令? call jmp jne ret br 2)程序用到了哪几种寻址方式? 立即数寻址 寄存器寻址 绝对地址寻址 寄存器相对寻址 3)用单步执行命令F11,跟踪函数delay的调用和返回,用view/register和view/memory查看堆栈指针SP和堆栈内的内容,记录堆栈指针SP和堆栈内容的变化; SP:0x03fe0x03fc(执行delay函数时)0x03fe0x03fc...堆栈中只有R15的值发生变化,因为R15存放了变量i的值,因此不断变化。 4)修改l4_,将变量i定义为全局变量,通过反汇编的代码,比较与定义为局部变量的不同; 汇编代码长度增加变量i的存储地址由R15变为RAM里面的0x0200 5)修改L4_,将变量i的类型从unsignedint类型,改为unsignedlong类型,反汇编看看函数delay的代码发生了什么变化?程序执行的结果有什么不同?为什么?。 delay函数的地址变到main函数上部,i变量由两个字节变为四个字节 delay函数的执行时间变长,LED灯的变化速率变慢。因为变量i从int转换为long,因此i的增加速率变慢,dealy函数的执行时间也就变长。 2.了解C语言程序的执行过程 实验中查看到该地址的值是多少?程序执行的第一条指令是什么指令?main函数的入口是单片机上电就被执行的第一条语句吗? 未去除runto: PC=0xc00c 0XFFFE~0XFFFF:0X00C0 第一条指令是关闭看门狗,00c00c40b25a#0x5a80,wdtctl main函数的入口就是单片机上电执行的第一条语句。 去除runto: PC=0xc000 0XFFFE~0XFFFF:0X00C0 第一条指令是初始化sp,00c#0x400,sp main函数的入口不是单片机上电执行的第一条语句。 3.C语言中带初始化变量的定义及其实现 在debug下反汇编程序,比较一个数组分别定义成const型常量、全局变量、局部变量三种不同形式,系统在初始值的实现上有何不同? 定义成const型常量: 从上电复位后执行的第一条指令,到main()函数中关闭看门狗的语句: 由于数组已经被定义为const型,因此数组一开始就被分配在0xC000中并完成初始化,上面的代码完成了初始化SP和开始执行main函数的作用。 定义成全局变量: 数组被定义为全局变量时开始没有被初始化,但是数组被分配在0x200地址里,数组里面数据存储在0xC000中,因此上电后开始执行初始化SP,以及将0xC000的赋给R13,将0x200赋给R12,接着跳转执行__data16_memcpy,并在memcpy函数里完成对数组初始化,然后返回执行main函数。 定义为局部变量: 数组被定义为局部变量时开始没有被初始化,也没有分配存储地址,但是数据里的数据还是存储在0xC000中,上电后执行到main函数里初始化数组的语句时程序将0xC000赋给R15,接着用SP和R15完成初始化数组,并将数组分配在0x3FA地址中。 定义为static型局部变量时: 数组被定义为static型局部变量时,和定义为全局变量时类似,数组被一开始没有被初始化,但是数组被分配在0x200地址里,数组里面数据存储在0xC000中,因此上电后开始执行初始化SP,以及将0xC000的赋给R13,将0x200赋给R12,接着跳转执行__data16_memcpy,并在memcpy函数里完成对数组初始化,然后返回执行main函数。 4.掌握计算机中数的表示和编码 假设某内存单元的字内容为0xFF06,试问该内容看作无符号数是多少?看作带符号数是多少?看作一条指令的机器码,如何利用DEBUG下的命令知道表示一条什么指令?如果内存单元的内容为0x5439,看作无符号数、看作带符号数、看作一条指令的机器码,分别表示什么?看作ASCII码,表示的是哪两个字符?如何理解存放在内存中的内容?0XFF06看作无符号数是65286,看作有符号数是-250。 建立一个C项目,在DEBUG下,利用memory命令,将RAM区的内容改为0
您可能关注的文档
最近下载
- Riello利雅路燃气燃烧器rs310 rs410 rs510 rs610机械调节中文说明书.pdf VIP
- 面神经炎的教案.pptx VIP
- 2025年四川省政府采购评审专家考试题库附含答案.docx VIP
- 负离子的亲和能和半径的理论的研究及和CO2气体碰撞过程的实验的研究.pdf
- 小学生主题教育班会 不挑食我最棒 课件(共27张PPT).pptx VIP
- 40PPT带你了解智能汽车传感器技术(最全面).pptx VIP
- 2025年天津市政府采购评审专家考试真题含答案.docx VIP
- 【北师大版】《心理健康》五年级下册 第19课《今天我当家》 课件.pptx VIP
- 遥感技术在土地资源调查中的应用.pptx VIP
- 中国茶的起源与历史茶文化介绍PPT课件.pptx VIP
原创力文档


文档评论(0)