[合同协议]补充 指令系统dsp课件

上传人:bin****86 文档编号:55394335 上传时间:2018-09-28 格式:PPT 页数:267 大小:3.74MB
返回 下载 相关 举报
[合同协议]补充 指令系统dsp课件_第1页
第1页 / 共267页
[合同协议]补充 指令系统dsp课件_第2页
第2页 / 共267页
[合同协议]补充 指令系统dsp课件_第3页
第3页 / 共267页
[合同协议]补充 指令系统dsp课件_第4页
第4页 / 共267页
[合同协议]补充 指令系统dsp课件_第5页
第5页 / 共267页
点击查看更多>>
资源描述

《[合同协议]补充 指令系统dsp课件》由会员分享,可在线阅读,更多相关《[合同协议]补充 指令系统dsp课件(267页珍藏版)》请在金锄头文库上搜索。

1、第6章 寻址方式与指令系统,6.1 寻址方式 6.2 指令系统,6.1 寻址方式 6.1.1 立即寻址方式 在立即寻址方式中,指令字中包含该指令要操作的常数。 短立即寻址:使用短立即寻址的指令可指定8、9或13位的常数作操作数。采用这种寻址方式的指令只需一个指令字,操作数就包含在这个指令字中。 长立即寻址:使用长立即寻址的指令可指定16位的常数作操作数。这时需2个指令字,该常数即为第2个指令字。这个16位的数值可以作为一个绝对值,也可以作为2的补码值。,【例6.1】 RPT #98 ;将紧接着RPT后的指令重复99次, 立即操作数用数值前加“#”表示。 【例6.2】 ADD #12864,4

2、; 将12864(3240h)左移4位后与累加器 ;值相加,结果保存在累加器中,6.1.2 直接寻址方式 直接寻址方式由指令直接给出操作数所在的地址。存储器地址被分成两部分,指令字包括数据存储器地址的低7位,即页内偏移量;而页面的指示则由存储器页指针DP给出,DP包含数据存储器地址的高9位,这样合成地址就是16位。,【例6.3】 使用直接寻址的ADD(移位位数015) LDP #6 ;将数据页面设置为6 ADD 8H,4 ;数据存储器地址308h中的值左移4位与累加 器的值相加 直接寻址方式可用在除调用、转移、立即数操作、无操作数指令外的任何指令中。,6.1.3 间接寻址方式 数据存储器地址由

3、辅助寄存器ARn间接给出。因为辅助寄存器ARn为16位,因此这种方式中数据存储器的16位地址是由ARn全部给出的。 这种寻址方式中,使用的辅助寄存器是当前辅助寄存器,由辅助寄存器指针 ARP指定,ARn=AR(ARP)。如ARP=2,则使用的地址寄存器就是AR2。 辅助寄存器指针ARP指定当前辅助寄存器AR(ARP),而ARP的值则可直接通过修改状态寄存器ST0的相应位来加载,但更方便的是使用MAR指令在修改当前辅助寄存器的值时对ARP赋值。,当前辅助寄存器AR(ARP)在程序中表示为“*”,因此间接寻址方式中的指令是以符号“*”为标志的。 常用的修改辅助寄存器内容的指令有LAR、MAR、AD

4、RK和SBRK等。,6.2 指令系统 6.2.1 累加器、算术和逻辑指令 累加器、算术和逻辑指令集包含ABS、ADD、ADDC、ADDS、ADDT、AND、CMPL、LACC、LACL、LACT、NEG、NORM、OR、ROL、ROR、SACH、SACL、SFL、SFR、SUB、SUBB、SUBC、SUBS、SUBT、XOR、ZALR等26条指令。 ABS指令 句法:ABS 功能:对ACC的值取绝对值后送回ACC,并将进位位C清0。,状态位:受OVM影响,不受SXM位影响,结果影响C和OV状态位。 注意:ACC中的值为16位的带符号数,若其大于或等于零,则执行ABS指令后值 不变;若其小于0,

5、则执行ABS指令后,为其对2的补码。,【例6.5】 ABS ;ACC中的数大于零时指令执行前后变化如图所示,【例6.6】 ABS ;ACC中的数小于零时指令执行前后变化如图所示, ADD指令 句法:ADD dma ,shift ;直接寻址 ADD dma,16 ;直接寻址,左移16位 ADD ind,shift ,ARn ;间接寻址 ADD ind,16,ARn ;间接寻址,左移16位 ADD # k ;短立即寻址 ADD # lk ,shift ;长立即寻址 功能:将被寻址的数据存储单元的值或立即数左移016位后加到ACC中,移位时低位填0,高位补0(SXM = 0)或符号扩展(SXM =

6、1)。,状态位: 指令影响C和OV位,当左移16位做加法运算时,如果加法结果有进位,则C = 1;反之,C不变。 指令受SXM和OVM位的影响,但在短立即寻址时,仅受OVM位影响,不受SXM位影响。 【例6.8】 ADD 2,1 ;(DP = 6:地址0300h037Fh),,【例6.9】 ADD *+,1,AR0 ;,【例6.10】 ADD #1h ;加短立即数的情况如图 ;4.11所示,【例6.11】 ADD #1234h,1 ;加长立即数,左移1位的情况如图4.12所示, ADDC指令 句法:ADDC dma ;直接寻址 ADDC ind ARn ;间接寻址 功能:被寻址的数据存储单元的

