dsp 第四章1
合集下载
《DSP系统设计及应用》第四章

22
4.4 指令简介
4.4.1 内存寻址方式 C3x系列支持 组寻址方式。 系列支持4 ‘C3x系列支持4组寻址方式。每种寻址方式又支持两种或两种以上 的寻址类型。 的寻址类型。 (1)通用指令寻址方式 指令中包括2个操作数(1 ,1目的 通用指令寻址方式: (1源 目的) (1)通用指令寻址方式:指令中包括2个操作数(1源,1目的) 寄存器寻址:操作数是CPU的寄存器。 CPU的寄存器 寄存器寻址:操作数是CPU的寄存器。 立即数寻址:操作数是16位或24位的立即数。 16位或24位的立即数 立即数寻址:操作数是16位或24位的立即数。 直接寻址:操作数是24位地址指向的内容, 24位地址是由 24位地址指向的内容 位地址是由8 直接寻址:操作数是24位地址指向的内容,这24位地址是由8位的数 据页指针和16位的操作数连接而成。 16位的操作数连接而成 据页指针和16位的操作数连接而成。 间接寻址:通过一个辅助寄存器指示出操作数的地址。 间接寻址:通过一个辅助寄存器指示出操作数的地址。 (2)三操作数指令寻址方式 指令中包括3个操作数(2 ,1目的 三操作数指令寻址方式: (2源 目的) (2)三操作数指令寻址方式:指令中包括3个操作数(2源,1目的) 。 寄存器寻址:同通用指令寻址方式中的寄存器寻址。 寄存器寻址:同通用指令寻址方式中的寄存器寻址。 间接寻址:同通用指令寻址方式中的间接寻址。 间接寻址:同通用指令寻址方式中的间接寻址。 (3)并行指令寻址方式 两条指令并行绝对地址的寻址方式。 并行指令寻址方式: (3)并行指令寻址方式:两条指令并行绝对地址的寻址方式。 寄存器寻址:操作数是增强精度寄存器。 寄存器寻址:操作数是增强精度寄存器。 间接寻址:同通用指令寻址方式中的间接寻址。 间接寻址:同通用指令寻址方式中的间接寻址。 (4)分枝指令寻址方式 根据操作数特定位不同值执行不同操作。 分枝指令寻址方式: (4)分枝指令寻址方式:根据操作数特定位不同值执行不同操作。 寄存器寻址。同通用指令寻址方式中的寄存器寻址。 寄存器寻址。同通用指令寻址方式中的寄存器寻址。 程序记数器相对寻址:在程序计数器指针的基础上加上16位或32 16位或32位 程序记数器相对寻址:在程序计数器指针的基础上加上16位或32位 的偏移量。 的偏移量。
DSP完整课件第4章

第4章 系统配置和中断模块
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 系统配置寄存器 中断优先级和中断向量表 外设中断扩展控制器 中断响应的过程 中断响应的等待时间 CPU的中断寄存器 复位和无效地址检测 外部中断控制寄存器
作业:11) 240x中断系统结构特点 12)中断响应过程 13)主中断服务程序与外设中断服务子程序的任务
2010退出Βιβλιοθήκη 4.2 中断优先级和中断向量表
CPU级中断向量表及优先级
K值 0 1 2 3 4 5 6 7 8 9 16 17 18 19 ... 31
2010
CPU中断向量 0000h 0002h 0004h 0006h 0008h 000Ah 000Ch 000Eh 0010h ... 0020h 0022h 0024h 0026h ... 003Eh
2010
退出
中断系统
240x的2级(层次)中断结构。
(1) CPU内核级(顶层)中断(INT1~INT6)
(2) 外设级(底层)中断 利用6个内核级中断扩展38个外设级中断。
(2) 外设级(底层)中断 每级可屏蔽的CPU级中断(INT1~6)又对应多个外设级中 断源,每个外设级中断源具有唯一的中断入口地址向量,它 们构成了外设级中断向量表。 • 外设中断向量表 用来获取响应外设中断服务子程序。一般存放跳转到外 设中断服务子程序的跳转指令。 • 外设中断服务子程序 完成具体中断要实现的功能。
优先级 1 4 5 6 7 8 9
中断名称 RS INT1 INT2 INT3 INT4 INT5 INT6
INT8
INT16 TRAP NMI ... INT31
3 2
说明 硬件上电复位中断(不可屏蔽) 1号可屏蔽中断 2号可屏蔽中断 3号可屏蔽中断 4号可屏蔽中断 5号可屏蔽中断 6号可屏蔽中断 保留 用户自定义软件中断 .... 用户自定义软件中断 陷阱软件中断 NMI软件中断 保留 ... 用户自定义软件中断
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 系统配置寄存器 中断优先级和中断向量表 外设中断扩展控制器 中断响应的过程 中断响应的等待时间 CPU的中断寄存器 复位和无效地址检测 外部中断控制寄存器
作业:11) 240x中断系统结构特点 12)中断响应过程 13)主中断服务程序与外设中断服务子程序的任务
2010退出Βιβλιοθήκη 4.2 中断优先级和中断向量表
CPU级中断向量表及优先级
K值 0 1 2 3 4 5 6 7 8 9 16 17 18 19 ... 31
2010
CPU中断向量 0000h 0002h 0004h 0006h 0008h 000Ah 000Ch 000Eh 0010h ... 0020h 0022h 0024h 0026h ... 003Eh
2010
退出
中断系统
240x的2级(层次)中断结构。
(1) CPU内核级(顶层)中断(INT1~INT6)
(2) 外设级(底层)中断 利用6个内核级中断扩展38个外设级中断。
(2) 外设级(底层)中断 每级可屏蔽的CPU级中断(INT1~6)又对应多个外设级中 断源,每个外设级中断源具有唯一的中断入口地址向量,它 们构成了外设级中断向量表。 • 外设中断向量表 用来获取响应外设中断服务子程序。一般存放跳转到外 设中断服务子程序的跳转指令。 • 外设中断服务子程序 完成具体中断要实现的功能。
优先级 1 4 5 6 7 8 9
中断名称 RS INT1 INT2 INT3 INT4 INT5 INT6
INT8
INT16 TRAP NMI ... INT31
3 2
说明 硬件上电复位中断(不可屏蔽) 1号可屏蔽中断 2号可屏蔽中断 3号可屏蔽中断 4号可屏蔽中断 5号可屏蔽中断 6号可屏蔽中断 保留 用户自定义软件中断 .... 用户自定义软件中断 陷阱软件中断 NMI软件中断 保留 ... 用户自定义软件中断
dsp-第4章

