- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章_DSP的汇编语法寻址及指令系统1
第六章 汇编语法,寻址及指令系统 1.汇编语法 2.寻址方式 3.指令系统 汇编程序语法 TMS320的汇编程序包含: 1.汇编语言指令(assembly language instructions)、 2. 汇编指令(伪指令,assembler directives)、 3. 宏指令(macro directives) 4. 注释(comments)。 助记符方式汇编程序语法 [label][:] mnemonic [operand list] [;comment] [标号][:] 助记符 [操作数] [;注释] 汇编程序语法 1.所有的语句必须由语句标号、空格、*号或 ;号开头。 语句标号 由字母、数字、_、$组成,最多不超过32个字符,对大小写敏感,第一个字符不能是数字。后跟 :,但分号不是语句标号的组成部分。 助记符 1.助记符不允许从第一列开始,否则被认为是语句标号。 操作数 操作数可以是常数、符号或表达式。当操作数多于一个时,用逗号分开。 常数 1.二进制常数(如01B或01b) 2.八进制常数(如10Q或10q) 3.十进制常数(如23) 4.十六进制常数(如78H或78h) 5.字符常数(如‘A’或‘b’) 6.字符串(如“sample program”) 7.汇编时使用的常数 表达式 表达式是一个常数、符号、或用算术运算符连接起来的常数或符号。表达式的值的范围为-32768到32767。 第六章 TMS320的数据寻址方式 3.1 立即寻址 3.2 直接寻址 3.3 间接寻址 3.4 其它寻址 立即寻址 在立即寻址方式中,指令中包括了立即操作数。 一条指令中可对两种立即数编码,一种是短立即数(3、5、8或9位),另一种是16位的长立即数。短立即数指令编码为一个字长,16位立即数的指令编码为两个字长。 立即数寻址指令中在数字或符号常数前面加一个“#”号,来表示立即数。 数据存储器分为512页,每页128字。设置一个数据页指针DP(Data Pointer),用9-bit指向一个数据页,再加上一个7-bit的页内偏移地址,形成16-bit的数据地址.好处是:数据查找在一页内,做循环一般在一页内的话就方便快捷。 寻址方式:直接寻址 ARn(辅助寄存器) 寻址方式:间接寻址 8个辅助寄存器(AR0--AR7),由一个辅助寄存器指针(ARP 3-bit)来指定。 寻址方式:间接寻址 寻址方式:间接寻址 1.将该AR的内容加1或减1,再寻址(循环常用) 寻址方式:间接寻址 ADD *,8 ; 将当前辅助寄存器所指的地址里的数据,左移8-bit后加给ACC. 寻址方式:间接寻址 ADD *0+,8 ; 执行加法后,将AR0的值加给当前辅助寄存器. 其它寻址 1.长立即数lk一个表示16位地址的立即数来指定数据存储空间的一个地址。 2.累加器寻址是用累加器中的数值作为一个地址读写程序存储器。共有两条指令可以采用累加器寻址: PUSH POP。 3.端口地址寻址:IN OUT。 4.倒序寻址。 5.堆栈寻址。 堆栈寻址 当发生中断或子程序调用时,系统堆栈自动保存PC值。堆栈也可以用于保存和传递其他数据。堆栈由高地址向低地址增长,处理器使用16位的存储器映象寄存器——堆栈指针(SP)对堆栈进行寻址,SP总是指向压入堆栈的最后一个数据。 正向进位与反向进位 1 0 0 1 0 0 + 1 0 0 + 1 0 0 ———— ———— 1 0 0 0 0 1 0 位倒序寻址 AR0 = 100 AR1 = 000 按AR1寻址后,将AR0加给AR1,反向进位。 位倒序寻址 原序 原地址 位倒序后地址 位倒序 加 ADD ADDC ADDS ADDT APAC(PM方式) ADD 1) 命令状态位: 直接间接以及长立即数寻址时,指令受SXM和OVM的影响;短立即数寻址时,指令只受OVM的影响。 指令影响C和OV状态位。 2)命令功能: PC 加1即PC=PC+1; (ACC)+((数据存储器地址)左移shift位-ACC; 或(ACC)+((数据存储器地址)左移16位-ACC; 或(ACC)+k-ACC; 3)命令说明: 移位时,低位填0,若SXM=1,高位用符号扩展;若SXM=0,高位填0;结果存在累加器中。该指令使进位位C为0;如果使用间接寻
文档评论(0)