预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共34页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

微机原理与应用 计算机接口实验报告二 实验6汇编语言程序结构 实验7汇编语言程序设计 实验6汇编语言程序结构 一、实验目的 1.掌握汇编语言项目上机过程 2.掌握汇编语言程序结构 3.掌握汇编语言程序设计和调试方法 4.掌握MSP430F1xx基本I/O控制方法 二、实验任务 1.学习汇编指示性语句(可在simulator下完成) 1.1任务要求 编写下面程序L6_directives.s43(程序清单见后页,该程序只是为了学习指示性语句,程 序本身并没有实现什么特定功能),利用project/remove移出模板文件asm.s43,点击 project/add/files将L6_directives.s43添加到项目中。 1)利用EW430下的view/memory查看DATA16_C段中定义的存储单元内容和地址,在 memory/go的窗口内输入存储单元的符号(如number1)即可查看到该符号对应的存储单元 地址和内容,注意在L6_directives.s43程序中使用这些存储单元的内容和地址的方法;利用 view/disassembly反汇编程序,对比源程序,利用每条指令后的注释,学习其中用到的指示 性操作,如:如何定义一个存放在RAM中的变量、如何应用该变量,如何定义一个存放在ROM 的常量、如何用该常量等,并能在今后的程序设计中使用。 2)在L6_directives.s43中,number4和number1分别被定义成了什么?二者有何不同? #number4和#number1这两个操作有何不同?MOV#number4,R7和MOVnumber4,R7执行的 结果会相同吗?为什么? 1.2任务实现 1)DATA16_C段中定义的存储单元内容和地址如下所示: 存储内容存储地址 number1(DB字节类型)0a,0b,61,621136h~1139h number2(DW字类型)12,34,56,78,9a,bc,de,0f113ah~1141h string(DB字符串)4f,6e,65,20,57,6f,72,6c,1142h~1155h 64,2c,20,4f,6e,65,20,44, 72,65,61,6d stringend(DB字节字符类451156h 型) 在L6_directives.s43程序中使用这些存储单元的内容和地址的方法如下所示: MOV.Bnumber1,R9;传送存储单元内容到寄存器中 MOV.Wnumber2,R12;传送字变量内容到寄存器中 用符号寻址方式和寄存器寻址方式,读取存储单元number1和number2的内容到寄存器。 MOV.Bnumber1,0(R11);存储单元内容传送 用符号寻址方式和变址寻址方式,读取存储单元number1内容到地址为0(R11)的存储单元。 MOV#stringend-string,R13;利用两地址差值计算串长度 用立即数寻址方式,计算两地址差值(string的存储空间字节数),保存到R13。 2)①number4和number1分别被定义成了什么?二者有何不同? number4的定义方式:#definenumber40x90 number1的定义方式:RSEGDATA16_C number1DB0x0a,0x0b,'a','b' 可见,number4作为符号被定义成常量0x90;number1定义成字节常量,其值是字节常 量的地址1136h。 ②#number4和#number1这两个操作有何不同? #number4和#number1都是立即数寻址方式,但是#number4得到number4的值0x90,而 #number1得到字节常量的地址(number1的值)1136h。 ③MOV#number4,R7和MOVnumber4,R7执行的结果会相同吗? 不同。#number4是立即数寻址方式,得到number4的值0x90;number4是符号寻址方式, 得到地址为0x90的存储单元的内容。 2.控制发光二极管的显示变化 2.1任务要求 在设计实验板上发光二极管与单片机的连线,编写一个小程序控制8个发光二极管按下 面的2种规律循环显示,即规律1->规律2->规律1->规律2->……,如此反复。 1)规律1:8个LED灯逆时针一个一个单独点亮,即L1亮->L2……L7亮->L8亮,每次只 有一个灯亮,其他灯灭; 2)规律2:8个LED灯两两点亮,顺序为L1和L8,L2和L7,L3和L6,L4和L5,每次 只有两个灯亮,其他灯灭; 注意:在灯的状态变化中,需留一定延时,以便视觉能感受到灯的亮灭,要求编