第八讲 汇编语言程序的阅读与理解111201
第八讲 汇编语言程序的阅读与理解
数据块传送程序 单字运算程序 小数运算程序
数据块传送程序 共有4种类型(10条指令): 共有 种类型( 条指令): 种类型 条指令 (1) 程序存储器 程序存储器←→数据存储器 数据存储器(MVPD,MVDP)。 数据存储器 , 。 (2) 数据存储器 数据存储器←→数据存储器 数据存储器(MVDK,MVKD,MVDD)。 数据存储器 , , 。 (3) 数据存储器 数据存储器←→MMR(MVMD、MVDM,MVMM) 、 , (4) 程序存储器 由ACC寻址 程序存储器(由 寻址)←→数据存储器 数据存储器(READA,WRITA) 寻址 数据存储器 , 这些指令的特点如下: 这些指令的特点如下: 传送速度比加载和存储指令要快; 传送速度比加载和存储指令要快; 传送速度比加载和存储指令要快 传送数据不需要通过累加器; 传送数据不需要通过累加器; 传送数据不需要通过累加器 可以寻址程序存储器; 可以寻址程序存储器; 可以寻址程序存储器 与RPT相结合时,都变成单周期指令,可以实现数据块传送。 与 相结合时, 相结合时 都变成单周期指令,可以实现数据块传送。
赋值, 例23: 编写一段程序,首先对数组 : 编写一段程序,首先对数组x[20]赋值,再将 赋值 数据存储器中的数组x[20]复制到数组 复制到数组y[20]。 数据存储器中的数组 复制到数组 。 .title “exp15.asm” .mmregs STACK .usect “STACK”, 30h .bss .bss .data table: .word 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 .def .text start x, 20 y, 20
Start: STM #x, AR1 RPT #19 ; 程序存储器传送到数据存储器 MVPD table, *AR1+ STM #x, AR2 STM #y, AR3 RPT end: B .end #19 ; 数据存储器传送到数据存储器 end MVDD *AR2+, *AR3+
/ c5416.cmd*/链接命令 链接命令 MEMORY { PAGE 0: VECT: origin = 0x28100, len = 0x100 IPROG1: origin = 0x200, len = 0x7c00 IPROG2: origin = 0x28200, len = 0x7c00 IPROG3: origin = 0x38000, len = 0x8000 FLASHL: origin = 0x40000, len = 0x40000 FLASHH: origin = 0x4000000,len = 0x80000
PAGE 1: SPRAM: origin = 0x60, len = 0x20 DARAM: origin = 0x80, len = 0x3f80 SARAM: origin = 0x8000, len = 8000 }
SECTIONS { .vector: .text: .cinit: .switch: .const: .stack: .data: .bss: STACK: }
{} > VECT PAGE 0 {} > IPROG2 PAGE 0 {} > IPROG2 PAGE 0 {} > IPROG2 PAGE 0 {} > IPROG2 PAGE 0 {} > IPROG1 {} > DARAM {} > DARAM {} > IPROG1
PAGE 0 PAGE 1 PAGE 1 PAGE 0
程序存储器 Table 000A8h 000A9h .data 1 2 … … 19 000BBh 20 00083h 00080h 00081h
数据存储器 .bss x1=1 x2=1 00094h 00095h
数据存储器 .bss y1=1 y2=1
x19=19 x20=20 000A7h
y19=19 y20=20
单字运算程序 4 试编一程序, 的值,并找出4项乘积 例24: 试编一程序,计算 y = ∑ ai xi 的值,并找出 项乘积 i =1 中的最大值, , , , 中的最大值 放入累加器A中 ai xi (i=1,2,3,4)中的最大值,放
入累加器 中。 .title “exp16.asm” .mmregs STACK .usect “STACK”, 10h ;堆栈的设置 .bss a, 4 为变量分配10个字的存储空间 ;为变量分配 个字的存储空间 .bss x, 4 .bss y1, 1 .bss y2, 1 .def start .data table: .word 1, 5, 3, 4 .word 8, 6, 7, 2 .text
start: STM STM STM RPT MVPD CALL SUM CALL MAX End: B SUM: STM STM RPTZ MAC STL RET
#0, SWWSR 插入0 ;插入0个等待状态 #STACK+10h,SP ;设置堆栈指针 #a, AR1 #7 table, *AR1+ ;调用乘累加子程序 ;调用求最大值子程序 end #a, AR3 #x, AR4 A, #3 *AR3+, *AR4+, A A, *(y1) 变量y1存放乘累加的值 ;变量 存放乘累加的值
MAX: STM STM STM LD Loop: LD MAX BANZ STL RET .end
#a, AR1 #x, AR2 #2,AR3 *AR1+, T;第一个乘积在累加器A中 第一个乘积在累加器 中
MPY *AR2+, A MPY *AR2+, B A
*AR1+, T;其他乘积在累加器B中 其他乘积在累加器 中 比较, ;累加器A和B比较,选大的存在 中 累加器 和 比较 选大的存在A中 ;此循环中共进行3次乘法和比较 此循环中共进行 次乘法和比较 ;变量y2存放的最大值 变量 存放的最大值
loop, *AR3A, *(y2)
假设.bss为变量a、x和y分配的10个字的存储空间,以数 据存储器的0060H为起始地址,结果y1=67(43h),最大 值y2=30(1Eh)。
练习: 已知 (30H)=50H,AR2=40H,AR3=60H,AR4=80H. MVKD 30H,*AR2 MVDD *AR2,*AR3 MVDM *AR3,AR4 运行以上程序后,(30H)(40H) AR3和 AR4的值分别等于多少呢?
.title " fir5.asm " .mmregs .def _c_int00 .data fir_table .word -6,28,46,27,-35,-100,-93,26,191,240,52,-291 .word -497,-278,337,888,773,-210,-1486,-1895,-442,2870 .word 6793,9445,9445,6793,2870,-442,-1895,-1486,-210,773 .word 888,337,-278,-497,-291,52,240,191,26,-93 .word -100,-35,27,46,28,-6 .data input .word 0x7FDE,0x04CF,0xF7FD,0xE2D4,0xE6F3,0x1AE5,0x9A5F,0xED44,0x0D2C,0x42A1 .word 0x48C3,0xCEF2,0x2889,0xFD21,0xFD3E,0xC78E,0x988E,0x30AC,0x0FBB,0x3216 .word 0x0000,0x058B,0x5BAF,0xDBB1,0xDD85,0xA6EE,0xEFE8,0x347D,0xD778,0x21D4 .word 0x0C7C,0x5688,0x2784,0xAC72,0xEE91,0xCC24,0x190E,0xDC23,0xD14A,0x4D7E .word 0x2A9F,0x4D7E,0xD14A,0xDC23,0x190E,0xCC24,0xEE91,0xAC72,0x2783,0x5688 .word 0x0C7C,0x21D4,0xD778,0x347D,0xEFE8,0xA6EE,0xDD85,0xDBB1,0x5BAF,0x058C .word 0x0000,0x3216,0x0FBB,0x30AC,0x988F,0xC78E,0xFD3E,0xFD21,0x2889,0xCEF2 .word 0x48C3,0x42A1,0x0D2C,0xED44,0x9A5F,0x1AE5,0xE6F4,0xE2D3,0xF7FD,0x04CF .word 0x7FDE,0x04CF,0xF7FD,0xE2D4,0xE6F3,0x1AE5,0x9A5F,0xED44,0x0D2C,0x42A1 .word 0x48C3,0xCEF2,0x2889,0xFD21,0xFD3E,0xC78E,0x988E,0x30AB,0x0FBB,0x3216 .word 0x0000,0x058B,0x5BAF,0xDBB1,0xDD85,0xA6EF,0xEFE8,0x347D,0xD778,0x21D4 .word 0x0C7C,0x5688,0x2784,0xAC72,0xEE91,0xCC24,0x190D,0xDC24,0xD149,0x4D7E .word 0x2A9F,0x4D7E,0xD14A,0xDC23,0x190E,0xCC24,0xEE91,0xAC72,0x2783,0x5688 .word 0x0C7C,0x21D4,0xD778,0x347D,0xEFE8,0xA6EE,0xDD86,0xDBB1,0x5BAF,0x058C .word 0x0000,0x3216,0x0FBB,0x30AC,0x988F,0xC78D,0xFD3E,0xFD21,0x2889,0xCEF1 .word 0x48C3,0x42A2,0x0D2C,0xED44,0x9A5F,0x1AE5,0xE6F4,0x
E2D3,0xF7FD,0x04CF fir_coff .usect "fir_coff",48 in_buf .usect "in_buf",48 .bss in,160 .bss out_buf,112 .text _c_int00: SSBx FRCT;小数乘法编程时,设置FRCT(小数方式)位 STM #in,AR1 RPT #159 MVPD input,*AR1+ STM #fir_coff,AR1 RPT #47
汇编源文件fir5.asm
FIR滤波运算FIR2: ;FIR滤波运算 滤波运算 RPTZ A,#47 MAC *AR2+0%, *AR3+0%,A ; STH A,*AR6+ MVDD *AR5+,*AR2+0%;用最新的样本值替代最旧的样本值 用最新的样本值替代最旧的样本值 BANZ FIR2,*AR7-
1.定点DSP中数据表示方法 定点DSP芯片的数值表示是基于2的补码表示 形式。数的定标有Q表示法和S表示法,表710列出了16位数的16种Q表示和S表示,以及 它们所能表示的十进制数范围。16位中有一个 符号位、Q个小数位和15-Q个整数位来表示一 个数。
表7-10 Q表示、S表 …… 此处隐藏:3655字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]一年级家长课程教案
- [高等教育]封丘县人民医院深入推进纠正医药购销领
- [高等教育]2017年6月大学英语四级真题试卷及答案(
- [高等教育]2017年北京第二外国语学院文学院824中
- [高等教育]7 高中历史第7单元1861年俄国农奴制改
- [高等教育]【K12学习】4、实际测量-苏教版六年级
- [高等教育]药具培训试卷题库及部分参考答案
- [高等教育]本土电子元器件目录分销商如何赢得生意
- [高等教育]七年级岭南版美术教案
- [高等教育]书作文之书法活动通讯稿
- [高等教育]Endnote X 软件使用入门和用法总结(LS)
- [高等教育]嵌入式系统的现状及发展状况
- [高等教育]2012抗菌药物专项整治活动方案解读
- [高等教育]人教版新课本一年级数学下册期末试卷
- [高等教育]爱课程民法学观后感
- [高等教育]930机组使用说明书1
- [高等教育]煤气设备设施点检标准
- [高等教育]常见室内观叶植物图解
- [高等教育]312党员群众路线心得体会
- [高等教育]小学信息(苗版)第一册全册教案
- 在市---局2010党建大会上的讲话
- 《科哲》提纲及补充阅读材料(2010.7)
- 苏州高博软件技术职业学院论文开题报告
- 兼职导游管理的困境及对策探讨
- 基于通用设计理念的现代厨房产品语义研
- 康乐一中2010年至2011年度鼓号队、花束
- 第10章_数据收集整理与描述_期末复习课
- 2008年黑龙江林甸商贸购物中心营销策划
- 水硬度的测定实验报告
- 五分钟教你拍摄夜景光绘照
- 2014年临床妇产科三基三严试题及答案
- 0第二课 纾解压力第一站了解压力
- 解析建筑工程电气设备安装施工技术要点
- 地方性应用型本科高校“双师型”师资队
- 高考语文专题复习课件:小说阅读指导
- 装饰工程投标书2
- 大学生就业难问题探讨及对策
- English and Its History
- 青岛市城市房屋修缮工程质量监督管理办
- 初中英语形容词和副词的用法和练习题




