1、4.1.1 指令集分类指令集分类(1)累加器、算术和逻辑指令(累加器、算术和逻辑指令(26条)条)(2)辅助寄存器和数据页面指针指令(辅助寄存器和数据页面指针指令(6条)条)(3)TREG、PREG和乘法指令(和乘法指令(20条)条)(4)转移指令(转移指令(12条)条)(5)控制指令(控制指令(15条)条)(6)I/O和存储器操作指令(和存储器操作指令(8条)条)4.1 汇编指令集概述汇编指令集概述4.1.2 指令常用符号定义指令常用符号定义nACC 累加器。累加器。nAR 辅助寄存器。辅助寄存器。nARX LAR和和SAR指令中使用的指令中使用的3位的值,表示要加载(位的值,表示要加载(L
2、AR)或要保存(或要保存(SAR)哪个辅助寄存器的值。)哪个辅助寄存器的值。nBITX 在在BIT测试指令中出现,代表测试指令中出现,代表4位二进制数,表示测试数据存储位二进制数,表示测试数据存储 单元的某一位,若测试单元的某一位,若测试D1位,则位,则BITX为为1110(1110B=15-1)。)。nCM 一个一个2位的值。位的值。CM=00-测试是否当前测试是否当前AR=AR0 CM=01-测试是否当前测试是否当前ARAR0 CM=11-测试是否当前测试是否当前ARAR0nIAAA AAAA 左边的左边的I表示表示1位,反映使用直接寻址(位,反映使用直接寻址(I=0)还是间接)还是间接
3、寻址(寻址(I=1)。当使用直接寻址时,)。当使用直接寻址时,7个个A 是数据存储器是数据存储器 地址的低地址的低7位;对于间接寻址,位;对于间接寻址,7个个A 是控制辅助寄存是控制辅助寄存 器操作的器操作的7位。位。nIIII IIII 短立即寻址中使用的短立即寻址中使用的8位常数。位常数。nI IIII IIII LDP指令在短立即寻址中使用的指令在短立即寻址中使用的9位常数。位常数。nI IIII IIII IIII MPY指令在短立即寻址中使用的指令在短立即寻址中使用的13位常数。位常数。nINTR#表示数值表示数值031的的5位值。位值。INTR指令使用该值把程序转移指令使用该值把程
4、序转移 到到32个中断矢量地址之一。个中断矢量地址之一。nPM SPM指令拷贝到状态寄存器指令拷贝到状态寄存器ST1中中PM位的位的2位值。位值。n SHF 3位的左移值。位的左移值。n SHFT 4位的左移值。位的左移值。nTP 条件执行指令用来表示以下条件执行指令用来表示以下4种条件的种条件的2位值。位值。BIO引脚为低引脚为低-TP=00;TC=1-TP=01;TC=0-TP=10;无条件;无条件-TP=11。n ZLVC ZLVC 两个两个4位字段,每位表示以下条件:位字段,每位表示以下条件:ACC=0-Z;ACC0-L;溢出;溢出-V;进位;进位-Cn+1word 双字操作码的第双字
5、操作码的第2个字。包含个字。包含16位常数。根据指令不同该位常数。根据指令不同该 常数可能是长立即数、程序存储器地址、常数可能是长立即数、程序存储器地址、I/O端口或端口或I/O映映 射的寄存器地址。射的寄存器地址。4.2.1语法语法n指令助记符 ;操作数缺省n指令助记符 dma,shift ;左移015位直接寻址n指令助记符 dma,16 ;左移16位直接寻址n指令助记符 ind,shift,ARn ;左移015位间接寻址n指令助记符 ind,16,ARn ;左移16位间接寻址n指令助记符#k ;短立即寻址n指令助记符#lk,shift ;左移015位长立即寻址4.2 指令句法描述指令句法描
6、述说明说明(1)指令助记符是指令中的关键字,表示本条指令的操作类型,不能缺省。指令助记符是指令中的关键字,表示本条指令的操作类型,不能缺省。(2)指令助记符与操作数之间要用空格分开,各操作数之间要用指令助记符与操作数之间要用空格分开,各操作数之间要用“,”分分开,操作数可缺省。黑体字符表示在该类型的指令中必须写出的字符,开,操作数可缺省。黑体字符表示在该类型的指令中必须写出的字符,其他字符为变量,指令中用数字和字符代替。各字符的含义如下:其他字符为变量,指令中用数字和字符代替。各字符的含义如下:ndma 数据存储器地址的低数据存储器地址的低7位,与数据页面指针(位,与数据页面指针(DP)构成一
7、个完)构成一个完 整的整的16位数据存储器地址。位数据存储器地址。nshift 左移左移015位。位。nARn n为为07,ARn指定下次的辅助寄存器。指定下次的辅助寄存器。nInd 选择选择*、*+、*-、*0+、*0-、*BR0+、*BR0-7中符号之一。中符号之一。n#立即寻址方式中常用的前缀。数值前面带立即寻址方式中常用的前缀。数值前面带“#”,表示该数值为,表示该数值为一一 个立即数;数值前面不带个立即数;数值前面不带“#”,表示该数值为数据存储器地址,表示该数值为数据存储器地址的的 低低7位。位。nk 8位短立即数位短立即数nlk 16位长立即数位长立即数n,x 操作数操作数x 是
8、可选项是可选项nx1,x2 操作数操作数x1、x2是可选项是可选项操作部分提供了指令完成的操作序列,即描述当指令执行时所进行操作部分提供了指令完成的操作序列,即描述当指令执行时所进行的处理过程。的处理过程。(r)寄存器或存储单元寄存器或存储单元r的内容的内容xy 数值数值x被赋予寄存器或被赋予寄存器或存储单元存储单元yr(n:m)寄存器或存储单元寄存器或存储单元r中的位中的位n到位到位m(r(n:m))寄存器或存储单元寄存器或存储单元r中的位中的位n到位到位m的内容的内容 nnh 指出指出nn表示一个十六进制数表示一个十六进制数4.2.2 操作操作4.2.3 举例举例ADD*+,0,AR040
9、302h2h2hARPAR4302hACCXC数据存储器指令执行前04hC00303h2hARPAR4302hACC0数据存储器指令执行后4.3 指令集指令集1、取累加器绝对值指令、取累加器绝对值指令 ABS句法:句法:ABS功能:对累加器功能:对累加器ACC的内容取绝对值后送回累加器,并将进位位的内容取绝对值后送回累加器,并将进位位C清清0操作操作:(PC)+1PC;(ACC)ACC;0 C例例1:ABS2、带移位的加法指令、带移位的加法指令ADD句法:句法:ADD dma,shift ADD dma,16 ADD ind,shift,ARn ADD ind,16,ARn ADD#k ADD
10、#lk,shift功能:功能:将被寻址的数据存储器单元的内容或立即数左移将被寻址的数据存储器单元的内容或立即数左移016位后加到累加器位后加到累加器 中,移位时低位填中,移位时低位填0,高位填,高位填0(SXM=0)或符号扩展()或符号扩展(SXM=1)操作:操作:(PC)+1PC;(ACC)+(数据存储器地址)(数据存储器地址)*2shift)ACC或或(ACC)+k ACC 或或(ACC)+lk*2shift ACC例例2:ADD 1,1 ;设;设DP=6,则数据存储器地址为,则数据存储器地址为0300h037Fh,(ACC)+(数据存储器(数据存储器0301h)*21 ACC例例3:AD
11、D *+,0,AR0例例4:ADD#1h例例5:ADD#1111h,13、带进位加法指令、带进位加法指令ADDC句法:句法:ADDC dmaADDC ind,ARn功能:将被寻址的数据存储器单元的内容与累加器的内容及进位位相功能:将被寻址的数据存储器单元的内容与累加器的内容及进位位相 加,结加,结果送至累加器。果送至累加器。操作操作:(PC)+1PC;(ACC)+(数据存储器地址)(数据存储器地址)+(C)ACC状态位:影响状态位:影响C和和OV位,受位,受OVM状态位影响,不受状态位影响,不受SXM影响。若相加结果影响。若相加结果产生进位,则产生进位,则C=1,否则,否则C=0。例例6:AD
12、DC DAT300例例7:ADDC *-,AR4 ;(设;(设OVM=0),将当前),将当前AR指定的数据存储指定的数据存储 单元的内容与累加器的内容及进位位相加单元的内容与累加器的内容及进位位相加 后送累加器,并将当前后送累加器,并将当前AR的内容减的内容减1,然,然 后将后将AR4指定为下次的辅助寄存器。指定为下次的辅助寄存器。4、加法指令、加法指令ADDS句法:句法:ADDS dma ADDS ind,ARn功能:将被寻址的数据存储器单元的内容与累加器的内容相加,结果送至功能:将被寻址的数据存储器单元的内容与累加器的内容相加,结果送至累加器。累加器。操作:操作:(PC)+1PC;(ACC
13、)+(数据存储器地址)(数据存储器地址)ACC状态位:影响状态位:影响C和和OV位,受位,受OVM状态位影响,不受状态位影响,不受SXM影响。若相加结果影响。若相加结果产生进位,则产生进位,则C=1,否则,否则C=0。例例8:ADDS 6 ;设;设DP=5,则数据存储器地址为,则数据存储器地址为280h2FFh,(ACC)+(数据存储器(数据存储器286h)ACC例例9:ADDS *5、加法指令、加法指令ADDT句法:句法:ADDT dma ADDT ind,ARn功能:将被寻址的数据存储器单元的内容左移功能:将被寻址的数据存储器单元的内容左移015位后与累加器的内容相位后与累加器的内容相 加
14、,结果送至累加器,移位时低位填加,结果送至累加器,移位时低位填0,高位填,高位填0(SXM=0)或符号)或符号 扩展(扩展(SXM=1)。)。操作:操作:(PC)+1PC;(ACC)+(数据存储器地址数据存储器地址)*2(TREG(30)ACC状态位:影响状态位:影响C和和OV位,受位,受OVM 和和SXM状态位影响。若相加结果产生进位,状态位影响。若相加结果产生进位,则则C=1,否则,否则C=0。例例10:ADDT 7Eh ;(设;(设DP=4,则数据存储器地址为,则数据存储器地址为0200h027Fh,设设SXM=0)()(ACC)+(027Eh)*2(TREG(30)ACC例例11:AD
15、DT *-,AR46、辅助寄存器增量指令、辅助寄存器增量指令ADRK句法:句法:ADRK#k功能:将功能:将8位立即数按右对齐方式与当前辅助寄存器位立即数按右对齐方式与当前辅助寄存器AR的内容相加,结的内容相加,结 果送至当前辅助寄存器。果送至当前辅助寄存器。操作:操作:(PC)+1PC;(当前(当前AR)+8位立即数位立即数当前当前AR 例例12:ADRK#80h7、与指令、与指令AND句法:句法:AND dma AND ind,ARn AND#lk,shift AND#lk,16功能:如果使用直接或间接寻址,累加器的低功能:如果使用直接或间接寻址,累加器的低16位和被寻址的数据存储器单位和
16、被寻址的数据存储器单元的内容进行逻辑与操作,结果送累加器的低元的内容进行逻辑与操作,结果送累加器的低16位,累加器的高位,累加器的高16位清位清0。如果使用长立即数寻址,则。如果使用长立即数寻址,则16位长立即数左移位长立即数左移016位后和位后和32位的累加位的累加器相与,结果送累加器。器相与,结果送累加器。操作:操作:(PC)+1PC;(ACC(150)AND(数据存储器地址)(数据存储器地址)ACC(150););0 ACC(3116)(ACC(310)AND lk*2 shift ACC例例13:AND 16 ;设设DP=4,则数据存储器地址为,则数据存储器地址为0200h027Fh,
17、(ACC(150)AND(0210h)ACC(150)0 ACC(3116)例例14:AND *例例15:AND#00FFh,48、加法指令、加法指令APAC句法:句法:APAC功能:将累加器内容与移位后的乘积寄存器的内容相加,结果送至累加功能:将累加器内容与移位后的乘积寄存器的内容相加,结果送至累加 器。器。PREG的移位方式由的移位方式由ST1中中PM为确定。为确定。操作:操作:(PC)+1PC;(ACC)+移位后的(移位后的(PREG)ACC状态位:影响状态位:影响C和和OV位,受位,受OVM 和和PM状态位影响。不受状态位影响。不受SXM 状态位影响。状态位影响。例例16:APAC9、
18、无条件转移指令、无条件转移指令B句法:句法:B pma,ind,ARn功能:功能:程序无条件转移到指令指定的程序存储器地址程序无条件转移到指令指定的程序存储器地址(pma),并按指,并按指 令要求修改当前辅助寄存器和令要求修改当前辅助寄存器和ARP的内容的内容.操作:操作:pmaPC (pma可以是符号地址或数值地址可以是符号地址或数值地址);按指令要求修改当前按指令要求修改当前AR和和ARP。例例17:B 1610、按累加器内容转移指令、按累加器内容转移指令BACC句法:句法:BACC功能:功能:程序无条件转移到累加器的低程序无条件转移到累加器的低16位指定的地址中执行。位指定的地址中执行。
19、操作:操作:ACC(150)PC例例18:BACC ;(设累加器的值是设累加器的值是0203h)0203hPC,程序从程序从0203h处继续处继续 执行。执行。11、辅助寄存器不等于零转移指令、辅助寄存器不等于零转移指令BANZ句法:句法:BANZ pma,ind,ARn)功能:功能:如果当前辅助寄存器如果当前辅助寄存器(AR)的内容不为的内容不为0,则程序转移到,则程序转移到pma指定的指定的 程序存储器地址处继续执行;如果当前程序存储器地址处继续执行;如果当前AR的内容为的内容为0,则执行下一,则执行下一 条指令;修改当前条指令;修改当前AR的内容。的内容。操作:操作:若若(当前当前AR)
20、0,则,则pmaPC,否则,否则(PC)+2PC;按指令要求的方式修改当前的按指令要求的方式修改当前的AR的内容和的内容和ARP,若不指定修改当若不指定修改当 前的前的AR的方式的方式,则当前则当前AR减半减半(若将当前若将当前AR作为循环计数器,可执作为循环计数器,可执 行行(当前当前AR)+1次循环次循环).例例19:BANZ PGM012、条件转移指令、条件转移指令BCND句法:句法:BCND pma,cond1,cond2 操作数中的操作数中的cond1,cond2,为需满足的条件。为需满足的条件。功能:功能:如果指令中指定的条件都满足,则程序转移到指令给出的程序存如果指令中指定的条件
21、都满足,则程序转移到指令给出的程序存 储器地址储器地址(pma),只要有一个条件不满足就顺序执行下面的指令。,只要有一个条件不满足就顺序执行下面的指令。操作:操作:如果如果cond1,cond2,均满足,则均满足,则pmaPC,否则,否则PC+2PC。注意:注意:有些条件是不能组合在一起使用的。有些条件是不能组合在一起使用的。例例20:BCND PGM191,LEQ,C13、测试指令、测试指令BIT句法:句法:BIT dma,bit code ;直接寻址;直接寻址 BIT ind,bit code,ARn ;间接寻址;间接寻址功能:功能:把数据存储单元中被指定位把数据存储单元中被指定位(即测试
22、位即测试位)的值送到状态寄存器的值送到状态寄存器 ST1中的中的TC位,即如果测试该位为位,即如果测试该位为1,则,则TC就置就置1。指令中指令中bitcode的值与数据存储单元被指定的测试位的关系的值与数据存储单元被指定的测试位的关系 是:是:bit number=15-bit code操作:操作:(PC)+IPC;(数据存储单元数据存储单元bit number)TC。状态位:影响状态位:影响TC状态位。状态位。例例20:BIT *,0,AR114、测试指令、测试指令BITT(由由TREG指定指定bit code)句法:句法:BITT dma ;直接寻址;直接寻址 BITT ind,ARn
23、;间接寻址;间接寻址功能:功能:把数据存储单元中被指定位的值送到状态寄存器把数据存储单元中被指定位的值送到状态寄存器ST1中的中的TC位。位。TREG低低4位位(D3D0)表示的表示的bit code值与数据存储单元被指定的测值与数据存储单元被指定的测 试位(试位(bit number)的关系与的关系与BIT指令相同。指令相同。操作:操作:(PC)+I PC:(数据存储单元数据存储单元bit number)TC。状态位:状态位:影响影响TC位。位。例例21:BITT 00h15、数据存储器串传送指令、数据存储器串传送指令BLDD句法:句法:BLDD 源地址,目的地址源地址,目的地址 ;通用格式
24、通用格式 BLDD#lk,dma ;源地址为长立即数,直接寻址源地址为长立即数,直接寻址 BLDD#lk,ind,ARn ;源地址为长立即数,间接寻址源地址为长立即数,间接寻址 BLDD dma,#lk ;目的地址为长立即数,直接寻址目的地址为长立即数,直接寻址 BLDD ind,#lk,ARn ;目的地址为长立即数,间接寻址目的地址为长立即数,间接寻址功能:功能:将将“源地址源地址”指定的数据存储器单元中的内容传送到指定的数据存储器单元中的内容传送到“目目 的地址的地址”指定指定 的数据存储器单元中。的数据存储器单元中。操作:操作:注意注意:复位时,重复计数器的复位时,重复计数器的RPTC的
25、值为的值为0,可用,可用RPT指令装入计数值指令装入计数值(N)。RPT指令与间接寻址方式的指令与间接寻址方式的BLDD指令一起使用,可传送数据存储器中的指令一起使用,可传送数据存储器中的 N+1个字。个字。执行执行BLDD指令时,无论长立即数代表源地址,还是代表目的地址,均保指令时,无论长立即数代表源地址,还是代表目的地址,均保存在存在PC中,每次重复时中,每次重复时PC加加1,从而访问一串地址,从而访问一串地址(目的地址或源地址目的地址或源地址)。另一串数据的地址另一串数据的地址(源地址或目的地址源地址或目的地址)通过间接寻址,按指令指定的方式通过间接寻址,按指令指定的方式修改当前修改当前
26、AR和和ARP,从而实现两块数据区的数据传送。,从而实现两块数据区的数据传送。如果使用直接寻址,因数据地址是常量,不能改变,所以重复执行如果使用直接寻址,因数据地址是常量,不能改变,所以重复执行BLDD 指令的结果是仅对一个单元写数据或对一串地址写同一个数据。指令的结果是仅对一个单元写数据或对一串地址写同一个数据。源数据串和目的数据串不要求同在片内或同在片外。源数据串和目的数据串不要求同在片内或同在片外。当与当与RPT指令一起使用时,一旦启动了指令一起使用时,一旦启动了RPT流水线,流水线,BLDD就变成了单周就变成了单周期指令,此时中断被禁止期指令,此时中断被禁止.例例22:BLDD#300
27、h,20h ;设;设DP=6,则数据存储器地址为,则数据存储器地址为 0300h037Fh,将,将0300h的内容传送到的内容传送到320h例例23:BLDD *+,#321h,AR316、程序存储器串传送指令、程序存储器串传送指令BLPD句法:句法:BLPD 源地址,目的地址源地址,目的地址 ;通用格式通用格式 BLPD#pma,dma ;源地址为长立即数,直接寻址源地址为长立即数,直接寻址 BLPD dma,ind,ARn ;源地址为长立即数,间接寻址源地址为长立即数,间接寻址功能:将功能:将“源地址源地址”指定的程序存储单元中的内容传送到指定的程序存储单元中的内容传送到“目的地址目的地址
28、”指定指定的数的数 据存储单元中。据存储单元中。操作:如指令操作:如指令15,将第二框中,将第二框中“lkPC改为改为“pmaPC,其余均相同。,其余均相同。注意:注意:BLPD指令与指令与BLDD指令有许多相似之处,指令有许多相似之处,BLDD指令中的注意事指令中的注意事 项项同样适合于同样适合于BLPD指令。指令。与与BLDD不同的是,不同的是,BLPD指令的源地址必须使用长立即数,并固指令的源地址必须使用长立即数,并固定指向程序存储器,而目的地址可由数据存定指向程序存储器,而目的地址可由数据存储器的地址或辅助寄存器储器的地址或辅助寄存器指定。当重复指定。当重复BLPD指令时,指令时,源地
29、址保存在源地址保存在PC中,每次重复中,每次重复PC加加1。目。目的地址若由辅助寄存器指定,则按指令指定方式修改,从而实现程序区的地址若由辅助寄存器指定,则按指令指定方式修改,从而实现程序区到数据区的数据传送。目的地址若由数据存储器地址到数据区的数据传送。目的地址若由数据存储器地址(常数常数)确定,则不能确定,则不能修改,此时重复执行修改,此时重复执行BLPD指令将没有什么意义指令将没有什么意义.例例24:BLPD#800h,00h ;设;设DP=6,则数据存储器地址为,则数据存储器地址为 0300h037Fh,将程序存储器,将程序存储器800h的内容的内容 传送到传送到300h例例25:BL
30、PD#800h,*,AR717、无条件调用指令、无条件调用指令(由累加器指定由累加器指定)CALA句法:句法:CALA功能:功能:无条件调用由累加器低无条件调用由累加器低16位指定的子程序。利用该指令可根据计算位指定的子程序。利用该指令可根据计算 结果调用子程序。结果调用子程序。操作:操作:(PC)+1堆栈栈顶堆栈栈顶TOS;ACC的低的低16位位PC。例例26:CALA18、子程序调用指令、子程序调用指令CALL句法句法:CALL pam,ind1,ARn ;间接寻址;间接寻址功能功能:无条件调用由指令操作数指定的子程序,并按指令要求修改当前辅无条件调用由指令操作数指定的子程序,并按指令要求
31、修改当前辅 助寄存器和助寄存器和ARP的内容。的内容。操作操作:(PC)+2堆栈栈顶堆栈栈顶TOS;pamPC;按指令要求修改按指令要求修改(当前当前AR)和和(ARP)。例例27:CALL 191,*+,AR019、条件调用指令、条件调用指令CC句法:句法:CC pma,cond1,cond2,功能功能:如果指定的条件都满足,则调用如果指定的条件都满足,则调用pma指定则子程序。指定则子程序。操作操作:如果如果cond1,cond2,都满足,则都满足,则(PC)+2堆栈栈顶堆栈栈顶TOS,pamPC,否则,否则PC+2。例例28:CC 0BFh,LEQ,C ;若累加器的内容小于或等于若累加器
32、的内容小于或等于0,且进位位为,且进位位为 1,则调用程序地址,则调用程序地址0BFh 处的子程序,只要处的子程序,只要 有一个条件不满足,则继续执行有一个条件不满足,则继续执行CC下面的指下面的指 令。令。20、清、清0指令指令CLRC句法:句法:CLRC control bit 操作数中操作数中controlbit选择以下控制位之一:选择以下控制位之一:C 状态寄存器状态寄存器STI中的进位位中的进位位(D9);CNF 状态寄存器状态寄存器STl中的中的RAM配置控制位配置控制位(D12)INTM 状态寄存器状态寄存器ST0中的中断模式位中的中断模式位(D9);OVM 状态寄存器状态寄存器
33、ST0中的溢出模式位中的溢出模式位(D11):SXM 状态寄存器状态寄存器STl中的符号扩展模式位中的符号扩展模式位(DiO);TC 状态寄存器状态寄存器STl中的测试控制标志位中的测试控制标志位(D11);XF 状态寄存器状态寄存器STl中的中的XF引脚状态位引脚状态位(D4):功能功能:把指定的控制位清把指定的控制位清0。操作:操作:(PC)+1PC;0control bit。21、累加器取反指令、累加器取反指令CMPL句法:句法:CMPL功能:功能:将累加器中的内容逻辑取反。将累加器中的内容逻辑取反。操作:操作:(PC)+1PC:(ACC)ACC。例例28:CMPL22、比较指令、比较指
34、令CMPR句法:句法:CMPR CM功能:功能:将当前辅助寄存器的内容与将当前辅助寄存器的内容与AR0的内容进行比较:的内容进行比较:若若CM=0,则比较是否,则比较是否(当前当前AR)=(AR0);若若CM=I,则比较是否,则比较是否(当前当前AR)(AR0);若若CM=3,则比较是否,则比较是否(当前当前AR)(AR0);如果条件为真,则如果条件为真,则ST1中的中的TC位置位置1,如果条件为假,则,如果条件为假,则TC清清0.操作操作:(PC)+1PC,。完成由完成由CM值值(0-3)指定的当前指定的当前AR和和AR0的比较的比较,若为真若为真,则则1TC,若,若为假,则为假,则 0TC
35、。注意注意:比较时辅助寄存器的值作为无符号整数看待。比较时辅助寄存器的值作为无符号整数看待。23、数据移动指令、数据移动指令DMOV句法句法:DMOV dma ;直接寻址;直接寻址 DMOV ind,ARn ;间接寻址;间接寻址功能功能:将指定的数据存储单元的内容复制到地址加将指定的数据存储单元的内容复制到地址加1的单元。的单元。操作操作:(PC)+1 PC数据;数据;(数据存储器地址数据存储器地址)数据存储地址数据存储地址+1。状态位状态位:受受CNF状态位影响。状态位影响。注意注意:DMOV指令用于片内任何配置的数据存储器指令用于片内任何配置的数据存储器RAM块,数据的移动块,数据的移动
36、可以跨越块的边界。可以跨越块的边界。DMOV指令不能用于外部数据存储器,如果指令指定了外部存储器指令不能用于外部数据存储器,如果指令指定了外部存储器 地址,执行时只读指定的存储器单元,但不进行其他操作。地址,执行时只读指定的存储器单元,但不进行其他操作。数据移动功能对于实现数据信号处理中的数据移动功能对于实现数据信号处理中的Z-1延时很有用。延时很有用。例例29:DMOV *,AR1 ;将当前辅助寄存器指定的数据存储器单元;将当前辅助寄存器指定的数据存储器单元 内容复制到地址加内容复制到地址加1单元,然后将下次辅助单元,然后将下次辅助 寄存器指定为寄存器指定为AR124、暂停指令、暂停指令ID
37、LE句法句法:IDLE功能:功能:程序停止执行,程序停止执行,DSP芯片进入低功耗模式,直到发生硬件复位、硬芯片进入低功耗模式,直到发生硬件复位、硬件件NMI或未被屏蔽的硬件中断或未被屏蔽的硬件中断(外部的或内部的外部的或内部的)。操作:操作:(PC+1)PC;等待硬件中断。等待硬件中断。状态位状态位:受受INTM的影响。的影响。注意:注意:如果因如果因NMI或复位使芯片退出低功耗模式或复位使芯片退出低功耗模式,则执行则执行0024h或或0000h单元的中断服务程序。单元的中断服务程序。不管状态寄存器不管状态寄存器ST0中的中断模式位中的中断模式位INTM为为0或或1,未被屏蔽的中,未被屏蔽的
38、中断均可使芯片退出低功耗模式,但退出后的操作则取决于断均可使芯片退出低功耗模式,但退出后的操作则取决于INTM。INTM=0,程序转移到相应的中断服务程序;,程序转移到相应的中断服务程序;INTM=I,执行,执行IDLE后面的指令。后面的指令。25、输入指令、输入指令IN句法:句法:IN dma,PA ;直接寻址;直接寻址 IN ind,PA,ARn ;间接寻址;间接寻址 操作数中操作数中PA表示表示16位位I/O端口或端口或I/O映射的寄存器地址。映射的寄存器地址。功能:功能:从从I/O端口读入端口读入16位数据,送到指定的数据存储单元中。位数据,送到指定的数据存储单元中。重复指令重复指令(
39、RPT)与与IN指令一起使用可连续传送指令一起使用可连续传送I/O空间的一串字到空间的一串字到 数据存储器。数据存储器。操作:操作:(PC)+2PC;(PA)数据存储器地址。数据存储器地址。例例30:IN *,5h ;从端口地址为;从端口地址为5h的外设中读入一个字,并将该字保的外设中读入一个字,并将该字保 存到由当前辅助寄存器指定的数据存储单元中存到由当前辅助寄存器指定的数据存储单元中26、软中断指令、软中断指令INTR句法:句法:INTR k 操作数中操作数中k为数值为数值031,表示中断矢量号。,表示中断矢量号。功能:功能:程序控制转换到与程序控制转换到与k对应的中断矢量单元对应的中断矢
40、量单元(该单元存放的转移指令该单元存放的转移指令可引导相应的中断服务程序可引导相应的中断服务程序)。操作:操作:(PC)+1堆栈:堆栈:k值对应的中断矢量地址值对应的中断矢量地址PC。状态位:状态位:指令影响指令影响INTM状态位,但不受状态位,但不受INTM的影响。的影响。注意:注意:INTR指令是软中断指令,利用该指令可从程序的任意位置转移指令是软中断指令,利用该指令可从程序的任意位置转移 到任意一种中断服务程序中。到任意一种中断服务程序中。INTM位和中断屏蔽位都不影响位和中断屏蔽位都不影响INTR指令。指令。当响应当响应INTR中断时,中断时,INTM位置位置1,禁止可屏蔽中断,但不影
41、响,禁止可屏蔽中断,但不影响 IFR标志。标志。27、装载累加器指令、装载累加器指令LACC句法:句法:LACC dma,shift ;直接寻址,左移;直接寻址,左移015位位 LACC dma,16 ;直接寻址,左移;直接寻址,左移16位位 LACC ind ,shin,ARn ;间接寻址,左移;间接寻址,左移015位位 LACC ind,16,ARn ;间接寻址,左移;间接寻址,左移16位位 LACC#lk ,shift ;长立即数寻址,左移;长立即数寻址,左移015位位功能:功能:将指定的数据存储单元的内容或将指定的数据存储单元的内容或16位常数左移后送累加器。移位时位常数左移后送累加器
42、。移位时低位填低位填0,高位由,高位由SXM决定,决定,SXM=1,用符号扩展;,用符号扩展;SXM=0,则填,则填0。操作:操作:(PC)+1 PC 或或(PC)+2 PC(长立即数寻址长立即数寻址);(数据存储器地址数据存储器地址)X2shiftACC 或或 lkX2shiftACC(长立即数寻址长立即数寻址)。状态位:状态位:指令受指令受SXM影响。影响。例例31:LACC *,4 ;(设;(设SXM=0)将当前)将当前AR指定的数据存储器的内容指定的数据存储器的内容 左移左移4位后送累加器位后送累加器 28、装载累加器低、装载累加器低16位指令位指令LACL句法:句法:LACL dma
43、 ;直接寻址;直接寻址 LACL ind,ARn ;间接寻址;间接寻址 LACL#k ;短立即数寻址;短立即数寻址功能:功能:将指定的数据存储单元的内容或用将指定的数据存储单元的内容或用0扩展的扩展的8位常数送到累加器的位常数送到累加器的低低16位,累加器的高位,累加器的高16位填位填0。操作:操作:(PC)+1 PC;直接或间接寻址直接或间接寻址 (数据存储器地址数据存储器地址)ACC(150);0 ACC(3116);或短立即数寻址或短立即数寻址 k ACC(70);0 ACC(318)。状态位:状态位:不受不受SXM影响。影响。例例32:LACL#10h;将;将10h送到累加器的低送到累
44、加器的低8位,累加器的位,累加器的D31D8填填029、装载累加器指令、装载累加器指令LACT(移位次数由移位次数由TREG确定确定)句法:句法:LACT dma ;直接寻址;直接寻址 LACT ind,ARn ;间接寻址间接寻址功能:功能:将指定的数据存储单元的内容左移后送到累加器。左移次数由将指定的数据存储单元的内容左移后送到累加器。左移次数由 TREG的低的低4位确定位确定(可移动可移动0l5位位)。移位时。移位时 低位填低位填0,高位由,高位由SXM 决定。决定。操作:操作:(PC)+1 PC;(数据存储器地址数据存储器地址)X2(TREG(3:0)ACC。状态位:状态位:受受SXM影
45、响。影响。例例33:LACT *-,AR330、装载辅助寄存器指令、装载辅助寄存器指令LAR句法:句法:LAR ARx,dma ;直接寻址;直接寻址 LAR ARx,ind,ARn ;间接寻址;间接寻址 LAR ARx,#k ;短立即数寻址;短立即数寻址 LAR ARx,#lk ;长立即数寻址;长立即数寻址 操作数中操作数中x为数值为数值07,表示要装载的辅助寄存器。,表示要装载的辅助寄存器。功能:功能:将指定的数据存储单元中的内容或将指定的数据存储单元中的内容或8位、位、16位常数送到指令指定的辅助寄位常数送到指令指定的辅助寄存器存器ARx中。不论中。不论SXM为何值,所指定的常数均为无符号
46、整数。为何值,所指定的常数均为无符号整数。操作:操作:(PC)+1PC;直接或间接寻址直接或间接寻址 (数据存储器地址数据存储器地址)ARx;或短立即数寻址或短立即数寻址 kARx (ARx的高位填的高位填0);或长立即数寻址:或长立即数寻址:lkARx。注意:注意:如果指令使用间接寻址,且指令指定的如果指令使用间接寻址,且指令指定的AR与与ARP所指定的所指定的AR相同,相同,LAR指令仅对该指令仅对该AR进行装载操作,而不对其进行增或减量修改。进行装载操作,而不对其进行增或减量修改。30、装载辅助寄存器指令、装载辅助寄存器指令LAR句法:句法:LAR ARx,dma ;直接寻址;直接寻址
47、LAR ARx,ind,ARn ;间接寻址;间接寻址 LAR ARx,#k ;短立即数寻址;短立即数寻址 LAR ARx,#lk ;长立即数寻址;长立即数寻址 操作数中操作数中x为数值为数值07,表示要装载的辅助寄存器。,表示要装载的辅助寄存器。功能:功能:将指定的数据存储单元中的内容或将指定的数据存储单元中的内容或8位、位、16位常数送到指令指定的辅助寄位常数送到指令指定的辅助寄存器存器ARx中。不论中。不论SXM为何值,所指定的常数均为无符号整数。为何值,所指定的常数均为无符号整数。操作:操作:(PC)+1PC;直接或间接寻址直接或间接寻址 (数据存储器地址数据存储器地址)ARx;或短立即
48、数寻址或短立即数寻址 kARx (ARx的高位填的高位填0);或长立即数寻址:或长立即数寻址:lkARx。注意:注意:如果指令使用间接寻址,且指令指定的如果指令使用间接寻址,且指令指定的AR与与ARP所指定的所指定的AR相同,相同,LAR指令仅对该指令仅对该AR进行装载操作,而不对其进行增或减量修改。进行装载操作,而不对其进行增或减量修改。例例34:LAR AR4,*-例例35:LAR AR0,16 ;设;设DP=6,则数据存储器地址为,则数据存储器地址为 0300h037Fh,将将310h单元的内容传送到单元的内容传送到AR0中中31、装载、装载DP指令指令LDP句法:句法:LDP dma
49、;直接寻址;直接寻址 LDP ind,ARn ;间接寻址;间接寻址 LDP#k ;短立即数寻址;短立即数寻址功能:功能:将指定的数据存储单元中的低将指定的数据存储单元中的低9位或位或9位立即数值送到状态寄存位立即数值送到状态寄存 器器ST0中的中的DP(LST指令也可加载指令也可加载DP)。操作:操作:(PC)+1PC;(数据存储器地址数据存储器地址)的低的低9位位DP(直接或间接寻址直接或间接寻址)或或kDP(短立即数寻址短立即数寻址)。状态位:影响状态位:影响DP。例例36 :LDP *,AR532、装载、装载PREG高高16位指令位指令LPH句法:句法:LPH dma ;直接寻址;直接寻
50、址 LPH ind,ARn ;间接寻址;间接寻址功能:功能:将指定的数据存储单元的内容送到将指定的数据存储单元的内容送到PREG的高的高16位,位,PREG的低的低 16位不变。在中断和子程序调用时,可用位不变。在中断和子程序调用时,可用LPH指令恢复指令恢复PREG的高的高 位字。位字。操作操作:(PC)+1PC;(数据存储器地址数据存储器地址)PREG(3116)。例例37:LPH *,AR6 ;将当前;将当前AR指定的数据存储单元的内容送到指定的数据存储单元的内容送到PREG 高高16位,位,AR6为下次的辅助寄存器。为下次的辅助寄存器。33、装载状态寄存器指令、装载状态寄存器指令LST