2
DFT是信号分析与处理中的一种重要变换。但直 接计算DFT的计算量与变换区间长度N的平方成正 比,当N较大时,计算量太大,直接用DFT算法进 行谱分析和信号的实时处理是不切实际的。 1965年库里和图基发现了DFT的一种快速算法, 使DFT的运算效率提高1-2个数量级,为数字信 号处理技术应用于各种信号的实时处理创造了条 件,推动了数字处理技术的发展。 1984年,提出了分裂基快速算法,使运算效率进 一步提高;
X1(0) X1(1) X1(2) X1(3) X2(0) X2(1) X2(2) X2(3) WN0 WN1 WN2 WN3
X (0) X (1) X (2) X (3) X (4) X (5) X (6)
L=1级
L=2 N=8点DIT-FFT运算流图
L=3
X (7)
18
8点基2DIT-FFT算法
k N
14
(3)第二次分解: 将x1(r)按r取奇、偶可分解成2个长度为N/4的子序列 x3(l)= x1(2l)、 l=0,1,…,N/4-1; x4(l) = x1(2l+1),
根据上面推导可得:X1 (k)= X3(k)+ WN/2k⋅X4(k), k=0,1,…,N/2-1
X1 (k)=X3(k)+WN/2k⋅X4(k), k=0,1,…,N/4-1; X1 (k+N/2)=X3(k)−WN/2k⋅X4(k), k=0,1,…,N/4-1;
24
(3)序数重排
对按时间抽取FFT的原位运算结构,当运算完毕时, 正好顺序存放着 x(0), x(1), x(2), … x(7), 因此可直接按顺序输出, 但这种原位运算的输入 x(n)却不能按这种自然顺 序存入存储单元中,而是按x(0),x(4),x(2), x(6),…,x(7)的顺序存入存储单元,这种顺序看起 来相当杂乱,然而它也是有规律的。当用二进制表示 这个顺序时,它正好是“码位倒置”的顺序。 例如,原来的自然顺序应是 x(1)的地方,现在放着 x(4),用二进制码表示这一规律时, 则是在 x(0 0 1)处放着 x(1 0 0), x(0 1 1)处放着 x(1 1 0)。
DSP第四章

