MSP汇编语言介绍实用教案

上传人:辰*** 文档编号:90616668 上传时间:2022-05-15 格式:PPTX 页数:32 大小:880.47KB
收藏 版权申诉 举报 下载
MSP汇编语言介绍实用教案_第1页
第1页 / 共32页
MSP汇编语言介绍实用教案_第2页
第2页 / 共32页
MSP汇编语言介绍实用教案_第3页
第3页 / 共32页
资源描述:

《MSP汇编语言介绍实用教案》由会员分享,可在线阅读,更多相关《MSP汇编语言介绍实用教案(32页珍藏版)》请在装配图网上搜索。

1、一、单片机基本(jbn)结构 CPU:由运算器,控制器和寄存器组成,精简指令集(RISC); 存储器:存储程序,数据以及外围模块的运行控制信息(PR和DR); 外围模块:经过数据总线、地址总线、中断(zhngdun)服务及请求线与CPU相连(时钟模块,看门狗,定时器,串口,ADC等)。第1页/共31页第一页,共32页。二、总线(zn xin)(bus)1.数据总线(DB):用于CPU和存储器之间,以及CPU和接口电路之间传送数据,双向、位数相同(xin tn);2.地址总线(AB):用于计算机访问存储器和外部设备,传输CPU发出的地址信息单向、总线位数决定可访问单元容量;3.控制总线(CB):

2、传送CPU发出的控制信号,传送外部设备输入到CPU的信号。第2页/共31页第二页,共32页。三、指令系统(zh ln x tn) 机器码(二进制编码),只有0,1串组成,不易理解记忆,单片机用一些助记符(如MOV,ADD等)代替操作码,用符号(fho)代替操作数编写源程序,形成汇编语言; MSP430的内核结构采用精简指令集(RISC)设计,指令分为硬件实现的内核指令和基于现有硬件结构的具有更高效率的模拟指令 。第3页/共31页第三页,共32页。四、CPU的结构(jigu)和功能运算器(ALU):对二进制数进行加、减、乘、除等算数运算和与、或、非等逻辑运算;寄存器:一般包括通用寄存器(暂存数据

3、(shj),中间结果和地址)和特殊功能寄存器(PC、SP、AR、DR和SR等);控制器:主要由指令寄存器IR,译码器ID和操作控制器PLA等组成,在PC、AR和DR的配合下控制各部件协调工作。第4页/共31页第四页,共32页。五、CISC和RISC的区别(qbi) CISC:具有单一处理单元,外部存储器,一个相对较小的寄存器集以及几百条不同的指令。编程容易代码量少;处理器本身结构复杂,解码单元迟缓,硅片面积大耗电; RISC:具有较大的寄存器组,减少处理器访问主存储器的次数。更小更简单的指令解码单元,具有较高的指令执行(zhxng)速度,把硅片的复杂性转移到语言编译器里,简化硬件,降低处理单元

4、的尺寸和功耗。第5页/共31页第五页,共32页。六、存储器第6页/共31页第六页,共32页。MSP430存储空间结构(jigu)MSP430的存储器结构采用了统一编址方式,可以(ky)使对外围模块寄存器的操作象普通的RAM单元一样方便、灵活。MSP430F169系列的存储空间为64KB,具有很强的系统外围模块扩展能力。第7页/共31页第七页,共32页。七、寻址方式(fngsh)第8页/共31页第八页,共32页。例:间接(jin ji)增量寻址 汇编源程序 ROM中的内容 MOV R10+,0(R11) MOV (R10)+,0(R11) 将地址为R10的单元中的内容移动到地址为R11的单元中,

5、执行后R10内容变为R10+2,R11本身在执行前后(qinhu)不变。 执行前 执行后 R10 0A123H R10 0A125H R11 0FA00H R11 0FA00H 内存单元0A123H 1234H 内存单元0A123H 1234H 内存单元0FA00H 5678H 内存单元0FA00H 1234H第9页/共31页第九页,共32页。汇编指令集中常用符号(fho)和缩写第10页/共31页第十页,共32页。八、MSP430指令系统(zh ln x tn) 精简指令(zhlng)集(RISC)设计; 共有51条指令(zhlng),包含27条硬件执行的内核指令(zhlng)和24条基于现有

