第三章DSP例程.ppt

第三章DSP例程

【例3-104】 MPYU *,AR6 退出 (47)NMI 非屏蔽中断 语法:NMI 说明:执行该指令时,首先将PC+1压入堆栈,然后将程序计数器强制置为不可屏蔽中断向量地址24h。指令不受INTM的影响,执行后置INTM=1。 (48)NOP 空操作 语法:NOP 说明:该指令除了执行PC值加1外不执行任何操作。 退出 (50)OR 与累加器进行或操作 语法:OR dma 直接寻址 OR ind[,ARn] 间接寻址 OR #1k[,shift] 长立即数寻址 OR #1k,16 左移16位的长立即数寻址 说明:ACC与指定的数据存储单元中的数或一个长立即数进行或操作,结果存ACC中,长立即数在操作前可进行左移位。对于直接寻址、间接寻址或不移位的长立即数,ACC的高16位内容不变。而对于移位数不为0的立即寻址,左移时低位填0,高位不进行符号扩展。指令不受SXM影响。 退出 【例3-111】 OR 8 ;DP=8 【例3-112】 OR *,AR0 退出 (52)PAC 乘积寄存器内容装载到累加器 语法:PAC 说明:将PREG的内容左移位后装载到累加器中,移位的次数由ST1寄存器的PM位定义。 【例3-116】 PAC ;PM=0 退出 (53)POP 栈顶内容弹出到累加器低16位 语法:POP 说明:将栈顶(TOS)的内容复制到ACC的低16位,累加器的高16位清0,堆栈上弹一级。 退出 【例3-117】 POP 退出 (54)POPD 栈顶内容弹出到数据存储单元 语法:POPD dam 直接寻址 POPD ind[,ARn] 间接寻址 说明:将栈顶(TOS)内容复制到指定的数据存储单元中,堆栈中的低7个单元依次向上复制一级。 退出 【例3-118】 POPD 10 ;DP=8 退出 【例3-119】 POPD *+,AR1 退出 (55)PSHD 数据存储单元内容压入堆栈 语法:PSHD dma 直接寻址 PSHD ind[,ARn] 间接寻址 说明:将指定的数据存储单元的内容复制到栈顶(TOS),堆栈中的低7个单元值向下移动一级,栈底的值从堆栈中丢失。 退出 【例3-120】 PSHD 127 ;DP=3 (180h-1FFh) 退出 【例3-121】 PSHD *,AR1 退出 (56)PUSH 累加器的低16位压入堆栈 语法:PUSH 说明:堆栈下压一级,累加器的低16位内容复制到栈顶(TOS),堆栈底部的值丢失。 退出 【例3-122】 PUSH 退出 (57)RET 子程序返回 语法:RET 说明:栈顶(TOS)的内容弹出到PC中,堆栈值依次向上复制一级。RET指令用于子程序或中断服务程序返回到程序调用处。 退出 【例3-123】 RET 退出 (58)RETC 条件返回 语法:RETC cond1[,cond2][,…] 说明:如果指定的条件都满足,那么就执行一个标准的返回(RET)指令,否则执行下一条指令。 【例3-124】 RETC GEQ,NOV 如果满足ACC≥0且OV=0,那么执行返回。 退出 (59)ROL 累加器循环左移 语法:ROL 说明:ACC循环左移1位,进位位C的值移到ACC的最低位,ACC的最高位移到C位。指令不受SXM影响,指令执行结果影响C位。 【例3-125】 ROL 退出 (61)RPT 重复执行下一条指令 语法:RPT dma 直接寻址 RPT ind[,ARn] 间接寻址 RPT #k 短立即数寻址 说明:改指令可使得其后面的一条指令被重复执行n+1次,n等于直接或间接寻址所指定的内容或8位短立即数加1。RPT循环不能被中断。 退出 例如,下述程序可使ACC中加100次1 RPT #99 ADD #1 (62)SACH 存储累加器移位后的高16位 语法:SACH dma[,shift] 直接寻址 SACH ind[,shift[,ARn]] 间接寻址 说明:该指令先将ACC内容复制到输出移位器,在输出移位器中将整个32位数左移0~7位,再将移位后数值的高16位复制到指定的数据存储单元。指令执行后,累加器本身保持不变。指令不受SXM影响。 【例3-

文档评论(0)

1亿VIP精品文档

相关文档