位8:保留 位7:ADC CLKEN,ADC模块时钟使能控制位 0-禁止ADC模块时钟(节能) 1-使能ADC模块时钟,且正常运行 位6:SCICLKEN,SCI模块时钟使能控制位 0-禁止SCI模块时钟(节能) 1-使能SCI模块时钟,且正常运行
位5:SPICLKEN, SPI模块时钟使能控制位 0-禁止SPI模块时钟(节能) 1-使能SPI模块时钟,且正常运行 位4:CANCLKEN, CAN模块时钟使能控制位 0-禁止CAN模块时钟(节能) 1-使能CAN模块时钟,且正常运行 位3:EVBCLKEN, EVB模块时钟使能控制位 0-禁止EVB模块时钟(节能) 1-使能EVB模块时钟,且正常运行
如这些引脚作I/O使用,则不使用输入时钟限定电路
位5:WD保护位,该位可用来禁止WD工作。该位 是-个只能清除的位,复位后=1。通过向该位写 1对其清0。
0-保护WD,防止WD被软件禁止。 1-复位时的默认值,能够通过软件禁止WD工作 位4:XMIF HI-Z。该位控制外部存储器接口信号 (XMIF)。 0-所有XMIF信号为正常驱动模式(非高阻态)。 1-所有XMIF信号处于高阻态。
外设中断请求寄存器和外设中断应答寄存器 都属于外设中断扩展模块用来向CPU产生INT1INT6中断请求的内部寄存器。这些寄存器用于测 试目的,编程时可以忽略。用户只能对其读。 1.外设中断向量寄存器(PIVR) 外设中断向量寄存器(PIVR)映射在数据存储 器空间中的地址为701Eh,该寄存器的16位V15- V0,为最近一次被应答的外设中断的地址向量。
中断请求(PIRQ)标志位一直保持到中断应答自动 清除或用软件将其清除。 在高层次中断,或逻辑运算的多个外设中断请求 INTn产生一个到CPU的中断请求,它是2个CPU时 钟脉冲宽的低电平脉冲。 当多个外设同时发出中断请求时,CPU总是响应 优先级高的中断请求。 注意:外设中断请求标志位是在CPU响应中断时 自动清除,即在高层次中断时清0,而不是在低层 次中断时,清0。
DSP原理与应第四章.ppt

1.HPI与主机的连接
HCNTL0、
主机控制信号,与主机地址线
HCN或TL控1:制线连接,用来选择主机所要寻址的寄
存器。
HCNTL0 HCNTL1
功能说明
0
0
主机可以读/写HPIC寄存器。
主机可以读/写HPID寄存器。
0
1
每读1次,HPIA事后增1;
每写1次,HPIA事先增1。
1
0
主机可以读/写HPIA寄存器。 这个寄存器指向HPI存储器。
可以访问HPI RAM,而’C54x则配置为最小功耗
。 2021年2月25日
DSP原理及应用
4
第4章 TMS320C54x的片内外设、接口及应用
4.1 ’C54x的主机接口
HPI口可以支持主设备与’C54x之间的高速 数据传送。
在SAM工作方式时,若HPI每5个CLKOUT周 期传送一个字节,则主机的运行频率可达(fd×n)/5 。 f在d—H—OM’方C5式4x时的,C主LK机O可UT以频获率得;更高的速度。 即每5n—0n—s寻主址机一每个进字行节一(次即外16部0寻M址bp的s)周,期且数与,通 常 ’nC是543x(的或时4)钟。速度无关。
1.HPI与主机的连接
HPI与主机连接的信号名称和功能:
HD0~HD 双向并行三态数据总线,与主机数据总
7:
线相连。
当不传送数据(HDSx或HCS=1)或EMU1/OFF=0(切 断所有输出)时,HD7~HD0均处于高阻状态。
HCS: 片选信号,与主机地址线或控制线相连。
作为HPI的使能输入端,在每次寻址期间必须 为低电平,而两次寻址之间也可以停留在低电平。
第4章 TMS320C54x片内外设、接口及应用
DSP4-1

