DSPC2000汇编指令 联系客服

发布时间 : 星期三 文章DSPC2000汇编指令更新完毕开始阅读c49e07386edb6f1aff001fd3

POP DBGIER POP DP:ST1 POP DP POP IFR POP loc16 POP P POP RPC POP ST0 POP ST1 POP T:ST0 POP XT POP XARn PUSH ACC PUSH ARn:ARm PUSH DBGIER PUSH DP:ST1 PUSH DP PUSH IFR PUSH loc16 PUSH P PUSH RPC PUSH ST0 PUSH ST1 PUSH T:ST0 PUSH XT PUSH XARn SUBB SP,#7bit 堆栈内容弹出到寄存器DBFIER 堆栈内容弹出到寄存器DP和ST1 堆栈内容弹出到寄存器DP 堆栈内容弹出到寄存器IFR 堆栈内容弹出到loc16 堆栈内容弹出到寄存器P 堆栈内容弹出到寄存器RPC 堆栈内容弹出到寄存器ST0 堆栈内容弹出到寄存器ST1 堆栈内容弹出到寄存器T和ST0 堆栈内容弹出到寄存器XT 堆栈内容弹出到辅助寄存器 寄存器ACC的内容入栈 寄存器ARN和ARm的内容入栈 寄存器DBGIER的内容入栈 寄存器DP和ST1的内容入栈 寄存器DP的内容入栈 寄存器IFR的内容入栈 [loc16]入栈 寄存器P的内容入栈 寄存器RPC的内容入栈 寄存器ST0的内容入栈 寄存器ST1的内容入栈 寄存器T和ST0的内容入栈 寄存器XT的内容入栈 辅助寄存器的内容入栈 从堆栈指针中减去7位立即数 PUSH AR1H:AR0H 寄存器AR1H和AR0H的内容入栈 表6-14对SP寄存器操作的说明

4.对AX寄存器的操作

在汇编语言程序中,累加器——AX是一个非常重要的寄存器,但在程序中用它来保存临时数据时,最好将其转存到其它寄存器或内存单元中,以防止在其它指令的执行过程中使其中的数据被修改,从而得到不正确的结果,为程序的调试带来不必要的麻烦。具体操作请看表6-15。 助记符 ADD AX,loc16 ADD loc16,AX ADDB AX,#8bit ANDB AX,#8bit ASR AX,#(1-16) ASR AX,T [loc16]加到AX 将AX的内容与[loc16]相加,并存储到loc16 将8位立即数累加到AX AX与8位立即数(零扩展)逐位“与” 算术右移,移位次数由立即数决定 算术右移,以为次数由T(3:0)的值决定 说明 AND AX,loc16,#16bit 16位立即数和[loc16]逐位“与”,结果保存到AX CMP AX,loc16 CMPB AX,#8bit FLIP AX LSL AX,#(1-16) LSL AX,T LSR AX,#(1-16) LSR AX,T MAX AX,loc16 MIN AX,loc16 MOV AX,loc16 MOV loc16,AX MOV loc6,AX,COND MOVB AX,#8bit MOVB AX,LSB,loc16 MOVB AX,MSB,loc16 MOVB loc16,AX,LSB MOVB loc16,AX,MSB NEG AX NOT AX OR AX,loc16 OR loc16,AX ORB AX,#8bit SUB AX,loc16 SUB loc16,AX SUBR loc16,AX SXTB AX XOR AX,loc16 XOR loc16 ,AX XORB AX,#8bit AX与[loc16]比较 AX与8位立即数(零扩展)比较 将AX寄存器中的数据位翻转顺序 逻辑左移,移位次数由立即数决定 逻辑左移,移位次数由T(3:0)的值决定 逻辑右移,移位次数由立即数决定 逻辑右移,移位次数由T(3:0)的值决定 AX与[loc16]相比较求最大值,并保存到AX AX与[loc16]相比较求最小值,并保存到AX [loc16]加载到AX 寄存器AX保存到loc16 有条件地把AX存储到loc16 把8位立即数(零扩展)加载到AX 加载AX的低字节,AX的高字节等于0x00 加载AX的高字节,AX的低字节不变 加载AX的低字节 加载AX的高字节 求AX的相反数 求AX的“非” AX和[loc16]按位“或”,结果保存到AX AX和[loc16]按位“或”,结果保存到loc16 AX和8位立即数(零扩展)按位“或”,结果保存到AX 从AX中减去[loc16] [loc16]减去AX中的数据,结果存储到loc16 反向减法,AX中的数据减去[loc16],结果存储到loc16 将AX的低字节符号扩展到高字节 AX和[loc16]按位“异或”,结果保存到AX AX和[loc16]按位“异或”,结果保存到loc16 AX与8位立即数(零扩展)逐位“异或”,结果保存到AX 表6-15 AX寄存器操作说明

5.对16位ACC寄存器的操作

累加器(ACC)是CPU的主要工作寄存器。除了那些对存储器和寄存器的直接操作外,所有的ALU操作结果最终都要送入ACC。ACC支持单周期数据传送、加法、减法和来自数据存储器的宽度为32位的比较运算,它也可以接受32位乘法操作的运算结果。对ACC可以单独进行16位/8位的访问。累加器还具有如下的相关状态位。 (1).溢出模式位(OVM) (2).符号扩展模式位(SXM) (3).测试/控制标志位(TC) (4).进位位(C) (5).零标志位(Z) (6).负标志位(N) (7).溢出标志位(V)

(8).溢出计数位(OVC)

对于ACC寄存器的具体操作说明请看表6-16 16位ACC寄存器操作说明、表6-17 32位ACC寄存器操作说明和表6-18 64位ACC寄存器操作说明 助记符 说明 ADD ACC,loc16{<<#0...16} 将[loc]移位后(位扩展)加到ACC ADD ACC,#16bit{<<#0...15} 将16位立即数移位后(位扩展)加到ACC ADD ACC,loc16<

MOVL loc32,ACC,COND 有条件地将ACC存储到loc32 助记符 ASR64 ACC:P,T CMP64 ACC:P LSL64 ACC:P,T LSR64 ACC:P,T NEG64 ACC:P SAT64 ACC:P 说明 按T(5:0)对64位数值算术右移 比较64位数值 按T(5:0)对64位数值逻辑左移 按T(5:0)对64位数值逻辑右移 取ACC:P的相反数 根据OVC的值使ACC:P的值为饱和值 ASR64 ACC:P,#1...16 64位数值算术右移1~16位 LSL64 ACC:P,#1...16 64位数值逻辑左移1~16位 LSR64 ACC:P,#1...16 64位数值逻辑右移1~16位 表6-18 64位ACC寄存器操作说明

5 .对P或XT寄存器的操作

被乘数寄存器(XT寄存器)主要用于在32位乘法操作之前,存放一个32位有符号整数