6汇编语言程序设计TMS320C54XDSP结构、原理及应用- 32页PPT文档

合集下载

TMS320C54DSP原理应用第2章_图文.

TMS320C54DSP原理应用第2章_图文.

第2章TMS320C54x的CPU结构和存储器配置2.1 TMS320C54x DSP的结构2.2 TMS320C54x的总线结构2.3 TMS320C54x的CPU结构2.4 TMS320C54x存储器和I/O空间2.1 TMS320C54x DSP的结构2.1.1 TMS320C54x DSP的基本结构图2-1和图2-2给出了TMS320C54x的两种结构框图。

图2-1 TMS320C54x 的组成框图PAB PB CAB CB DAB DB EAB EB MUX T Register EXP Encoder Miltiplier FractionalZero Sat RoundA(40B(40COMP TRN TCMSW/LSW SelectBarrel ShifterARAU0.ARAU1AR0~AR7ARP.BK.DP.SPPC.IPTR.RC.BRC.RSA.REASystem Control interface Program Address Generation Logic(PAGENData Address Generation Logic (PAGENMemory and External Interface Peripheral InterfaceX D ABSign ctrSign ctrT DA AB CD A B 0MUXAdder (40MUXAMU BALU (40Sign ctr Sign ctrT ABCDSAB MUXB A CD Sign ctrSLegend:A Accumulator AB Accumulator BC CB Data BusD DB Data BusE EB Data Bus M MAC UnitP PB Program Bus S Barrel Shifter T T Register U ALUE图2-2 TMS320C54x 的功能框图BufferedSerial Port(BSPTimer TDM Serial PortStandard Serial Port Host PortInterface(HPI16/8Multi -channel Buffere Serial Port(McBSP PLL Clock Generator S/W Waitstate GeneratorPower ManagementJATG Emulation Control Program Data/RAMProgram Data/ROMP e r i p h e r a l B u sDMACh0Ch1Ch2Ch3Ch4Ch5C54x DSP CPU40bit ALU CMPS Operator(VITE RBIEXP Encoder ALU17*17 MPY40bit Adder RND ,SAT MAC 40bit ACCA Accumulators(-16,31Shifter40bit ACCB40bit Barrel 8 Auxiliary Register Addressing Unit2 Addessing Units D(15~0A(22~0TMS320C54x是16位定点DSP。

第4章TMS320C54XDSP指令系统10PPT课件

第4章TMS320C54XDSP指令系统10PPT课件
56
57
中断指令同样可以改变程序指针PC的值,使程序从一个地址跳转 到另一个地址执行。但与调用指令一样,DSP在执行完中断服务程序 后要返回发生中断的地方继续执行原来的程序。当发生中断时,DSP 会置INTM为1,屏蔽所有可屏蔽中断,并在中断标志寄存器IFR中设 置相应的中断标志。
INTR指令使ST1的INTM位(bit11)置1关中断
14
算术运算类指令
’c54x的算术运算指令丰富,且运算能力强大。算术运 算指令用于完成加减乘除等算术运算。按照功能可将算术运算 类指令分为7组:
(1)加法指令(Add) (2)减法指令(Subtract) (3)乘法指令(Multiply) (4)乘加指令(Multiply-accumulate) (5)乘减指令(Multiply-subtract) (6)双字指令(32比特操作数) (7)专用指令(Application-specific)
25
举例:应用 SUBC DATA, A 计算( 8/2)
................................
stm #1001h , AR3 stm #1002h , AR4 ld #20h , DP st #0002h , 00h ld #0008h , A
rpt #15 subc 00h, A stl A,*AR3
;将相减的结果(高16位) ;存入1063地址单元
23
24
利用SUBC实现除法运算
在‘C54X中没有提供专门的除法指令, 一般有两种方法来完成除法。
一种是用乘法来代替,除以某个数相当于乘以其倒 数,所以先求出其倒数,然后相乘。这种方法适用于 除以一个常数。
另一种方法是使用SUBC(条件移位减法)指令, 重复16次减法操作完成一次除法运算。

DSP技术及应用系统设计PPT电子课件教案-第3章 TMS320C54x软件开发模板

DSP技术及应用系统设计PPT电子课件教案-第3章  TMS320C54x软件开发模板

4.注释区

汇编程序举例(1)
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ; 64-bit Addition
;
; X3 X2 X1 X0 ; + Y3 Y2 Y1 Y0 ; ––––––––––––– ; W3 W2 W1 W0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ADD64: DLD @X1,A ;A = X1 X0 DADD @Y1,A ;A = X1 X0 + Y1 Y0 DST A,@W1 DLD @X3,A ;A = X3 X2 ADDC @Y2,A ;A = X3 X2 + 00 Y2 + C ADD @Y3,16,A ;A = X3 X2 + Y3 Y2 + C DST A,@W3


.text — 此段存放程序代码。
.data — 此段存放初始化了的数据。 .bss — 此段存入未初始化的变量。 .sect '名称' — 定义一个有名段,放初始化了的数据或程 序代码。
2.条件汇编伪指令

.if、.elseif、.else、.endif 伪指令告诉汇编器按照表达式 的计算结果对代码块进行条件汇编。 .if expression — 标志条件块的开始,仅当条件为真 (expression的值非0即为真)时汇编代码。 .elseif expression — 标志若.if条件为假,而.elseif条件 为真时要汇编代码块。 .else — 标志若.if条件为假时要汇编代码块。 .endif — 标志条件块的结束,并终止该条件代码块。

第6章 'C54x的汇编语言程序设计

第6章 'C54x的汇编语言程序设计
2013年8月2日 DSP原理及应用 15
第6章 TMS320C54x汇编语言程序设计
4.操作数 (2) 伪指令的立即数 将“#”加在数值之前而构成的立即数方式,主 要用在指令中。
通常,立即数在伪指令中用的较少,但在某些 例如: 情况下,立即数也可以作为伪指令的操作数。 SUB # 18, B ; 操作数#18为立即数 例如: .byte 18
【例5.1.1】 助记符指令源语句举例。
Begin: 标 号
2013年8月2日
LD #NANHUA,AR1 ; 将1加载到AR1 助记符 操作数 注 释
DSP原理及应用 5
第6章 TMS320C54x汇编语言程序设计
1. 源文件格式
语句的书写规则:
① 所有语句必须以标号、空格、星号或分号 (*或;)开始; ② 标号是可选项,若使用标号,则标号必须 从第一列开始; ③ 所有包含有汇编伪指令的语句必须在一行 完成指定; ④ 各部分之间必须用空格分开,Tab字符与空 格等效;
立即数方式没有使用#,但汇编器认为操作数是 一个数值18(即立即数),用18数值初始化一个字节。
2013年8月2日 DSP原理及应用 16
第6章 TMS320C54x汇编语言程序设计
5.注释 用来说明指令功能的文字,便于用户阅读。 注释可位于句首或句尾,位于句首时,以 “*”或“;”开始,位于句尾时,以分号 “;”开始。 注释可单独一行或数行; 注释是任选项。 例如:
用累加器的低23位指定的地址加载PC和XPC
DSP原理及应用 23
第6章 TMS320C54x汇编语言程序设计
1. 分支转移程序
无条件分支转移:无条件执行分支转移; 条件分支转移:要在满足用户一个或多个条件时 才执行分支转移; 远程分支转移:允许分支转移到扩展存储器。

绪论《TMS320C54XDSP结构、原理及应用》

绪论《TMS320C54XDSP结构、原理及应用》

如JPEG、MC54xDSP可以用于实现各种图像识别算法,如人脸识别、手势
识别等。
在自动控制系统中的应用
控制系统建模与仿真
利用TMS320C54xDSP的高速运算能力,可以实现各 种控制系统的建模与仿真。
控制系统分析与优化
利用TMS320C54xDSP的高速运算能力,可以对控制 系统进行分析和优化,提高控制系统的性能。
音频处理
音频压缩、音频分析、音频合 成等。
控制与自动化
电机控制、智能仪表、自动控 制系统等。
TMS320C54xDSP的主要特点
高性能
采用哈佛结构,流水线作业,运算速度快。
低功耗
采用低功耗设计,适合于电池供电和便携式 设备。
定点运算
采用定点运算,无需浮点运算器,降低了成 本和功耗。
可扩展性
具有可扩展的外部存储器和I/O接口,方便 系统集成和升级。
存储器结构
1
TMS320C54xDSP具有内部和外部存储器两种类 型的存储器结构。
2
内部存储器包括程序存储器和数据存储器,用于 存储程序代码和临时数据。
3
外部存储器通过外部总线接口与DSP相连,提供 更大的存储空间。
输入/输出(I/O)接口
01
I/O接口是TMS320C54xDSP与外部设备进行通信的桥梁。
02 TMS320C54xDSP的结 构
中央处理单元(CPU)
01
CPU是TMS320C54xDSP的核心部分,负责执行指令和控制数 据流。
02
它包括算术逻辑单元(ALU)、累加器、程序计数器、指令寄
存器等组件。
CPU通过指令集架构(ISA)与外部组件进行通信,以执行各种
03

TMS320C54x的指令系统精品PPT课件

TMS320C54x的指令系统精品PPT课件

16位双寻址操作数,用于双操作数指令,从CB数据总 线上读取
16位立即数:数据存储器地址(0~65 535)
16位立即数:程序存储器地址(0~65 535)
16位立即数:I/O口地址(0~65 535)
源累加器(A或B)
目的累加器(A或B)
16位长立即数
2021/1/9
DSP原理及应用
4
3.1.1 立即寻址
第3章 TMS320C54x的指令系统
着重介绍助记符指令的分类及基本功能: ● 寻址方式 ● 指令表示方法 ● TMS320C54x的指令系统
2021/1/9
DSP原理及应用
1
3.1 寻址方式
寻址方式:当硬件执行指令时,寻找指令所指定的参与运
算的操作数的方法。 立即寻址 累加器寻址 间接寻址 寄存器寻址
用途:用于完成程序存储空间与数据存储空间之间的数据 传输
2021/1/9
DSP原理及应用
8
3.1.4 直接寻址
利用数据指针DP和堆栈指针SP寻址
指令格式:
15 ~ 8
7
6~0
操 作 码 I = 0 数据存储器地址(dmad)
指令的8位操作码
数据存储器地址 包含了数据存储器偏移地址
指令的标识符 表示指令为直接寻址
指令中含有执行指令所需的操作数。操作数紧随操作
码存放在程序存储器中。
例如: LD #F180,A ;将立即数F180加载到A
立即数的数值形式:
程序存储器
短立即数:3、5、8、9位,单字指令 长立即数:16位,双字指令 用途:用于表示常数或对寄存器初始化
操作码 立即数F180
特点:指令中含有一个固定的立即数,运行速度

第4章 TMS320C54x汇编语言程序设计PPT课件

第4章  TMS320C54x汇编语言程序设计PPT课件

2020/8/17
6
⑤ 程序中注释是可选项。如果注释在第一列开始时,前面必 须标上星号“*”或分号“;”,在其他列开始的注释前面必须 以分号“;”开头;
⑥ 如果源程序很长,需要书写若干行,可以在前一行用反斜 杠字符(\)结束,余下部分接着在下一行继续书写。
2020/8/17
7
1.标号 所有汇编指令和大多数汇编伪指令都可以选用标号,供本程序或 其它程序调用。使用标号时应注意: ① 标号必须从语句的第1列写起,标号后可附加冒号“:” ;
2020/8/17
20
【例】 有效定义的表达式。
label1
label2 X goodsym1 goodsym3 goodsym4
.data .word .word .word .word .set .set .set .set
0 1 2 3 50h l00h + X label1 label2-label1
2020/8/17
23
4.2 堆栈的使用方法
当程序调用中断服务程序或子程序时,需要将程 序计数器PC的值和一些重要的寄存器值进行压栈保 护,以便程序返回时能从间断处继续执行。
’C54x提供一个用16位堆栈指针SP寻址的软件 堆栈。
当向堆栈中压入数据时,堆栈是从高地址向低地 址方向填入,堆栈指针SP先减1,然后将数据压入堆 栈。
2020/8/17
10
指令:
❖算术运算指令 ❖逻辑运算指令 ❖程序控制指令 ❖装入和存储指令
2020/8/17
11
伪指令
伪指令为程序提供数据、控制汇编过程。 伪指令在汇编时,不产生目标代码。
2020/8/17
12
3. 操作数
操作数是指指令中参与操作的数值或汇编伪指令定义的内容, 紧跟在助记符的后面,由一个或多个空格分开。

最新6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》

最新6汇编语言程序设计《TMS320C54XDSP结构、原理及应用》
6汇编语言程序设计《 TMS320C54XDSP结构、原理
及应用》
2
概述
汇编语言源程序格式:
助记符指令一般包含4个部分,其一般组成形式为:
➢ [标号][:] 助记符 [操作数] [;注释]
书写格式规则详见P138,①②③④⑤⑥!
标号—所有汇编指令和大多数汇编伪指令前面都可以带有 标号;必须从第一列开始书写;最多32个字符;由字母、数 字、下划线和$组成,且不能以数字开头;分大小写;冒号 不属于标号名;没有标号的源语句第一列必须为空格、星号 或分号。
◆ 循环操作
.bss x, 10
.bss y,
1
当条件满足时,重复执行某一段程序ta;bl可e: 以通.w过ordBAN1Z,2指,3,4令,5实,6,7现,8。,9,10
指令格式: BANZ
转移地址, 辅助寄存.d器ef start
指令功能:当辅助寄存器不为0时,s则tar转t:至转S移 TM地址;#0否 , SW则W,S顺R 序执
说明
AEQ BEQ ANEQ BNEQ ALT BLT
ALEQ
BLEQ AGT BGT AGEQ BGEQ
A=0 累加器A等于0
AOV
B=0 累加器B等于0
BOV
A0 累加器A不等于0 ANOV
B0 累加器B不等于0 BNOV
A<0 累加器A小于0
C
B<0 累加器B小于0
NC
A0 累加器A小于等于0 TC
FBACC[D] 用累加器的低23位指定的地址加载PC和XPC
【例】5.3.1 分支转移
12.02.2021
湖南理工学院 胡 子程调用
分类
指令
说明
CALL[D] 无条件调用

DSP精讲课件第5章 'C54x的汇编语言程序设计

DSP精讲课件第5章 'C54x的汇编语言程序设计

2016年11月11日
DSP原理及应用
7
第5章 TMS320C54x汇编语言程序设计
2. 符号常数
【例5.1.3】 定义符号常数举例。 N .set 512 buffer .set 4 * N nzg1 .set 1 nzg2 .set 2 nzg3 .set 3
2016年11月11日
DSP原理及应用
2016年11月11日 DSP原理及应用 11
第5章 TMS320C54x汇编语言程序设计
4. 局部标号
【例5.1.4】合法、非法局部标号$n举例。 假设符号ADDRA,ADDRB,ADDRC已经在前面作了定义。 Label1: LD ADDRA,A SUB ADDRB,A BC $1,ALT LD ADDRB,A B $2 $1 LD ADDRA,A $2 ADD ADDRC,A .newblock BC $1,ALT BC $1,ALT STL A,ADDRC STL $1 NOP A,ADDRC $1 NOP
1. 源文件格式 助记符指令源语句的每一行通常包含4个部分: 标号区、助记符区、操作数区和注释区。 助记符指令语法格式: [标号][:]
NANHUA
助记符
.set 1
[操作数]
[; 注释]
; 符号NANHUA=1
【例5.1.1】 助记符指令源语句举例。
Begin: 标 号
2016年11月11日
LD #NANHUA,AR1 ; 将1加载到AR1 助记符 操作数 注 释
第5章 TMS320C54x汇编语言程序设计
5. 比较转移程序 例如:比较操作后条件分支转移
STM STM … … … … CMPR BC
2016年11月11日

MS320C54x的硬件结构DSP技术与应用实例第3版ppt课件

MS320C54x的硬件结构DSP技术与应用实例第3版ppt课件

算术逻 辑运算
桶形 移位器
中央处置器
比较器
2.2 总线构造
1.总线数目与作用
1条程序总线(PB): 传送取自程序存储器的指令代码和立刻操作数
3条数据总线(CB、DB和EB): 将内部各单元衔接在一同
4条地址总线(PAB、CAB、DAB和EAB): 传送执行指令所需的地址
2. 各种方式所用到的总线
15~7 6
5
4
3
2
1
0
IPTR MP/MC OVLY AVIS DROM CLKOFF SUML SST
(2)数据存储前的饱和处置步骤
a.根据指令要求对累加器的40位数据进展移位。 b.将40位数据饱和处置成32位数据,饱和处置与SXM位有关。 c.按指令要求操作数据。 d.在指令执行期间,累加器的内容不变。
2.形状存放器ST0
ST0反映寻址要求和计算的中间运转形状。 ST0各位的定义:
15~13 12
11
10
9
8~0
ARP
TC
C
OVA OVB
DP
3.形状存放器ST1
ST1反映寻址要求,计算的初始形状设置,I/O及中断控制。
ST1各位的定义:
15 14 13 12 11 10 9 8 7 6
5
4~0
BRAF CPL XF HM INTM 0 OVM SXM C16 FRCT CMPT ASM

2.3 中央处置器
中央处置器〔CPU〕由运算部件和控制部件组成:
(1)一个40位的算术逻辑单元〔ALU〕 (2)两个40位的累加器〔ACCA和ACCB〕 (3)一个桶形移位器 (4)17×17位乘法器 (5)40位加法器 (6)比较、选择和存储单元〔CSSU〕 (7)指数编码器 (8)各种CPU存放器

精品课件-TMS320C54X DSP原理及应用-第3章

精品课件-TMS320C54X DSP原理及应用-第3章
(Smem)中的操作数。 例如: STL A,*(SAMPLE);SAMPLE是一个16位符号常数
21
第3章 指令系统
3.累加器寻址
有两条指令可以用累加器寻址:
READA Smem
;把累加器A所确定的程序存储单元
中的内容传送到由
;Smem所指定的数据存储单元中
WRITA Smem
;将Smem所指定的数据存储
寻找128个存储单元中的任何一个单元地址。直接寻址的优点 是访问方便快捷,每条指令只需要一个字。直接寻址的代码格 式如下:
25
第3章 指令系统 当状态寄存器ST1中的CPL位等于0时,ST0中的DP值
(9位地址)与指令中的7位地址一起形成16位数据存储器地址,以 OP为基准的直接寻址如图3-2所示。
34
第3章 指令系统 2~0位:3位辅助寄存器域,它定义了寻址所使用的辅助寄
存器。ARP由状态寄存器ST1中的兼容方式位CMPT来决定。 CMPT=0:标准方式。ARP始终设置为0,不能修改。 CMPT=1:兼容方式。 表3-4列出了16种单数据存储器操作数的间接寻址类型。
35
第3章 指令系统
36
30
第3章 指令系统 编程时直接寻址和立即寻址容易混淆。例如,ST1中的CPL=1,
SP=0120H,指令“LDU 34H,A”是一条直接寻址指令,表示将数 据空间0120H + 34H = 0154H单元的内容装入累加器A。如果要装 入一个立即数,立即数前一定要加“#”符号。值得注意的是, 直接寻址时常数前面加符号“@”与不加是一样的,但地址范围 必须是0~127。
39
第3章 指令系统 例如:AR0=0000 1010B,AR2=0110 0110B,如执行
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
十六进制 浮点数
字符常数 字符串
30.08.2019
举例
10011000B,01111010b(最多16位) 226q,1001Q,0124(多达6位) 略
0DH,123H,0X89,0x0D(多达4位) 1.786e9(浮点数仅在C语言使用)
‘a’,’b’… “example”
湖南理工学院 胡文静 博士
30.08.2019
湖南理工学院 胡文静 博士
6
汇编语言表达式
表达式—由运算符、常数、符号等组成的一个式子;取值范围为-
32767~32768;优先级和结合性。
序号 1 2 3 4 5 6 7 8 9 10 11
符号 +-~! */%
+^
<< >> < <= > >= != =
& ∧ |
运算操作 取正、取负、按位求补、逻辑负 乘法、除法、求模 加法、减法 指数 左移、右移 小于、小于等于 大于、大于等于 不等于、等于 按位与运算 按位异或运算 按位或运算
TC=1 测试/控制标志位置1
TC=0 测试/控制标志位置0 BIO低 BIO信号电平为低 BIO高 BIO信号电平为高
无 无条件操作
条件分组详见P151,表5.3.5!例题5.3.3
30.08.2019
湖南理工学院 胡文静 博士
循环操作
14
.title "Ex534.asm"
.mmregs
stack .usect "STACK", 10h
item .struct
.int nzg1
$1
.int nzg2
$2
.int nzg3
tang .endstruct
array .tag
item
.bss
array, tang*N $1
LD SUB BC LD B
ADDRA, A ADDRB, A $1, ALT ADDRB, A $2
LD ADDRA, A ADD ADDRC, A .newblock BC $1, ALT STL A, ADDRC NOP
湖南理工学院 胡文静 博士
19
重复操作程序
重复执行一条指令或一段指令(指令块),因此可以分为单 指令重复和块重复。
.word 1
.word 2
label2 .word 3
X
.set 50h
goodsym1 .set 100h+X
goodsym2 .set $
goodsym3 .set label1
goodsym4 .set label2-label1
无效定义的表达式举例:
.global Y
badsym1 .set Y
求值顺序 从右至左 从左至右 从左至右 从左到右 从左至右 从左至右 从左至右 从左至右 从左至右 从左至右 从左至右
30.08.2019
湖南理工学院 胡文静 博士
7
有效定义表达式:
有效定义表达式—表达式中的符号或汇编时间常数在表达式之前
就已经被定义。
有效定义的表达式举例:
.data
label1 .word 0
LD
#0DBF8H, B
STM
#length, AR1 ;length为已分配堆栈长度
MVMM SP, AR4
loop: STL
B, *AR4-
BANZ
loop, *AR1-
② 运行程序;
③ 检查堆栈区的内容,从而确定程序实际使用的堆栈单元个数。
30.08.2019
湖南理工学院 胡文静 博士
10
控制程序
.text
start:
STM #0, SWWSR
STM #stack+10H, SP
STM #a, AR1
RPT #7
MVPD table, *AR1+
CALL SUM
end:
B
end
SUM:
STM #a, AR3
STM #x, AR4
RPTZ A, #3
MAC *AR3+, *AR4+, A
STL A, @y
FBACC[D] 用累加器的低23位指定的地址加载PC和XPC
【例】5.3.1 分支转移
30.08.2019
湖南理工学院 胡文静 博士
11
分支操作
2. 子程调用
分类
指令
说明
CALL[D] 无条件调用
CALA[D]
将返回的地址压入堆栈,并用该指令指定的地址加载PC 将返回的地址压入堆栈,用累加器A或B指定的地址加载PC
湖南理工学院 胡文静 博士
12
分支操作
3. 子程返回
分类
指令
说明
RET[D] 无条件返回 RETE[D]
RETF[D]
将堆栈顶部的返回地址加载到PC。 将堆栈顶部的返回地址加载到PC,并使能可屏蔽中断。 将RTN寄存器中的返回地址加载到PC,并使能可屏蔽中断。
条件返回 RC[D]
如果满足指令给定条件,将堆栈顶部的返回地址加载到PC。
STM #num, AR1
RPT #1
MVPD table, *AR1+
LD
@den, 16, A
MPYA @num
ABS A
STH A, @den
end:
18
LD ABS RPT SUBC XC NEG STL B .end
@num, A A #15 @den, A 1, BLT A A, @quot end
条件调用 CC[D]
如果满足指令给定条件,将返回的地址压入堆栈,并用该 指令指定的地址加载PC
远程调用
FCALL [D] 将XPC和PC压入堆栈,并用该指令指定的地址加载PC和XPC
FCALA [D]
将XPC和PC压入堆栈,用累加器的低23位指定的地址加载 PC和XPC
例5.3.2
30.08.2019
B0 累加器B小于等于0 NTC
A>0 累加器A大于0
BIO
B>0 累加器B大于0
NBIO
A0 累加器A大于等于0 UNC
B0 累加器B大于等于0
AOV=1 累加器A溢出 BOV=1 累加器B溢出 AOV=0 累加器A不溢出 BOV=0 累加器B不溢出
C=1 ALU进位位置1 C=0 ALU进位位置0
RET
.end
30.08.2019
16
指定堆栈空间 为变量预留空间
初值序列 设置堆栈指针 初始化变量
利用MAC和RPT求乘累加和
湖南理工学院 胡文静 博士
17
算术运算
◆ 加减和乘法 【例5.4.1】计算y=a×x+b 【例5.4.2】计算y=x1×a1+x2×a2
加法指令:ADD;乘法指令:MPY。
badsym2 .set 50h+Y
badsym3 .set 50h+Z
Z
.set 60h
可重新定位符号及合法表达式 详见表5.1.2(P146)
30.08.2019
湖南理工学院 胡文静 博士
8
有效定义表达式
举例:可重定位符号和绝对符号
.global extern_1
举例:判断下列表达式的合法性
intern_1: .word “D”
C54x具有丰富的程序控制指令,以完成分支操作、条件 操作及循环操作等。
◆ 分支操作 1. 分支转移
分类
无条件 分支转移
条件 分支转移
远程 分支转移
指令
说明
B[D] BACC[D] BC[D] BANG[D] FB[D]
用该指令指定的地址加载PC 用累加器的低16位指定的地址加载PC 若满足指令给定条件,用该指令指定的地址加载PC 若当前选择辅助寄存器不等于0,用该指令指定的地址加载PC 用该指令指定的地址加载PC和XPC
4
【例5.4.3】计算 y ai xi i 1
此例明显属于乘法-累加运算,所需核心指令:MAC,RPT
◆ 除法 C54X没有除法硬件,也没有专门的除法指令;但可以通
过条件减法SUBC和RPT指令达到目的。
30.08.2019
湖南理工学院 胡文静 博士
stack table: start:
◆ 循环操作
.bss x, 10
.bss y,
1
当条件满足时,重复执行某一段程序ta;bl可e: 以通.w过ordBAN1Z,2指,3,4令,5实,6,7现,8。,9,10
指令格式: BANZ
转移地址, 辅助寄存.d器ef start
指令功能:当辅助寄存器不为0时,s则tar转t:至转S移 TM地址;#0否 , SW则W,S顺R 序执
行。
STM #stack+10h, SP CALL init
10
【例题】计算 y xi i1
STM STM LD
#x, AR1
#9,AR2
#0,
A
loop: ADD *AR1+, A
BANZ loop, *AR2-
STL A,y
B
$
init: STM #x, AR1
RPT #9
MVPD table, *AR1+
RET
.end
30.08.2019
湖南理工学院 胡文静 博士
15
算术运算程序
◆ 加减和乘法 【例5.4.1】计算y=a×x+b 【例5.4.2】计算y=x1×a1+x2×a2
加法指令:ADD;乘法指令:MPY。
4
相关文档
最新文档