0
1个
2 N
0 N
、W ,
1 N 3 、W N2、W N,
N 1 2 N
2个 4个
第三列 4种类型运算 系数 WN、W ……
0
0 1 2 第M列 N/2种类型运算 系数 WN、W N、W N .......W
, 共N/2 个
4.2.3按时间抽取的FFT算法的特点
(6) 存储单元
原位运算共需:N个单元存放 x(n)以及N/2 个单元存放 (k=0,1,……,N/2 –1)
第4章 快速傅里叶变换(FFT) 要点:有限长序列可以通过离散傅里 叶变换(DFT)将其频域也离散化成有限长 序列.但其计算量太大, 很难实时地处理问 题, 因此引出了快速傅里叶变换(FFT) . FFT 并 不 是 一 种 新 的 变 换 形 式 , 它 只 是 DFT的一种快速算法.并且根据对序列分 解与选取方法的不同而产生了FFT 的多 种算法. FFT在离散傅里叶反变换、线性 卷积和线性相关等方面也有重要应用.
4.2按时间抽取的快速傅里叶变换算法
2 ( X (k ) DET [ x(n)] x(n)WNnk x1 (2r )WN rk x2 (2r 1)WN2 r 1) k n 0 r 0 r 0
N 1 2 r 0 N 1 2 r 0
N 1
N 1 2
N 1 2
N 1
0 n N 1
(n=0,1,...,N-1) .
4.1快速傅里叶变换
二者计算量相同, 因此以DFT为例, 则 完成整个DFT运算共需 N * N 次复数乘 法以及N * ( N - 1 ) 次复数加法. 即 4 * N * N 次实数乘法及2 N * ( 2 N - 1 ) 次实数 加法. 当 N=1024 时 , 直 接 DFT 算 法 需 复 乘 1,048, 576次, 所以要进行数字的实时处 理, 就必须设法减少其运算量.
数字信号处理DSP4-1

量化数据压缩:差分量化
xn yn xn xn 1
信号编码的数据压缩
当编码对象出现概率不同时,对出现概率大的 对象采用较短字长编码,可以有效降低数据量,变 字长编码的平均位数(字长)可以表达为
n
第k个对象的字长*第k个对象出现的概率
Huffman 编码
先对数据对象进行扫描,确定不同数据对象的 出现概率,然后根据不同概率进行编码。该方法被 广泛应用于各类数据压缩:rar、zip、JPEG 例:在3位量化时,具有8种可能的测量值;
am 1 N源自2 Nm0 1 m N 1
离散余弦变换:DCT特点
对N个时间信号测量数据进行变换,得到N个频率 分量构成的频谱序列; 时间序列和频谱序列均为正区间中的N点实数序 列; 运算只涉及实数乘法,可以建立快速算法;
变换具有低通特点,用于声音和图象处理时,数
采样频率与数据
数字电话音质:8K (200HZ-3.4kHZ)
调幅广播音质:11K
调频广播音质:22K
CD音质: 44K CD VCD MP3
专业音质:48K
专业音频 DVD
量化数据压缩:非等距量化
根据听觉的对数效应,采用压扩技术进行非等 距量化,可以在保持听觉精度的条件下有效降低量 化位数。
量化数据压缩:非等距量化
数字信号处理
第四章 数据压缩系统
音频信号的压缩
差分量化与霍夫曼编码
变换压缩与DCT原理
数字信号的数据量
音频信号:频率范围20—20K 采样频率:40K 量化位数:16bit
数据量:640K bps
信号存储时占用大量存储资源; 信号传输时占用大量频带资源。
数据压缩
DSP的开发环境第四章

