- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章 寻址方式和指令系统 本章基本要求 1、熟悉DSP汇编语言指令 2、能编写简单应用程序 3、了解完整应用程序的结构 3.1 寻址方式 3 种基本寻址方式: 立即寻址方式 3.1.1 立即寻址方式 ---指令中包含该指令要操作的常数 例2、长立即寻址 LACC #0FFF ,3; 将0FFFH左移3位后与累加器内容相加 3.1.2 直接寻址方式 状态寄存器ST0 3.1.2 直接寻址方式 在使用直接寻址时,必须确保正确的数据页,DP值保存在ST0中,可以通过 LDP #XXH XX=0~511 或 LST 指令 对DP 赋值 数据页面指针(DP) 指令寄存器(IR) 使用直接寻址的方法: 1、设置数据页( LDP #XX) 2、指明偏移量 数据页面指针DP=4 数据页面指针DP=500 LDP #0H LACC 64H ADD 50H LDP # 6H SUB 2H 3.1.3 间接寻址方式 使用AR0~AR7作为辅助寄存器,系统用当前辅助寄存器(当前AR)的内容作为操作数的地址 3.1.3 间接寻址方式 使用AR0~AR7 AR0赋值为FFT长度的一半N/2 = 4,AR1中存放位反转的基地址,例如AR1=0200H,重复执行输入指令N=8次,使数据以N为8的倒序方式排列,即 RPT 7 IN *BR0+, PA0 (将PA0口顺序输入的数据以位反转的地址存储) 则依次由AR1产生的地址分别为 0200H 0204H 0202H 0206H 0201H 0205H 0203H 0207H 例6 ADD *,8 例7 ADD *+,8,AR4 例8 ADD *-,8 例9 ADD *0+,8 3.2 指令集 3.2.1 累加器、算术和逻辑指令 1、ABS 累加器内容取绝对值 2、ADD 1,1 (DP=6) LDP #6H LAR AR0,0 SAR AR0,10H MAR *,AR1 LAR AR0,#37FH LAR AR1,#300H LACL #0H LOOP1: SACL *+ CPR 00 BCND LOOP1,NTC 转移指令 53 B 无条件转移 54 BACC 按累加器内容转移 55 BANZ 当前辅助寄存器不等于零转移(当前寄存器内容缺省修改为减1) MAR *,AR0 LAR AR1,#3H LAR AR0,#60H LOOP1: ADD *+,AR1 BANZ LOOP1,AR0 转移指令 56 BCND 条件转移 用于条件调用和返回的条件 控制指令 65 BIT 位测试--将数据的指定位复制到状态寄存器ST1的TC位 位码值0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 位位置15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 LDP #6 BIT 0H,15 测试300H处的最低有效位 66 BITT 测试TREG寄存器规定的位 TREG四位LSB0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 位位置 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 假设TREG=1H 数据存储器(300h)=4DC8h (301h)=0777h LDP #6H BITT 00H BITT 01H 执行完后TC=? 67 CLRC 状态位清零 68 IDEL 空闲直至中断发生 LDP 装载数据页指针 71 NOP 空操作 72 POP 栈顶弹出至累加器的低位 73 POPD栈顶弹出至数据存储器 74PUSH 累加器低位进栈 75PSHD 数据存储器值进栈 I/O和存储器指令 80 BLDD 数据存储器到数据存储器的块传送 LDP #6H BLDD #300H,20H LAR AR0,#2H LAR AR1,#380H MAR * AR1 RPT #15 BLDD #300,*0+ 将300H-30F内的16个数存入380H-39FH内地址为偶数的空间中。 81 BLPD 程序存
文档评论(0)