计硬基础实验报告2

计硬基础实验报告2

ID:45614535

大小:117.12 KB

页数:9页

时间:2019-11-15

计硬基础实验报告2_第1页
计硬基础实验报告2_第2页
计硬基础实验报告2_第3页
计硬基础实验报告2_第4页
计硬基础实验报告2_第5页
资源描述:

《计硬基础实验报告2》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验名称:寻址方式和指令系统(实验4)姓名:学号:实验目的1.了解MSP430G2xxx汇编格式指令和常用寻址方式;2.了解C语言函数调用过程;3.通过反汇编程序代码,掌握研究计算机底层问题的基本方法;4.掌握计算机中数的表示和编码。实验基本任务1.汇编格式指令和寻址方式的学习(可在simulator下完成)L4_l.c源程序见下,建立C项目,进入DEBUG状态,点击view/disassembly,在反汇编窗口得到L4_l.c汇编格式指令的程序代码,如图4-1和图4-2,阅读该程序的汇编格式代码,思考:L4_l.c程序清单(提供电子版):^include〃i()43

2、0.h"voiddelay();//unsignedinti;//定义全局变量intmain(void){WDTCTL=WDTPW+WDTHOLD;//关闭看门狗//设置端口2为功能选择寄存器和2,使P2为基本输入输出功能,P2.0连接L1指示灯LEDP2SEL二0;P2SEL2=0;P20UT二Oxff;P2DIR二Oxff;for(;;){P2OUT「P2OUT;delay();};}voiddelay(){unsignedinti;for(i二0;i<0xffff;i++);//设置端口2输出的初值为Oxff//设置端口2为输出方向//主循环//将端口2的值取反

3、后输出//延时//定义局部变量//延时1)程序用到了哪些指令?答:mov.w/call/clr・b/mov.b/inv.b/jmp/push.w/decd.w/add.w/clr.w/jne/ret/br2)程序用到了哪几种寻址方式?答:立即数寻址、寄存器寻址、绝对地址寻址、寄存器相对寻址3)用单步执行命令F11,跟踪函数delay的调用和返回,用view/register和view/memory查看堆栈指针SP和存储系统堆栈区域的内容,记录堆栈指针SP和堆栈内容的变化;答:程序刚开始时SP指向0x400,进入main函数之后SP自动-2变为0x03FE,执行dela

4、y函数时,SP变为0x03FC,在delay中SP的值一直为0x03FC,delay循坏结束SP又变为0x03FE,之后一直循环变化。堆栈中只有R15的值发生变化,因为R15存放了变量i的值,因此不断变化。4)修改L4_1.C,将变量i定义为全局变量,通过反汇编的代码,比较与定义为局部变量的不同;答:汇编代码长度增加,变量i的存储地址rhR15变为RAM里面的0x02005)修改L41.C,将变量i的类型从unsignedint类型,改为unsignedlong类型,反汇编看看函数delay的代码发生了什么变化?程序执行的结果有什么不同?为什么?(需在实验板上运行)。

5、答:delay函数的地址变到main函数上部,i由两个字节变为四个字节,delay函数的执行时间变长,LED灯的变化速率变慢。因为变量i从int变为long,因此i的增加速率变慢,delay函数的执行时间也就变长。设计连线:将P2.0引脚与L1相连,连线图如下:修改后的程序如下:#include"io430.h"voiddelay();//unsignedinti;//定义函数变量intmain(void){WDTCTL二WDTPW+WDTHOLD;//关闭看门狗//设置端口2为功能选择寄存器和2,使P2为基本输入输岀功能,120连接L1指示灯LEDP2SEL=0;/

6、/设置端口2输出的初值为Oxff//设置端口2为输岀方向//主循环//将端口2的值取反后输出//延吋//定义函数变量//延时P2SEL2二0;P20UT二Oxff;P2DIR=0xff;for(;;){P20UT="P20UT;delay();};}voiddelay(){unsignedlongi;for(i=0;KOxffff;i++);1.了解C语言程序的执行过程(可在simulator方式下完成)指令计数寄存器PC决定CPU取指令的地址,所以PC寄存器的内容决定了程序的流程。已知MSP430G2XXX单片机复位后,PC寄存器从存储器0xFFFE~0xFFFFH

7、单元获取一个字内容作为执行第一条指令的地址。以L4_1.C的项目为例,请问实验屮查看到该地址的值是多少?程序执行的第一条指令是什么指令?main函数的入口是单片机上电就被执行的第一条语句吗?解:实验中PC寄存器执行第一条指令的地址的值是OxCOOCo程序执行的第一条指令是WDTCTL=WDTPW+WDTHOLD;//关闭看门狗00C00C40B25A800120mov.w#0x5A80,&UDTCTLmain函数的入口不是单片机上电执行的第一-条语句,第一条语句是初始化SP:programslstl:00C00040310400mov.w#0x400

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。