7、值与ACC的值(高位填0)及进位位C的值相加,结果保存至ACC。该指令可实现多精度运算。 状态位:受OVM状态位影响,不受SXM位影响,结果影响C和OV状态位,若相加结果产生进位,则C = 1;反之,C = 0。,【例4.13】ADDC *, AR3 ;(OVM = 0)指令执行过程, ADDS指令 句法:ADDS dma ;直接寻址 ADDS ind,ARn ;间接寻址 功能:被寻址的数据存储单元的值与ACC的值(抑制符号位扩展)相加,结果保存在ACC中。当SXM = 0,移位次数为0时,ADD等效于ADDS指令。 状态位:受OVM状态位影响,不受SXM位影响,结果影响C和OV状态位。若相加

8、结果产生进位,则C=1;反之,C=0。,【例6.14】ADDS 6 ;(DP=5;地址280H2FFH)没,【例6.15】ADDS * ;间接寻址产生进位的情况如图, ADDT指令 句法:ADDT dma ;直接寻址 ADDT ind ,ARn ;间接寻址 功能:被寻址的数据存储单元的值左移015(由TREG的低4位确定)位后与ACC值相加,结果保存至ACC。移位时低位填0,高位填0 ( SXM = 0)或符号扩展(SXM = 1)。 状态位:受SXM和OVM状态位影响,结果影响C和OV状态位。若相加产生进位,则C = 1;反之,C = 0。,【例6.16】ADDT 6Dh ;(DP=4:地址

9、0200H027FH, ;(SXM=0)直接寻址执行过,【例6.17】ADDT *,AR5 ;(SXM=0)(执行后当前 ;寄存器为AR5)间接寻 ;址, AND指令 句法:AND dma ;直接寻址 AND ind ,ARn ;间接寻址 AND # 1k ,shift ;长立即寻址, 左移015位 AND # 1k ,16 ;长立即寻址,左移16位 功能:若使用直接或间接寻址,则ACC的低16位和被寻址的数据存储单元的值进行逻辑与操作,结果送ACC低16位,ACC高16位清0。 若使用长立即寻址,则16位的长立即数左移016位(移位时低位、高位均补0)后和32位的ACC值相与,结果保存在AC

10、C中。,状态位:不受任何状态位和SXM影响,也不影响任何状态位。 【例6.18】AND 64 ;(DP=4: 地址0200H027FH)直接,【例6.19】AND *,【例6.20】 AND # 00FFH,8 ;长立即数寻址过程, CMPL指令 句法:CMPL 功能:将ACC中的值逻辑取反。 【例6.21】 CMPL, LACC指令 句法:LACC dma,shift ;直接寻址,左移015位 LACC dma,16 ;直接寻址,左移16位 LACC ind,shift,ARn ;间接寻址,左移 ;015位 LACC ind,16 ,ARn;间接寻址,左移16位 LACC #lk,shift

11、 ;长立即数寻址,左移 ;015位 功能:将被寻址的数据存储单元的值或16位常数左移后送ACC。移位时,低位填0,高位由SXM决定。SXM=1,用符号扩展;SXM=0,则填0。,状态位:指令受SXM位影响。 【例6.22】LACC 10, 5 ;(DP=8:地址0400h ;047Fh;SXM=0),【例6.23】LACC *,12 ;(SXM = 0)指令执行过程,【例6.24】 LACC #0F000h,2 ; (SXM = 1)指令执行, LACL指令 句法:LACL dma ;直接寻址 LACL ind,ARn ;间接寻址 LACL #k ;短立即数寻址 功能:将被寻址的数据存储单元的

12、值或用0扩展的8位常数送到ACC的低16位,ACC的高16位填0。 操作:直接或间接寻址 (数据存储器地址)ACC(150)、 0ACC(3116); 或短立即数寻址 kACC(70)、0ACC(318)。 状态位:不受SXM位影响。,【例6.25】 LACL 1 ;(DP = 6:地址0300h037Fh),【例6.26】 LACL *-,AR4,【例6.27】 LACL #FFh, LACT指令 句法:LACT dma ;直接寻址 LACT ind ,ARn ;间接寻址 功能:将被寻址的数据存储单元的值左移后送到ACC。左移次数由TREG的低4位确定(可移动015位)。移位时,低位填0,高

13、位由SXM决定:SXM = 0,则填0;SXM = 1,则用符号扩展。,【例6.28】 LACT 1 ;(DP=6;地址0300h037Fh; ;SXM=0),【例6.29】 LACT *-,AR3;(SXM=1);, NEG指令 句法:NEG 功能:将ACC的值取2的补数,即转换成它的相反数。 状态位:受OVM位影响,结果影响C和OV位。 注意: 当对80000000h做NEG操作时,OV位置1。 若OVM = 1,则ACC的值(80000000h)被NEG操作转换成7FFFFFFFh;若OVM = 0,则ACC经过NEG操作后仍为80000000h。 只要ACC的值不为0,进位位(C)即清0;反之,C=1。,【例6.30】NEG ;(OVM = X)将-1234转换为+1234, OR指令 句法: OR dma ;直接寻址 OR ind,AR n ;间接寻址 OR #lk ,shift ;立即寻址,左移015位 OR #lk,16 ;长立即寻址,左移16位 功能:将ACC的值和被寻址的数据存储单元的值(或左移后的长立即数)做逻辑或操作,结果送ACC。操作数不足32位的,高位补0;左移时,低位填0。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号