DSP电子课件汇编语言程序开发
汇编语言程序开发
第四章 汇编语言程序开发工具第一节 汇编语言程序的编写方法
第二节第三节 第四节
汇编语言程序的汇编COFF的一般概念 目标文件的链接
汇编语言程序开发
第一节
汇编语言程序的编写方法软件开发过程
汇编语言程序开发
汇编语言程序的编辑、汇编和链接过程
汇编语言程序开发
1.汇编语言源程序的句法格式 要点 以.asm为扩展名 每一行由4个部分组成
格式[标号][:] [助记符] [操作数] [;注释]
[ ]中的 内容为可 选择部分
供本程序的其它部分或其它程序调 用。标号是任选项,标号后面可以 加也可以不加冒号“:”。
汇编语言程序开发
要 点
1.标号必须从第1列写起;2.标号最多可达32个字符,可以是A~Z, a~z,0~9,_,以及$,但标号的第1个 字符不能是数字; 3.引用标号时,标号的大小写必须一致; 4.标号的值就是段程序计数器SPC的值;
5.如果不用标号,则第一个字母必须为空 格、分号 或星号(*)。
汇编语言程序开发
[标号][:]
助记符
[操作数]
[;注释]
要点
可以是助记符指令、汇编指令、 宏指令和宏调用命令。 1.助记符指令,一般用大写; 2.汇编命令和宏命令,以句号 “.”开始,且为通常用小写。
建议
汇编语言程序开发
[标号][:]
助记符
[操作数]
[;注释]
要点
1.指令中的操作数或汇 编命令中定义的内容 2.操作数之间必须用逗 号“,”分开。 1.从分号“;”开始 2.可以放在指令或汇编命令后面, 也可以放在单独的一行或数行。
要点
汇编语言程序开发
2.汇编语言源程序的数据型式
二进制:如1110001b或1111001B; 八进制:226q或572Q; 十进制:1234或+1234或-1234(缺省型) 十六进制:0A40h或0A40H或0xA40 浮点数:1.623e-23(仅C语言程序中能 用,汇编程序不能用) 字符:‘D’ 字符串:“this is a string”
汇编语言程序开发
3.汇编命令 汇编命令是用来为程序提供数据和控制汇编 进程的。C54x汇编器共有64条汇编命令,根 据它们的功能,可以将汇编命令分成8类: (1)对各种段进行定义的命令。 (2)对常数(数据和存储器)进行初始化的 命令。 (3)调整SPC(段寄存器)的指令。 (4)对输出列表文件格式化的命令。 (5)引用其它文件的命令。 (6)控制条件汇编的命令。 (7)在汇编时定义符号的命令。 (8)执行其它功能的命令。
汇编语言程序开发
例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 .bss a,4 .bss x,4 .bss y,1 .def _c_int00 .data table: .word 1,2,3,4 .word 8,6,4,2 ;为汇编源程序取名 ;定义存储器映象寄存器 ;分配10个单元的堆栈空间 ;为系数a分配4个单元的空间 ;为变量x分配4个单元的空间 ;为结果y 分配1个单元的空间 ;定义标号_c_int00 ;定义数据代码段 ;在标号tab
le开始的8个单元中 ;为这8个单元赋初值
汇编语言程序开发
.text ;定义文本代码段 STM #0,SWWSR ;软件等待状态寄存器置0,不设等待 STM #STACK+10h,SP ;设置堆栈指针初值 STM #a,AR1 ;AR1 指向 a的地址 RPT #7 ;从程序存储器向数据存储器 MVPD table,*AR1+ ;重复传送 8个数据 CALL SUM ;调用 SUM 实现乘法累加和的子程序 end: B end ;循环等待 SUM:STM #a,AR3 ;将系数a的地址赋给AR3 STM #x,AR4 ;将变量x的地址赋给AR3 RPTZ A,#3 ;将A清0,并重复执行下条指令4次 MAC *AR3+,*AR4+,A ;执行乘法并累加,结果放在A中 STL A,@y ;将A的低字内容送结果单元y RET ;结束子程序 .end ;结束全部程序
汇编语言程序开发
4.宏定义和宏调用
‘C54汇编器支持宏指令语言.如果程序中有一段 程序需要执行多次,就可以把这一段程序定义为 宏指令。使用分为宏定义、宏调用和宏展开。宏指令与子程序的异同(1)两者都可以被多次调用,但是把子程序汇编成目标代码 的过程只进行一次,而在用到宏指令的每个地方都要对宏指令 中的语句逐条地进行汇编。 (2)在调用前,由于子程序不使用参数,故子程序所需要的 寄存器等都必须事先设置好;而对于宏指令来说,由于可以使 用参数,调用时只要直接代入参数就行了。 (3)宏指令可以在源程序的任何位置上定义,但必须在用到 它之前先定义好。宏定义可以嵌套。
汇编语言程序开发
宏定义的格式 macname .macro[parameter 1][,…,parameter n] 助记符指令与宏指令 [.mexit] .endm宏调用的格式 [label][:] macname [parameter1][,…,parametern]
汇编语言程序开发
例4-2 宏定义、宏调用和宏展开1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1 1 1 1 1 * * * * add3 add3
ADDRP=P1+P2+P3
;说明宏功能
.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 ;结束宏
.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
汇编语言程序开发
第二节
汇编语言程序的汇编汇编命令 助记符指令 宏命令
汇编语言源程序要素 汇编程序(汇编器)功能
将源程序汇编成可重定位的目标文件(.obj文件); 如果需要,可以生成一个列表文件(.lst文件); 将程序代码分段,每段的目标代码都有一个SPC管理; 定义和引用全局符号,可在列表后附加交叉引用表; 对条件程序块进行汇编; 支持宏功能,允许定义宏命令。
汇编语言程序开发
1.运行汇编程序 汇编器是名为asm500.exe的可执行程序 asm500 [input file[object file[listing file]]][-options] 例如 asm500 cjy.asm -l -s -x 源程序cjy.asm经汇编后将生成一个cjy. obj目标 文件、列表文件、符号表(在目标文件中)以及交 叉引用表(在列表文件中)。
相关推荐:
- [教育文库]高考英语听力十大场景词汇总结
- [教育文库]全省领导班子思想政治建设座谈会会议精神传达提纲
- [教育文库]人教版新课标高一英语提优竞赛试题 下学期
- [教育文库]江西省2014年生物中考试题
- [教育文库]长沙镇食品药品安全事故应急预案
- [教育文库]《金刚石、石墨和C60》片段教学设计
- [教育文库]福州教育学院(王旭东)
- [教育文库]基于EDA音乐播放器的设计
- [教育文库]9、古诗两首《夜书所见》《九月九日忆山东兄弟》1
- [教育文库]小学语文课外阅读有效策略探讨
- [教育文库]贵州文化产业发展成支柱产业的问卷调查
- [教育文库]膀胱类癌的诊治体会(附3例报告)
- [教育文库]发动机积碳产生的原因
- [教育文库]Configuring Code Composer Studio for Heterogeneous
- [教育文库]学生良好的心理素质如何培养点滴谈
- [教育文库]46 电沉积法制备锂离子电池用硅-锂薄膜负极材料的研究
- [教育文库]美舍雅阁公司管理中各部门职责
- [教育文库]去壳剥皮的小妙招
- [教育文库]六自由度运动平台的仿真研究
- [教育文库]Pride and Prejudice(傲慢与偏见)
- 全国重点中学排名(前260名)
- 高一化学必背方程式
- 经典如何给PDF文件添加书签
- 高等数学自测题第9章 微分方程 自测
- 人性化护理在乳腺癌改良根治术患者中的
- 现行技术质量标准规范清单
- 原地双手头上掷实心球的技巧
- 中国雕塑史 电子书免费下载
- 7.总经理工作细则
- 经格氏反应合成噻吩乙醇的研究
- 用Excel精确计算平均发展速度
- 重型肝炎严重程度评诂
- 2018-2019学年江苏省苏州市常熟市八年
- 应用文写作格式大全
- 青岛版九年级上第一章《特殊的平行四边
- MBA论说文写作万能通用模板
- 2011年高考数学理(辽宁卷)
- RNAi对大肠癌SW620细胞survivin基因的
- 深圳地铁一期工程盾构法施工技术总结
- 第1章微机基础知识