DSP的开发环境第四章
TI DSP有那些开发工具?
TI公司为TMS320系统的集成与调试 所提供的工具包括:
软仿真器(Simulator)-------软件仿真器 DSP入门套件(DSK,DSP Starter Kit) 标准评估模块(EVM) 扩展开发系统XDS(eXtended Development System)---------硬件仿真器需软件配合使用 集成开发软件CCS(Code Composer Stdio)
归档器允许用户将一组文件归入一 个档案文件(库)。例如,将若干 个宏归入一个宏库,汇编器将搜索 这个库,并调用源文件中使用的宏。 也可以用归档器将一组目标文件收 入一个目标文件库,连接器将连接 库内的成员,并解决外部引用
DSP的开发环境第四章
交叉引用列表器 (Cross-Reference Lister)
连接器(Linker)
连接器的基本任务是将目标文件 连接在一起,产生可执行模块。连 接器可以接受的输入文件包括汇编 器产生的COFF目标文件、命令文件、 库文件、以及已部分连接好了的文 件。它所产生的可执行COFF目标模 块可以装入各种开发工具,或由 TMS320器件来执行
DSP的开发环境第四章
归档器(Archiver)
DSP的开发环境第四章
通用优化
优化转移/简化控制流 分析程序的转移情况,重新安排操作 顺序,消去转移或多余的条件
在循环中总是计算同样值的表达式, 移到循环外面
DSP的开发环境第四章
通用优化
优化循环相关变量,例如:
为数组元素设置下标的代码改为指 针增量的代码; 用计数器控制的循环写成块循环, 或使用高效的增/减量转移指令
DSP的开发环境第四章
软仿真器的性能在主机上执行 Nhomakorabea户的DSP程序
TI DSP有那些开发工具?
TI公司为TMS320系统的集成与调试 所提供的工具包括:
软仿真器(Simulator)-------软件仿真器 DSP入门套件(DSK,DSP Starter Kit) 标准评估模块(EVM) 扩展开发系统XDS(eXtended Development System)---------硬件仿真器需软件配合使用 集成开发软件CCS(Code Composer Stdio)
归档器允许用户将一组文件归入一 个档案文件(库)。例如,将若干 个宏归入一个宏库,汇编器将搜索 这个库,并调用源文件中使用的宏。 也可以用归档器将一组目标文件收 入一个目标文件库,连接器将连接 库内的成员,并解决外部引用
DSP的开发环境第四章
交叉引用列表器 (Cross-Reference Lister)
连接器(Linker)
连接器的基本任务是将目标文件 连接在一起,产生可执行模块。连 接器可以接受的输入文件包括汇编 器产生的COFF目标文件、命令文件、 库文件、以及已部分连接好了的文 件。它所产生的可执行COFF目标模 块可以装入各种开发工具,或由 TMS320器件来执行
DSP的开发环境第四章
归档器(Archiver)
DSP的开发环境第四章
通用优化
优化转移/简化控制流 分析程序的转移情况,重新安排操作 顺序,消去转移或多余的条件
在循环中总是计算同样值的表达式, 移到循环外面
DSP的开发环境第四章
通用优化
优化循环相关变量,例如:
为数组元素设置下标的代码改为指 针增量的代码; 用计数器控制的循环写成块循环, 或使用高效的增/减量转移指令
DSP的开发环境第四章
软仿真器的性能在主机上执行 Nhomakorabea户的DSP程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
要 点
1.标号必须从第1列写起, 2.标号最多可达32个字符,可以是A~Z,a~z,0~9, _,以及$,但标号的第1个字符不能是数字。 3.引用标号时,标号的大小写必须一致。 4.标号的值就是段程序计数器SPC的值。 5.如果不用标号,则第一个字母必须为空格、分号 或星号(*)。
11
[标号][:] 空格 [助记符] 空格 [操作数] 空格 [;注释]
16
3.汇编命令 ⑶ 调整SPC的指令 如.align等。 ⑷ 对输出列表文件格式化的命令
如.drlist、.drnolist等。
⑸ 引用其他文件的命令
如copy、.def、.global、.include、.mlib、 .ref等。
17
3.汇编命令 ⑹ 控制条件汇编的命令 如.break、.else、.elseif、.endif、.endloop、 .if、.loop等。
25
2.列表文件 列表文件中包括源程序语句和目标代码
TMS320C54x COFF Assembler Version 3.70 Tue Oct 19 12:42:59 2004 Copyright (c) 1996-2001 Texas Instruments Incorporated example.asm PAGE 1 1 * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * 2 * example.asm y=a1*x1+a2*x2+a3*x3+a4*x4 * 3 * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * 5 .mmregs ;定义存储器映象寄存器 6 000000 STACK .usect "STACK",10h ;分配10个单元的堆栈空间 7 000000 .bss a,4 ;为系数a分配4个单元的空间 8 000004 .bss x,4 ;为变量x分配4个单元的空间 9 000008 .bss y,1 ;为结果y 分配1个单元的空间 10 .global _c_int00 ;定义标号
要点
可以是助记符指令、汇编指令、宏 指令和宏调用命令。 1.助记符指令,一般用大写; 2.汇编命令和宏命令,以句号“.‖ 开始,且为通常用小写。
12
建议
[标号][:] 空格 [助记符] 空格 [操作数] 空格 [;注释]
要点
1.指令中的操作数或汇 编命令中定义的内容 2.操作数之间必须用逗 号“,”分开。
第四章 DSP软件开发过程
内容提要 可编程DSP芯片开发需要一套完整的软、硬件开发工具。 通常可分成代码生成工具和代码调试工具两大类。 代码生成工具是指将高级语言或汇编语言编写的DSP程序 转换成可执行的DSP芯片目标代码的工具程序,主要包括汇 编器、链接器和C编译器以及一些辅助工具程序等。 代码调试工具包括C/汇编语言源码调试器、仿真器等。 本章主要介绍代码生成工具,包括’C54x软件开发流程、 汇编语言程序的编写、编辑、汇编和链接过程、COFF段的 一般概念、汇编器和链接器处理段的方法以及程序的重定位 等。
软件仿真器:是一种模拟DSP芯片各种功能并
在非实时条件下进行软件调试的调试工具,它不需 目标硬件支持,只需在计算机上运行。 初学者工具DSK:是TI公司提供给初学者进行 DSP编程练习的一套廉价的实时软件调试工具。
7
2. ’C54x的开发工具
(2)代码调试工具:
可扩展的开发系统仿真器(XDS510):可用来 进行系统级的集成调试,是进行DSP芯片软硬件开发 的最佳工具。 评价模块EVM板:是一种低成本的开发板,可 进行DSP芯片评价、性能评估和有限的系统调试。
1
第四章 DSP软件开发过程
第一节 汇编语言程序的编写方法
第二节
第三节
汇编语言程序的汇编
COFF的一般概念
第四节
目标文件的链接
2
软件开发过程
3
2. ’C54x的开发工具
(1)代码生成工具:
C编译器:用来将C/C++语言源程序自动编译为 ’C54x的汇编语言源程序。 汇编器:用来将汇编语言源文件汇编成机器语 言COFF目标文件。 链接器:将汇编生成的、可重新定位的COFF目 标模块组合成一个可执行的COFF目标模块。 文档管理器:允许用户将一组文件(源文件或 目标文件)集中为一个文档文件库。
要点
1.从分号“;”开始 2.可以放在指令或汇编命令后面, 也可以放在单独的一行或数行。
13
2.汇编语言源程序的数据型式
二进制:如1110001b或1111001B; 八进制:226q或572Q; 十进制:1234或+1234或-1234(缺省型) 十六进制:0A40h或0A40H或0xA40 浮点数:1.623e-23(仅C语言程序中能用,汇编程序不能用) 字符:‘D’ 字符串:“this is a string‖
24
1.运行汇编程序 汇编器是名为asm500.exe的可执行程序 axm500 [input file[object file[listing file]]][-options] 例如 axm500 cjy.asm -l -s -x 源程序cjy.asm经汇编后将生成一个cjy. obj目标 文件、列表文件、符号表(在目标文件中)以及交 叉引用表(在列表文件中)。
* * * *
例4-2 宏定义、宏调用和宏展开的一个例子。
add3
ADDRP=P1+P2+P3
;说明宏功能
add3
.macro p1,p2,p3,ADDRP ;定义宏 LD p1,A ADD p2,A ADD p3,A STL A,ADDRP .endm ;将参数1赋给A ;将参数2与A相加 ;将参数3与A相加 ;将结果A的低字存参数4 ;结束宏
4
2. ’C54x的开发工具
(1)代码生成工具:
助记符指令—代数式指令翻译器:用来将包含 助记符指令的汇编语言源文件转换成包含代数式指令 的汇编语言源文件。 建库实用程序:用来建立用户自己使用的、并 用C/C++语言编写的支持运行的库函数。 十六进制转换程序:可以很方便地将COFF目标 文件转换成TI、Intel、Motorola等公司的目标文件 格式。
8
第一节
汇编语言程序的编写方法
汇编语言程序的编辑、汇编和链接过程
9
1.汇编语言源程序的句法格式 要点 格式
[标号][:] 空格 [助记符] 空格 [操作数] 空格 [;注释]
以.asm为扩展名 每一行由4个部分组成
[ ]中的 内容为可 选择部分
供本程序的其它部分或其它程序调 用。标号是任选项,标号后面可以 加也可以不加冒号“:”。 10
⑺ 在汇编时定义符号的命令 如.asg、.endstruct、.equ、.eval、.label、 .set、.sruct等。
⑻ 执行其他功能的命令 如.algebraic、.emsg、.end、.mmregs、.mmsg、 .newblock、.sblock、.version、.vmsg等。
18
例4-1 编写计算y=a1*x1+a2*x2+a3*x3+a4*x4的汇编源程序 * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * * example.asm y=a1*x1+a2*x2+a3*x3+a4*x4 * * * * * * * * * * * * * * * * * * * * * * * * * ** * * * * * * * .title ―example.asm‖ ;为汇编源程序取名 .mmregs ;定义存储器映象寄存器 STACK .usect ―STACK‖,10h ;分配10个单元的堆栈空间 .bss a,4 ;为系数a分配4个单元的空间 .bss x,4 ;为变量x分配4个单元的空间 .bss y,1 ;为结果y 分配1个单元的空间 .def _c_int00 ;定义标号_c_int00 .data .word ;定义数据代码段 ;在标号table开始的8个单元 ;为这8个单元赋初值
4.宏定义和宏调用
宏指 令与 子程 序的 异同
(1)两者都可以被多次调用,但是把子程 序汇编成目标代码的过程只进行一次,而在 用到宏指令的每个地方都要对宏指令中的语 句逐条地进行汇编。 (2)在调用前,由于子程序不使用参数, 故子程序所需要的寄存器等都必须事先设置 好;而对于宏指令来说,由于可以使用参数, 调用时只要直接代入参数就行了。 (3)宏指令可以在源程序的任何位置上定 义,但必须在用到它之前先定义好。宏定义 21 可以嵌套。
.global abc,def,ghi,adr ;定义全局符号 000000 000000 000001 000002 000003 add3 1000! 0000! 0000! 8000! abc,def,ghi,adr ;调用宏 LD abc,A ;宏展开 ADD def,A ADD ghi,A STL A,adr
5
2. ’C54x的开发工具
(1)代码生成工具:
绝对制表程序:将链接后的目标文件作为输入, 生成.abs输出文件。 交叉引用制表程序:利用目标文件生成一个交
叉引用清单,列出链接的源文件中的符号以及它们的
定义和引用情况。
6
2. ’C54x的开发工具
(2)代码调试工具:
C/汇编语言源码调试器:与软件仿真器、评 价模块、软件开发系统、软件仿真器等配合使用。
15
3.汇编命令 ⑴ 对各种段进行定义的命令 如.bss、.data、.sect、.text、.usect等。 ⑵ 对常数(数据和存储器)进行初始化的命令 如.bes、.byte、.field、.float、.int、.log、 .space、.string、.pstring、.xfloat、.xlong、 .word等。