6、硬件结构的高效率的仿真指令(zhlng);第11页/共31页第十一页,共32页。数据(shj)传送类指令1.MOV #234H,R5 ;将立即数234H传送到R5寄存器2.CLR R5 ;将R5寄存器清零3.PUSH SR ;保存状态寄存器,堆栈指针-24.POP SR ;从堆栈中恢复(huf)状态寄存器,堆栈指针+2 5.MOV #2345H,R5 ;寄存器中的值为2345H6. SWPB R5 ;执行后R5的内容为4523H7.MOV #2345H,R5 ;寄存器中的值为2345H 8. SXT R5 ;执行后R5的内容为0045H,因为低字节 9. 符号位为010. MOV #2388H

7、,R5 ;寄存器中的值为2388H 11. SXT R5 ;执行后R5的内容为FF88H,因为低字节 12. 符号位为113. (SXT:扩展符号位,低位字节符号扩展到高位字节)第12页/共31页第十二页,共32页。数据(shj)运算指令加法指令ADD #10,R5;将10加至R5低位字节ADDC;带进位C的加法,主要用于多字节运算ADC &246H;将进位C加至绝对地址246H上的内容(nirng)DADD;将十进制的进位位和源操作数加至目的操作数DADC;加上十进制的进位位INC;目的操作数+1INCD;目的操作数+2减法指令SUB #1234H,R5;将R5中数据减去立即数1234HSU

8、BC;从目的操作数中减去源操作数和借位;用于多字节运算SBC;从目的操作数中减去借位DEC;目的操作数-1,多用于修改地址指针和循环计数DECD;目的操作数-2CMP R5,R6;R5和R6是否相等 JEQ LABEL1;如果是,程序跳转7. TST;测试目的操作数,比较目的操作数与0,根据(gnj)结果设置状态位第13页/共31页第十三页,共32页。逻辑(lu j)操作指令1.AND R5,0 x01;将R5最低位置02.BIC #0FC00H,LEO;清LEO的高6位(将源操作数求反后和目的操作数逻辑与)3.BIS #0F000H,R5;R5的高4位置1 (源操作数和目的操作数逻辑或)4.

9、BIT #0100H,R7;测试R7的第8位是否(sh fu)为15.XOR R5,R5;将R5清零XOR #0100H,R5;将R5的第8位取反6.INV;目的操作数求反7.RLA;算数左移,低位补08.RLC;通过进位位左移,标志位C送到操作数最低位9.RRA;算数右移,符号位不变10.RRC;通过进位位右移,标志位C移入MSB,LSB移入C第14页/共31页第十四页,共32页。位操作指令(zhlng)1.CLRC;清除进位位,字指令(zhlng)2.CLRN;清除负位3.CLRZ;清除零位4.SETC;设置进位位,置15.SETN;设置负位6.SETZ;设置零位7.DINT;禁止可屏蔽中

10、断将状态寄存器GIE置08.EINT;使能可屏蔽中断第15页/共31页第十五页,共32页。跳转与程序流程的控制(kngzh)类指令1. BR R8;转移到R8中所包含的地址(无条件转移到64KB地址空间的任一地址位,可使用所有源寻址方式)2. CALL;调用(dioyng)子程序,返回地址存储在堆栈中3. JC;设置进位位时程序跳转 JHS;大于或等于时程序跳转(用于无符号数)4. JEQ;等于时程序跳转 JZ;为零时程序跳转5. JGE;大于或等于时程序跳转(有符号数)6. JL;小于时程序跳转(有符号数)7. JMP;程序无条件跳转8. JN;为负时程序跳转9. JNC;进位未设置时程序跳

11、转 JLO;小于时程序跳转(无符号数)10.JNE;不等时程序跳转 JNZ;不为零时程序跳转11.RET;从子程序返回12.RETI;从中断返回13.NOP;空操作,可用于检查软件期间仿真指令或用于已确定的等待时间第16页/共31页第十六页,共32页。九、MSP430汇编语言(hu bin y yn)程序设计汇编语言为我们提供(tgng)了直接控制目标代码的手段,实时性好,设计流程可归纳为以下几步:根据任务要求,给出解决问题的思路,设计程序的整体结构,确定解决问题的算法并绘制程序流程图;进行资源分配;流程图具体化,写成汇编语言;对源程序进行汇编和调试。第17页/共31页第十七页,共32页。汇编

