DSP汇编指令总结.docVIP

  • 16
  • 0
  • 约3.95千字
  • 约 5页
  • 2019-08-01 发布于浙江
  • 举报
DSP汇编指令总结 一、寻址方式: 1、立即寻址: 短立即寻址(单指令字) D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 采用立即寻址方式的PRT的操作码 8位常数=99 长立即数寻址(双指令字) 第一指令字 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 采用长立即寻址方式的ADD指令的操作码 (12位) 位移次数=2(4位) 第二指令字 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16位常数=16384=4000h 2、直接寻址 状态寄存器(ST0) 指令寄存器(IR) D15~D13 D12 D11 D10 D9 D8 ~ D0 D15 ~ D8 D7 D6 ~ D0 ARP OV OVM 1 INTM 数据页面指针DP 8MSB 0 7 LSB 指令操作码 页 面(9MSB) 偏移量(7LSB) 3、间接寻址 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 8MSBs 1 ARU N NAR ARU 辅助寄存器更新代码,决定当前辅助寄存器是否和如何进行增或减。 N规定是否改变ARP值,(N=0,不变) NAR下一个辅助寄存器值 ARU 执行的算术运算 6 5 4 0 0 0 * 0 0 1 *- 0 1 0 *+ 0 1 1 1 0 0 *BR0- 1 0 1 *0- 1 1 0 *0+ 1 1 1 *BR0+ 4.3.1、算术逻辑指令(28条) 4.3.1.1、HYPERLINK 返回 4.3.1.6、移位和循环移位指令(4条); ▲ SFL(累加器内容左移指令) ▲ SFR(累加器内容右移指令) ▲ROL(累加器内容循环左移指令) ▲ROR(累加器内容循环右移指令) HYPERLINK 返回 4.3.1.7、逻辑运算指令(4条); ▲ AND(逻辑与指令) ▲ OR(逻辑或指令) ▲ XOR(逻辑异或指令) ▲ CMPL(累加器取反指令) HYPERLINK 返回 4.3.2、寄存器操作指令(35条) 4.3.2.1、累加器操作指令(6条) ▲ LACC(装载累加器指令) ▲ LACT(装载累加器)*按TREG低4位指定的次数移位 ▲ LACL(装载累加器低16位指令) ▲ ZALR(装载累加器指令) ▲ SACL(移位并存储累加器低半部) ▲ SACH(移位并存储累加器高半部) HYPERLINK 返回 4.3.2.2、临时寄存器指令(5条) ▲ LT(装载TREG指令) ▲ LTA(装载TREG并累加上次乘积指令) ▲ LTS (装载TREG并减去上次乘积指令) ▲ LTD(装载TREG并累加上次乘积及数据移动指令) ▲ LTP(装载TREG和累加器指令) HYPERLINK 返回 4.3.2.3、乘积寄存器指令(6条) ▲ PAC (乘积寄存器内容载入累加器) ▲ APAC (PREG与累加器相加) ▲ SPAC(累加器和乘积寄存器相减) ▲ LPH(装载PREG高16位指令) ▲ SPL(存储PREG低16位指令) ▲ SPH(存储PREG高16位指令) HYPERLINK 返回 4.3.2.4、辅助寄存器指令(5条) ★ LAR(装载当前辅助寄存器AR) ★ SAR(存储辅助寄存器指令) ★ MAR(修改当前辅助寄存器) ★ SBRK(从当前辅助寄存器减去短立即数) HYPERLINK 返回 4.3.2.5、状态寄存器指令(9条) ★ LST(装载状态寄存器) ★ SST(存储状态寄存器) ★ SETC(控制位置“1” ★ SETC(控制位置“1” ★ LDP(装载数据指针DP指令) ★ BIT(位测试指令) ★ BITT(测试由TREG指定bit code指令) ★ CMPR(比较当前辅助寄存器AR和AR0) HYPERLINK 返回 4.3.2.6、堆栈操作指令(4条) ★ PUSH(累加器低16位进栈指令) ★ POP(栈顶内容弹出至累加器低16位指令) ★ POP(栈顶内容弹出至累加器低16位指令) ★ POPD(弹栈至数据存储器指令) HYPERLINK 返回 4.3.3、存储器与I/O操作指令(8条) 4.3.3.1、数据移动指令( 4条) ▲

文档评论(0)

1亿VIP精品文档

相关文档