第4章汇编语言及伪指令课件

上传人:hloru****lorv6 文档编号:241298883 上传时间:2024-06-16 格式:PPT 页数:32 大小:248.82KB
返回 下载 相关 举报
第4章汇编语言及伪指令课件_第1页
第1页 / 共32页
第4章汇编语言及伪指令课件_第2页
第2页 / 共32页
第4章汇编语言及伪指令课件_第3页
第3页 / 共32页
点击查看更多>>
资源描述
第第4 4章章 汇编语言和汇编语言和伪指令伪指令DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言和汇编语言和伪指令伪指令1第4章汇编语言和伪指令11DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令 采采用用汇汇编编语语言言,用用户户可可以以直直接接操操作作到到处处理理器器内内部部的的工工作作寄寄存存器器和和片片内内RAM单单元元,能能把把数数据据的的处处理理过过程程表表述述得非常具体和详实。得非常具体和详实。汇汇编编语语言言并并不不独独立立于于具具体体机机器器,是是一一种种非非常常通通用用的的低级程序设计语言。低级程序设计语言。4.1 汇编语言程序设计汇编语言程序设计2采用汇编语言,用户可以直接操作到处理器内部的2DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.1.1 汇编语言源程序格式汇编语言源程序格式 典型的汇编语言格式是四段式格式:典型的汇编语言格式是四段式格式:标号段:标号段:操作码段操作码段 操作数段操作数段;注释段注释段 LABLE:OPCODE OPRAND ;COMMENT 其中操作码段是必选项,任何语句都必须有操作码其中操作码段是必选项,任何语句都必须有操作码段。如果是多个操作数,中间用逗号隔开。段。如果是多个操作数,中间用逗号隔开。P1:ADD#1 ;ACC加加1,结果保存在,结果保存在ACC中中 BCND P1,LEQ ;如果如果ACC0则转到则转到P134.1.1汇编语言源程序格式典型的汇编语3DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.1.2 常用伪指令介绍常用伪指令介绍指令语句指令语句 每一条指令语句在源程序汇编时都要产生可供计算每一条指令语句在源程序汇编时都要产生可供计算机执行的指令代码(即目标代码),所以这种语句又叫机执行的指令代码(即目标代码),所以这种语句又叫可执行语句。每一条指令语句表示计算机具有的一个基可执行语句。每一条指令语句表示计算机具有的一个基本能力,如数据传送,两数相加或相减,移位等,而这本能力,如数据传送,两数相加或相减,移位等,而这种能力是在目标程序(指令代码的有序集合)运行时完种能力是在目标程序(指令代码的有序集合)运行时完成的,是依赖于汁算机内的中央处理器(成的,是依赖于汁算机内的中央处理器(CPU)、存储)、存储器、器、IO接口等硬件设备来实现的。接口等硬件设备来实现的。44.1.2常用伪指令介绍指令语句每4DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令伪指令语句伪指令语句 伪指令语句是用于指示汇编程序如何汇编源程序,所伪指令语句是用于指示汇编程序如何汇编源程序,所以这种语句又叫命令语句。例如源程序中的伪指令语句告以这种语句又叫命令语句。例如源程序中的伪指令语句告诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段诉汇编程序:该源程序如何分段,有哪些逻辑段在程序段中哪些是当前段,它们分别由哪个段寄存器指向;定义了中哪些是当前段,它们分别由哪个段寄存器指向;定义了哪些数据,存储单元是如何分配的等等。伪指令语句除定哪些数据,存储单元是如何分配的等等。伪指令语句除定义的具体数据要生成目标代码外,其他均没有对应的目标义的具体数据要生成目标代码外,其他均没有对应的目标代码。伪指令语句的这些命令功能是由汇编程序在汇编源代码。伪指令语句的这些命令功能是由汇编程序在汇编源程序时,通过执行一段程序来完成的,而不是在运行目标程序时,通过执行一段程序来完成的,而不是在运行目标程序时实现的。程序时实现的。5伪指令语句伪指令语句是用于指示汇编程5DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令666DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令条件汇编伪指令条件汇编伪指令 以下分两种情况介绍条件汇编伪指令。以下分两种情况介绍条件汇编伪指令。(1)第一种情况:第一种情况:.if well-defined expression .elseif well-defined expression .else .endif (2)第二种情况:第二种情况:.loopwell-defined expression .break well-defined expression .endloop7条件汇编伪指令以下分两种情况介绍条件汇编伪指令。77DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.2 C语言程序设计语言程序设计 用汇编语言编写程序是一件繁杂的事情,开发周期用汇编语言编写程序是一件繁杂的事情,开发周期相对较长。因此各个相对较长。因此各个DSP公司都推出了相应的高级语言公司都推出了相应的高级语言(如(如C语言),使得语言),使得DSP芯片的软件可以直接使用高级语芯片的软件可以直接使用高级语言写成。,从而大大提高言写成。,从而大大提高DSP芯片的开发速度,也使程序芯片的开发速度,也使程序的修改和移植变得十分方便。的修改和移植变得十分方便。C C语言程序文件的后缀名为语言程序文件的后缀名为.c.c。在该程序中实现。在该程序中实现DSPDSP要完成的功能,由开发人员编写。要完成的功能,由开发人员编写。84.2C语言程序设计用汇编语言编写程序是一8DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令C编译器概述编译器概述 TMS320C2xx C编译器是一个功能齐全的优化编译器。编译器是一个功能齐全的优化编译器。它的主要功能是把标准的它的主要功能是把标准的ANSI C语言程序转换成语言程序转换成TMS320 DSP芯片能够识别执行的汇编语言代码。芯片能够识别执行的汇编语言代码。9C编译器概述TMS320C2xxC编译器是9DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.3 调试时需要的五种文件调试时需要的五种文件 调试时需要以下五种文件:调试时需要以下五种文件:(1)C语言程序(语言程序(.c)或者汇编语言文件()或者汇编语言文件(.asm)(2)头文件()头文件(.h)(3)库文件()库文件(rts2xx.lib)(4)命令文件()命令文件(.cmd)(5)复位和中断向量文件)复位和中断向量文件vectors.asm104.3调试时需要的五种文件调试时需要以下五种文件:110DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.3.1 C语言文件文件或汇编语言文件语言文件文件或汇编语言文件该文件的扩展名为:该文件的扩展名为:*.c 或或*.asm;该文件内容为该文件内容为DSP所要完成功能的源程序代码。所要完成功能的源程序代码。114.3.1C语言文件文件或汇编语言文件该文件的扩展名为:*11DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.3.2 头文件头文件头文件的扩展名为:头文件的扩展名为:*.h;汇编语言头文件:包含了各种寄存器的名称和地址,此汇编语言头文件:包含了各种寄存器的名称和地址,此外,用户还可以定义各种常量和宏;外,用户还可以定义各种常量和宏;C语言头文件:包含了语言头文件:包含了C语言定义下的各种语言定义下语言定义下的各种语言定义下的各种寄存器和地址,还包含支持的各种寄存器和地址,还包含支持C语言的的各种库函数;语言的的各种库函数;头文件必须放在头文件必须放在C源程序的开始,并使用源程序的开始,并使用“include”语语句声明和添加。或者在汇编主程序的开始使用汇编伪指句声明和添加。或者在汇编主程序的开始使用汇编伪指令令.include、.copy对头文件进行调用。对头文件进行调用。124.3.2头文件头文件的扩展名为:*.h;1212DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令头文件部分寄存器和宏定义举例:头文件部分寄存器和宏定义举例:;-IMR .set 0004h ;中断屏蔽寄存器中断屏蔽寄存器IFR .set 0006h ;中断标志寄存器中断标志寄存器;-DELAY_S.macro delay_value ;延时延时=0.05s 延延 时计数时计数RPT#delay_valueNOP.endm调用宏:调用宏:DELAY_S 0AC5H13头文件部分寄存器和宏定义举例:1313DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令头文件头文件F2407.h,在该文件中寄存器都以指针方式进行寻址。,在该文件中寄存器都以指针方式进行寻址。头文件为头文件为头文件为头文件为DSPDSP的寄存器和位测试指令的寄存器和位测试指令的寄存器和位测试指令的寄存器和位测试指令的位码定义助记符的位码定义助记符的位码定义助记符的位码定义助记符14头文件F2407.h,在该文件中寄存器都以指针方式进行寻址。14DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.3.3 命令文件命令文件 扩展名为扩展名为*.cmd,实现对程序存储空间和数据存储器,实现对程序存储空间和数据存储器空间的分配;它由三部分组成:一是输入输出文件和选空间的分配;它由三部分组成:一是输入输出文件和选项等(该部分可以省略),二是目标存储器定义,使用项等(该部分可以省略),二是目标存储器定义,使用伪指令伪指令MEMORY定义,三是各段的定位,由定义,三是各段的定位,由SECTIONS命令定义命令定义。MEMORY伪指令用来标示实际存在目标系统中并且伪指令用来标示实际存在目标系统中并且可被使用的存储器范围。每个存储器范围有名字、起始可被使用的存储器范围。每个存储器范围有名字、起始地址和长度。地址和长度。SECTIONS伪指令的作用是:描述输入段怎样被组伪指令的作用是:描述输入段怎样被组合到输出段;在可执行程序内定义输出段;规定在存储合到输出段;在可执行程序内定义输出段;规定在存储器内何处放置输出段;允许重命名输出段。器内何处放置输出段;允许重命名输出段。154.3.3命令文件扩展名为*.cmd,实15DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令MEMORYPAGE0:/*程序存储器程序存储器*/name1(attr):origin=constant,length=constant;namen(attr):origin=constant,length=constant;PAGE1:/*数据存储器数据存储器*/name1(attr):origin=constant,length=constant;namen(attr):origin=constant,length=constant;PAGE2:/*I/O空间空间*/name1(attr):origin=constant,length=constant;namen(attr):origin=constant,length=constant;16MEMORY1616DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令 SECTIONSname:property,property,property,name:property,property,property,name:property,property,property,17SECTIONS1717DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令 每一个以每一个以name开始的段的规格说明定义了一个输出开始的段的规格说明定义了一个输出段。在段名之后是特性列表,定义段的内容以及它们是段。在段名之后是特性列表,定义段的内容以及它们是怎样被分配的。怎样被分配的。(1)装载位置,规定段将被装载在存储器内何处。装载位置,规定段将被装载在存储器内何处。(2)运行位置,定义段将在存储器内何处运行。运行位置,定义段将在存储器内何处运行。(3)输入段,定义组成输出段的输入段。输入段,定义组成输出段的输入段。(4)段类型,定义特定段类型的标志。段类型,定义特定段类型的标志。(5)填充值,定义用于填充未初始化空位的数值。填充值,定义用于填充未初始化空位的数值。18每一个以name开始的段的规格说明定义了一个18DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令命令文件举例命令文件举例MEMORY伪指令和伪指令和SECTION伪指令:伪指令:MEMORYPAGE0:VECS:origin=0000h,length=0040h/*程序程序复位复位*/PVECS:origin=0040h,length=0F00h/*外设中断向量外设中断向量*/PM:origin=1000h,length=6000hPM1:origin=7000h,length=1000hPM2:origin=8000h,length=800h/*如果如果PON=1,则为,则为SARAM*/B0_PM:origin=0FF00h,length=100h/*如果如果CNF=1,则为,则为DARAM B0块块*/PAGE1:MMRS:origin=0000h,length=0060hB2:origin=0060h,length=0020h/*DARAM B2 块块*/B0:origin=0200h,length=0100h/*如果如果CNF=0则为则为DARAM B0 块块*/B1:origin=0300h,length=0100h/*DARAM B1块块*/SARAM:origin=0800h,length=0800h/*如果如果DON=1则为则为SARAM*/PERIPH:origin=7000h,length=1000h/*外设帧外设帧*/EXTRAM:origin=8000h,length=8000h/*外部扩展外部扩展RAM*/PAGE2:IO_EX:origin=0000h,length=0FFF0hIO_IN:origin=0FFF0h,length=0Fh19命令文件举例MEMORY伪指令和SECTION伪指令:1919DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令SECTIONS.reset:VECSPAGE0/*复位中断向量复位中断向量*/.vectors:VECSPAGE0/*中断向量表中断向量表*/.pvecs:PVECSPAGE0/*外设中断向量表外设中断向量表*/.text:PMPAGE0/*代码代码*/.table:PMPAGE0.bss:B1PAGE1.data0:B0PAGE1.data2:B2PAGE1.stack:SARAMPAGE120SECTIONS2020DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.3.4 中断向量文件中断向量文件中断向量文件中断向量文件vectors.asm定义了系统中各种中断服务程序定义了系统中各种中断服务程序的的入口地址入口地址。214.3.4中断向量文件中断向量文件vectors.asm定21DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.3.5 库文件库文件rts2xx.librts2xx.lib库文件可在库文件可在C:CCStudio_v3.1C2400cgtoolslib下找到,不得修改,完全复制到需要的地方。下找到,不得修改,完全复制到需要的地方。rts2xx.lib包含以下内容:包含以下内容:ANSIC标准库;标准库;系统启动程序系统启动程序_c_int0;允许允许C访问特殊指令的函数和宏。访问特殊指令的函数和宏。224.3.5库文件rts2xx.librts2xx.lib22DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.4 C语言和汇编语言混合编程方法语言和汇编语言混合编程方法4.4.1 在在C语言中嵌入汇编语言程序语言中嵌入汇编语言程序1.在在C语言中嵌入单条汇编语句语言中嵌入单条汇编语句/系统初始化程序系统初始化程序void inital()asm(setc SXM);/SXM位置位置1,抑制符号扩展位,抑制符号扩展位asm(clrc OVM);/OVM位清位清0,累加器中结果正常溢出,累加器中结果正常溢出asm(clrc CNF);/CNF位清位清0,B0被映射到数据存储器空间被映射到数据存储器空间234.4C语言和汇编语言混合编程方法4.4.1在C语言中嵌23DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令2.在在C语言中嵌入实现某一完整功能的多条汇编语句语言中嵌入实现某一完整功能的多条汇编语句 在在C语言中调用汇编语言编写的子程序,语言中调用汇编语言编写的子程序,用户必须遵用户必须遵循相关规则自行维护模块的入口和出口代码,循相关规则自行维护模块的入口和出口代码,主要应弄主要应弄清楚堆栈的使用情况。清楚堆栈的使用情况。242.在C语言中嵌入实现某一完整功能的多条汇编语句2424DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.5 分开编写分开编写C语言和汇编语言程序语言和汇编语言程序1.分离的分离的C语言程序和汇编语言程序接口语言程序和汇编语言程序接口 须注意:在编写汇编语言程序时,必须遵守有关调须注意:在编写汇编语言程序时,必须遵守有关调用规则和寄存器规则,这样不会影响用规则和寄存器规则,这样不会影响C语言程序的运行环语言程序的运行环境。境。254.5分开编写C语言和汇编语言程序1.分离的C语言程序和25DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令2.在在C语言程序中访问汇编语言程序的变量语言程序中访问汇编语言程序的变量 2种操作方法:种操作方法:(1)汇编变量在汇编变量在.bss段中定义段中定义采用采用.bss命令定义变量命令定义变量采用采用.global命令定义变量命令定义变量在变量名前加一下划线在变量名前加一下划线“_”在在C语言程序中将变量说明为外部变量语言程序中将变量说明为外部变量262.在C语言程序中访问汇编语言程序的变量2626DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令(2)用用.set和和.global命令定义的常数。命令定义的常数。在汇编语言中将常数符号定义成全局常数;在汇编语言中将常数符号定义成全局常数;在在C语言程序中访问汇编语言程序中的常数时,应在语言程序中访问汇编语言程序中的常数时,应在常数前加一个地址符号常数前加一个地址符号“&”27(2)用.set和.global命令定义的常数。2727DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令3.在汇编语言程序中访问在汇编语言程序中访问C语言程序变量语言程序变量在在C语言程序中定义变量语言程序中定义变量(如如x);在汇编语言程序中使用前面加下划线在汇编语言程序中使用前面加下划线“_”(如如_x)。283.在汇编语言程序中访问C语言程序变量2828DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令4.6 用用C语言处理语言处理 DSP中断中断1.通过软件识别中断标志的方法实现可屏蔽的中断通过软件识别中断标志的方法实现可屏蔽的中断 例如,要实现捕捉单元例如,要实现捕捉单元4的中断的中断(CAP4INT),则先建立则先建立一个复位和中断向量文件一个复位和中断向量文件vectors.asm.title vectors.asm.ref _c_int0,_nothing,_capint ;定义每个需要用到的符号定义每个需要用到的符号.sect .vectorsreset:b _c_int0 ;复位向量复位向量INT1:b _nothingINT2:b _nothingINT3:b _nothingINT4:b _capint ;当发生当发生INT4中断时,程序跳转至中断时,程序跳转至capint所标志所标志 ;的终端服务程序的终端服务程序INT5:b _nothingINT6:b _nothing ;当发生其他级别中断时,直接跳转至当发生其他级别中断时,直接跳转至nothing ;所标志的终端服务程序所标志的终端服务程序294.6用C语言处理DSP中断1.通过软件识别中断标志的29DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令/CAP4INT中断服务程序中断服务程序void interrupt capint()int flag;flag=EVBIFRC&0 x01;if(flag!=0 x01)asm(clrc INTM);RETURN;EVBIFRC=EVBIFRC|0 x01;asm(clrc INTM);return;30/CAP4INT中断服务程序3030DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令2.通过外围中断向量寄存器通过外围中断向量寄存器PIVR的值识别中断的方法识别的值识别中断的方法识别可屏蔽的中断可屏蔽的中断 PIVR中的中断向量与外设中断是一一对应的,因此可中的中断向量与外设中断是一一对应的,因此可以用以用Switch语句,在中断服务程序入口处通过语句,在中断服务程序入口处通过PIVR的值来判的值来判断发生的中断是否为需要的中断。断发生的中断是否为需要的中断。312.通过外围中断向量寄存器PIVR的值识别中断的方法识别可31DSP原理及应用原理及应用北京理工大学珠海学院信息学院北京理工大学珠海学院信息学院第第4 4章章 汇编语言汇编语言和伪指令和伪指令/中断服务子程序中断服务子程序void interrupt GISR4()switch(*PIVR)case 0 x0036:SISR4();break;default:break;EVBIFRC=EVBIFRC|0 x01;asm(clrc INTM);return;void SISR4()32/中断服务子程序3232
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学培训


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

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


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