12、语言(hu bin y yn)伪指令 伪指令是在机器汇编时供汇编程序识别和执行的指令,用来对汇编过程进行某种控制,或对符号、标号赋值,在汇编过程中不产生目标代码。 将代码和数据汇编到规定的段中; 在存储器中用未初始化的变量保存空间(kngjin); 控制汇编后列表文件的格式; 初始化存储器; 汇编条件块; 定义全局变量; 规定汇编器可以从中获得宏的库; 产生符号化的调试信息。第18页/共31页第十八页,共32页。常用(chn yn)汇编伪指令l模块控制(kngzh):标志一个源程序的开始结束,并给模块命名和指示类型(NAME,MODULE,ENDMOD,END);l段控制(kngzh):说明代

13、码和数据是怎样生成的(ASEG,RSEG,STACK,COMMON,ORG, ALIGN,EVEN);l数据分配:对数据或模块赋值以及对寄存器类型定义(SET,EQU,DEFINE);l数据定义与分配:(DB,DW,DL,DF,DS)。第19页/共31页第十九页,共32页。常用汇编程序(hu bin chn x)结构1.顺序结构2.例程:32位数加法3. ADD R7,R5;4. ADDC R6,R4;5. RET6. 入口(r ku)R4,R5为第一个32位数,R6,R7为第二个32位数,出口为R4,R5,C为最高位。第20页/共31页第二十页,共32页。2.分支(fnzh)结构例程:32位

14、二进制数求补码(b m) Bit #8000H,R6 jn FUSHU jmp quitFUSHU inv R8 inc R8 mov SR,R7 inv R6 mov R7,SR adc R6 NOP NOPQuit RET第21页/共31页第二十一页,共32页。3.循环(xnhun)结构例程:延迟(ynch)程序 MOV #60000,R5 LOOP DEC R5 JNZ LOOP RET 每个指令为1个周期,共用60000*3个指令周期 。第22页/共31页第二十二页,共32页。十、汇编程序执行(zhxng)过程举例加法器实现6+7,将结果(ji gu)保存到存储器RAM区的200H地址

15、单元。 MOV #6,R4; 将第一个加数6送至CPU的寄存器R4中 ADD #7,R4; 将第二个加数7与R4中的数相加,结果(ji gu)存在R4中 MOV R4,&200H;将R4中的内容保存到RAM的200H单元中助记符机器码MOV #6,R44034 0006ADD #7,R45034 0007MOV R4,&200H4482 0200第23页/共31页第二十三页,共32页。 假设程序(机器码)存放在1100H开始的程序存储单元,由于MSP430是16位单片机,程序指令总是以字(16位)的形式取得(qd),就是每次要取两个单元的内容。存储器地址编号存储器地址编号存储器内容存储器内容操

16、作量操作量指令指令1101-110040 34操作码MOV #n,R41103-110200 06操作数n=6H1105-110450 34操作码ADD #n,R41107-110600 07操作数n=7H1109-110844 82操作码MOV R4,&n110B-110A02 00操作数n=200H第24页/共31页第二十四页,共32页。MSP430的CPU中PC被赋予第一条指令地址(dzh)1100H,然后进入取第一条指令阶段 PC的内容1100H传至地址寄存器AR; PC的内容可靠送入AR后,由于程序指令以字的形式取得,一次取两个单元的内容,PC的内容+2变为1102H; AR通过地址

17、总线AB把地址信号1100H送至存储器,经地址译码器选中存储器1100H-1101H单元; CPU通过控制总线CB向存储器发出读操作控制指令; 选中1100H-1101H存储单元的内容(4034)读至数据总线DB; 读出的内容(4034)经DB送至数据寄存器DR; 因为(yn wi)CPU处于取指阶段,取出为指令,故DR通过CPU内部总线把指令送入指令寄存器IR,然后经指令译码器ID译码,产生执行这条操作的各种控制指令。第25页/共31页第二十五页,共32页。上一条是把立即数送至R4的指令(zhlng),需要继续取操作数 PC的内容(nirng)1102H传至地址寄存器AR; PC的内容(ni

18、rng)可靠送入AR后,PC的内容(nirng)+2变为1102H; AR通过地址总线AB把地址信号1102H送至存储器,经地址译码器选中存储器1102H-1103H单元; CPU通过控制总线CB向存储器发出读操作控制指令; 选中1102H-1103H存储单元的内容(nirng)(00 06)读至数据总线DB上; 读出的内容(nirng)(00 06)经DB送至数据寄存器DR; 因为CPU处于取操作数阶段,取出为操作数,执行该指令,则DR通过CPU内部总线把数据(00 06)送入寄存器R4。至此,第一条指令执行完毕,进入(jnr)第二条指令取指阶段第26页/共31页第二十六页,共32页。取第二

19、条指令(zhlng)PC的内容1104H传至地址寄存器AR;PC的内容可靠送入AR后,PC的内容+2变为1106H;AR通过地址总线AB把地址信号1104H送至存储器,经地址译码器选中存储器1104H-1105H单元;CPU通过控制总线CB向存储器发出读操作控制指令;选中1104H-1105H存储单元的内容(50 34)读至数据总线DB;读出的内容(50 34)经DB送至数据寄存器DR;因为CPU处于取指阶段,取出为指令,故DR通过CPU内部(nib)总线把指令送入指令寄存器IR,然后经指令译码器ID译码,产生执行这条操作的各种控制指令。第27页/共31页第二十七页,共32页。经译码发现,上一

20、条是立即数与R4相加的算数指令,需要(xyo)继续取操作数 PC的内容1106H传至地址寄存器AR; PC的内容可靠送入AR后,PC的内容+2变为1108H; AR通过地址总线AB把地址信号1106H送至存储器,经地址译码器选中存储器1106H-1107H单元; CPU通过控制总线CB向存储器发出读操作控制指令; 选中1106H-1107H存储单元的内容(00 07)读至数据总线DB上; 读出的内容(00 07)经DB送至数据寄存器DR; 因为CPU处于取操作数阶段(jidun),取出为操作数,且要与R4相加,故DR通过CPU内部总线把数据(00 07)送入ALU中; R4的内容送至ALU中;

21、 相加的结果0DH由ALU输出至R4中。第28页/共31页第二十八页,共32页。第三条指令取指过程(guchng)与前两条指令取指类似,操作码取回后,PC+2变为110AH。译码发现,这是一条将R4的内容送至操作数指定地址的存储单元的数传指令,继续取操作数PC的内容110AH传至地址寄存器AR;PC的内容可靠送入AR后,PC的内容+2变为110CH;AR通过地址总线AB把地址信号(xnho)110AH送至存储器,经地址译码器选中存储器110AH-110BH单元;CPU通过控制总线CB向存储器发出读操作控制指令;选中110AH-110BH存储单元的内容(02 00)读至数据总线DB上;读出的内容

22、(02 00)经DB送至数据寄存器DR。至此,操作数取出,进入(jnr)指令的执行过程第29页/共31页第二十九页,共32页。第三条指令执行(zhxng)操作因为CPU处于取操作数阶段(jidun),取出为操作数,且要将R4的内容送至操作数指定的地址单元(0200H),故DR通过内部总线把存储器单元地址数据(0200H)送入AR;AR将地址(0200H)送至AB,经存储器地址译码器译码选中0200H单元;CPU将R4的内容(0DH)送至DR;DR将数据0DH送至DB;CPU通过CB发出写指令;DB上数据0DH写入0200H单元。至此,第三条指令执行(zhxng)完毕。第30页/共31页第三十页,共32页。谢谢您的观看(gunkn)!第31页/共31页第三十一页,共32页。NoImage内容(nirng)总结一、单片机基本结构。地址(dzh)总线(AB):用于计算机访问存储器和外部设备,传输CPU发出的地址(dzh)信息单向、总线位数决定可访问单元容量。从堆栈中恢复状态寄存器,堆栈指针+2。(SXT:扩展符号位,低位字节符号扩展到高位字节)。清LEO的高6位(将源操作数求反后和目的操作数逻辑与)。R5的高4位置1 (源操作数和目的操作数逻辑或)。XOR R5,R5。将R5清零XOR #0100H,R5第三十二页,共32页。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!