“DSP技术”第3章寻址方式和指令系统_第1页
“DSP技术”第3章寻址方式和指令系统_第2页
“DSP技术”第3章寻址方式和指令系统_第3页
“DSP技术”第3章寻址方式和指令系统_第4页
“DSP技术”第3章寻址方式和指令系统_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、DSP技术第3章:TMS320C24x 寻址方式和指令系统3.1 寻址方式3.2 指令集3.3 典型指令说明第3章: TMS320C24x 寻址方式和指令系统重点: 掌握TMS320LF240 x DSP 寻址方式及指令集合中的重要指令难点: 理解TMS320LF240 x DSP不同寻址方式的含义、操作原理和作用 3.1 寻址方式存储器寻址方式立即寻址直接寻址间接寻址 3.1 寻址方式1、立即寻址含义:指令中已包含有执行指令所需的操作数;说明: 在数值或符号前加#表示立即数; 立即数有两种形式:短和长例如:采用短立即寻址RPT指令RPT #99 ;将紧跟在后面的语句重复99+1次采用长立即寻

2、址ADD指令ADD #65534, 2 ;将数据65534左移两位后,再将结果加至 ;累加器 3.1 寻址方式2、直接寻址含义:用指令中包含的数据存储器地址的低7位+基地址 16位数据存储器地址。基地址: DP_ 数据页指针指令寄存器的内容: 位158:指示指令类型(操作码)和指令所访问的数据值的移位信息。 位7: 直接/间接指示符。0直接寻址;1间接寻址。 位60: 指示指令访问的数据存储器的偏移量。DP作为基地址的直接寻址方式 数据存储器地址以128为单位被分成若干块,这些块被称为数据页。64K的数据存储器总共包含512个数据页,标号从0511。数据页由状态寄存器ST0中的9位数据页指针D

3、P值决定。偏移地址由指令中操作数的7位最低有效位提供。如采用直接寻址方式访问数据地址0050H,则:DP0000 0000 0偏移量101 0000数据存储器页图 3.1 寻址方式2、直接寻址步骤: 设置数据页面:将适当的值(0511)加载到DP。可利用LDP或任何能将数值加载到ST0的指令。 指定偏移地址:给出7位偏移地址作为指令的操作数。注:不必在每条使用直接寻址的指令前都设置数据页面。如果代码块内的所有指令都访问同一数据页面,只须在该指令块的前面加载一个DP。必须保证在访问新的数据页面前改变DP。 3.1 寻址方式2、直接寻址例: 使用直接寻址的ADD指令LDP 4 ;将数据页面设置为4

4、ADD 9h,5 ;数据存储器地址0209h中的内容左移5位与累 ;加器的内容相加数据地址的产生 3.1 寻址方式2、直接寻址例: 使用直接寻址的ADDC指令LDP 500 ;将数据页面设置为500ADDC 6h ;数据存储器地址FA06h中的内容及进位位(C)的值与累;加器的内容相加数据地址的产生 3.1 寻址方式3、间接寻址含义:按辅助寄存器(AR)中的内容寻址数据存储器用途:主要用在需要存储器地址以步进方式连续变化的场合。 说明:(1)当前辅助寄存器 通过向状态寄存器ST0中的3位辅助寄存器指针(ARP)在装入07,可选择特定的辅助寄存器。ARP可由MAR、LST或任何支持间接寻址的指令

5、装载。ARP所指的寄存器被作为当前寄存器(AR)。执行指令时,当前AR的内容用作被访问的数据存储器地址。 3.1 寻址方式3、间接寻址(2)间接寻址选项不加也不减:指令使用当前AR的内容作为数据存储器的地址,但当前AR的内容既不增加也不减少。加1或减1:指令使用当前AR的内容作为数据存储器的地址,但当前AR的内容加1或减1。加或减一个变址量:指令使用当前AR的内容作为数据存储器的地址,然后使当前AR的内容加或减一个变址量,该变址量为AR0中的值。加或减一个变址量且反向进位:指令使用当前AR的内容作为数据存储器的地址,然后使当前AR的内容加或减一个变址量,该变址量为AR0中的值,采用反向进位方式

6、(用于FFT)。3.1 寻址方式选项操作数例子不增不减*LACC * 用当前AR所指的DM地址中的内容装载累加器增1*LACC * 用当前AR所指的DM地址中的内容装载累加器 然后当前AR加1减1*LACC * 用当前AR所指的DM地址中的内容装载累加器 然后当前AR减1加变址量*0LACC *0 用当前AR所指的DM地址中的内容装载累加器 然后当前AR的内容加上AR0的内容减变址量*0LACC *0 用当前AR所指的DM地址中的内容装载累加器 然后当前AR的内容减去AR0的内容加变址量反向进位*BROLACC *BRO 用当前AR所指的DM地址中的内容装载累加器 然后当前AR的内容加上AR0

7、的内容,采用反转进位减变址量反向进位*BROLACC *BRO 用当前AR所指的DM地址中的内容装载累加器 然后当前AR的内容减去AR0的内容,采用反转进位 3.1 寻址方式3、间接寻址(3)辅助寄存器除了更新当前AR内容外,某些指令还可以指明下一个AR。例:MAR*,AR1;将当前AR设为AR1LACL*,AR2;将AR1所指向的地址中的内容装载到;ACC累加器的低16位,AR1内容加1,使 ;AR2为当前ARSACL *;将ACC的低16位存于AR2所指向的地址;单元,AR2内容加1 3.1 寻址方式3、间接寻址(5)修改辅助寄存器的内容特定指令:LAR、ADRK、SBRK和MAR。LAR

8、装载AR;ADRK、SBRK从AR中加上、减去一个立即数;MAR使AR值增加/减少1或增加/减少一个索引量。 3.1 寻址方式3、间接寻址例: 不加也不减的间接寻址指令ADD *,8;将当前AR指定的DM单元的值向左移8位后;加到ACC中间接寻址时指令寄存器的内容0 0 1 00 0 1 010 0 00 x x x 15 14 13 12 11 10 9 8 6 5 4 2 1 037ADD操作码Shift=8间接寻址方式N=不指定下一ARARU=对当前AR无操作NAR=任意值 3.1 寻址方式3、间接寻址例: 加1的间接寻址指令ADD *,8,AR4;将当前AR指定的DM单元的值向左移8位

9、后;加到ACC中,当前AR加1,且AR4变为下一AR间接寻址时指令寄存器的内容0 0 1 00 0 1 010 1 011 0 0 15 14 13 12 11 10 9 8 6 5 4 2 1 037ADD操作码Shift=8间接寻址方式N=指定下一ARARU=对当前AR加1操作NAR=4 3.1 寻址方式3、间接寻址(4)间接寻址操作码格式指令寄存器的内容:位158:指定指令类型及与数据移位相关的信息。位7:直接/间接指示。1为间接寻址方式,0为直接寻址方式。位64:AR更新代码ARU,确定是否对AR进行更新以及将其增加还是减少,将ACC的低16位存于AR所指向的地址。位3:下一AR指示符

10、N。指定该指令是否改变ARP的值,0ARP内容不变;1NAR的内容加载到ARP,原ARP的值加载到ST1的ARB。位20:下一AR的值NAR。ARU代码在当前AR中完成的运算654000在当前AR中无操作001当前AR-1当前AR010当前AR+1当前AR011保留100当前AR-AR0当前AR(反向进位)101当前AR-AR0当前AR110当前AR+AR0当前AR111当前AR+AR0当前AR(反向进位)当前AR中ARU代码的作用 3.2 指令集按功能分为6大类累加器、算术和逻辑指令(表3.3)辅助寄存器和数据页面指针指令(表3.4)TREG、PREG和乘法指令(表3.5)转移指令(表3.6

11、)控制指令(表3.7)I/O和存储器操作(表3.8) 3.2 指令集ACC累加器ARxLAR和SAR指令中使用的3位值,指定被操作的辅助寄存器CM2位数值,CMPR指令根据CM的值进行比较:CM=00,测试是否当前AR=AR0;CM=01,测试是否当前ARAR0;CM=11,测试是否当前ARAR0。AR辅助寄存器BITX4位数值,表示BIT指令要测试数据存储器值的哪一位SHIFT4位右移量TP条件执行指令的2位数值:BIO引脚为低,TP=00;TC=1,TP=01;TC=0,TP=10;无条件,TP=11。符号定义 3.3 典型指令说明1、对累加器的加操作ADD指令 ADD指令执行的操作是将数

12、据存储器单元的数或立即数左移后加至累加器。移位时,低位填0,高位在SXM=1时为符号扩展,在SXM=0时填0。结果存在累加器中。寻址短立即数时,加操作不受SXM的影响,且不能重复执行。 3.3 典型指令说明1、对累加器的加操作ADD指令 举例:(1) ADD5, 2;(DP=4:0200h027Fh)将数据存储器单元205;的内容左移2位之后与ACC相加,结果存;ACC执行前执行后数据存储器205h1h数据存储器205h1hACCx2hACC006hCC 3.3 典型指令说明1、对累加器的加操作ADD指令(2) ADD*+, 2, AR0;(ARP=4, AR4=282)将数据存储器;单元28

13、2的内容左移2位之后与;ACC相加,结果存在ACC执行前执行后ARP4ARP0AR40282hAR40283h数据存储器282h2h数据存储器282h2hACCx2hACC00AhCC 3.3 典型指令说明1、对累加器的加操作ADD指令(3) ADD# 2;短立即数2;与ACC相加,;结果存在ACC(4) ADD # 1111h, 2;长立即数;1111h左移2位;后与ACC相;加,结存在;ACC执行前执行后ACCx2hACC004hCC执行前执行后ACCx2hACC04446hCC例2、和累加器逻辑“与”操作指令AND语法说明:如果是直接或间接寻址,数据存储单元中的数和累加器的低16位进行与

14、运算,结果放在累加器的低16位,累加器的高16位清0。如果是立即数寻址,长立即数可以先左移,再和累加器进行运算。没有被左移后的值覆盖的低位和高位都清0。指令不受SXM影响。例如: 3.3 典型指令说明AND指令用来实现被寻址单元的内容和连接器的逻辑“与”操作,以及长立即数经过移位之后和连接器进行逻辑“与”操作。逻辑“与”操作之后的结果保存在累加器中。举例:(1)AND16;(DP=4:0200027Fh)将数据存储器单元210h的内容;与ACC的内容进行逻辑“与”操作,结果保留在;ACC中执行前执行后数据存储器0210h00FFh数据存储器0210h00FFhACC12345678hACC00

15、000078h 3.3 典型指令说明2、和累加器逻辑“与”操作指令AND(2)AND *;(ARP=0,AR0=0301h)将数据存储器单元301h的内容与ACC;的内容进行逻辑“与”操作,结果保留在ACC中(3)AND 00FFh, 4;将立即数00FFh左移4位后与ACC的内容进行逻辑;“与”操作,结果保留在ACC中执行前执行后ARP0ARP0AR00301hAR00301h数据存储器0301h0FF00h数据存储器0301h0FF00hACC12345678hACC00005600h执行前执行后ACC12345678hACC00000670h 3.3 典型指令说明3、辅助寄存器不等于零转

16、移指令BANZ 若当前辅助寄存器内容不为零,则控制转移至指定的程序存储器地址,否则控制转移到下一条指令。当前AR的缺省修改为减1。该指令可用来实现程序的循环执行。 3.3 典型指令说明3、辅助寄存器不等于零转移指令BANZ举例:(1)BANZ PGM0;PGM0是程序地址0的标号当AR0的内容不是0,程序转移的目的地址加载到程序计数器(PC),程序从这里继续运行。对当前AR缺省的修改方式是减1,因此执行后AR0的内容是4h。或者当AR0的内容是0,不执行程序转移;而是将PC加2执行BANZ后面的指令。对当前AR缺省的修改方式是减1,因此执行后AR0的内容是FFFFh(-1)。执行前执行后ARP

17、0ARP0AR05hAR04h执行前执行后ARP0ARP0AR00hAR0FFFFh 3.3 典型指令说明3、辅助寄存器不等于零转移指令BANZ(2)MAR*, AR0;ARP指向AR0 LARAR1, #3;AR1中装入3 LARAR0, #60h;AR0中装入0060hP1 ADD*+, AR1;若AR10则循环 BANZP1, AR0;将AR0所指的数加到ACC,并将;AR0的值增1 3.3 典型指令说明4、条件转移指令BCND 当所规定的条件符合时,控制转移到指定的程序存储器地址。举例:BCNDP1, LEQ;若ACC的内容0时,程序转到P1处开始执行条件说明条件说明EQACC=0CC

18、=1NEQACC0NOVOV=0LTACC0NTCTC=0GEQACC0TCTC=1NCC=0UNC无条件 3.3 典型指令说明5、位测试指令BIT 该指令将数据存储器中的指定位的值复制到状态寄存器ST1的TC位。将该指令和BCND指令结合可判断指定位的状态,并根据该位的状态来控制程序的转移。指令中bit code的值与其所对应的数据存储器数值的bit number的关系如下图所示:bit code0123456789101112131415bit number1514131211109876543210MSB数据存储器的值LSB 3.3 典型指令说明5、位测试指令BIT举例:(1)BIT 0

19、h, 15;(DP=6),测试0300h处的最低有效位(2)BIT *, 0, AR1;测试0310h处的最高有效位,并设ARP=1执行前执行后数据存储器0300h4DC8h数据存储器0300h4DC8hTC0TC0执行前执行后ARP0ARP0AR0310hAR0310h数据存储器0310h8000h数据存储器0310h8000hTC0TC1 3.3 典型指令说明6、数据存储器间的块传送BLDD把指定的数据存储单元源地址中的字copy到指定的数据存储单元目的地址中。源地址和目的地址可由长立即数地址或数据存储器地址指定。注意: 如果源地址为长立即数,则目的地址只能为直接或间接寻址方式;如果源地址

20、为直接或间接寻址方式,则目的地址只能为长立即数。该指令不能用于存储器映射的寄存器。使用RPT指令重复BLDD操作期间中断被禁止。当BLDD指令重复使用时,由长立即数指定的源(目的)地址被保存在PC中.每次重复过程PC增1,因此可以访问一串源(目的)地址,若使用间接寻址方式指定目的(源)地址,则每次重复时访问一个新目的(源)地址。若使用直接寻址方式,所指定的源(目的)地址不变,每次重复时不能修改。 3.3 典型指令说明6、数据存储器间的块传送BLDD举例:(1)BLDD #300h, 20h;(DP=6:0300h037Fh)将数据存储单元0300h的内容;复制到数据存储单元0320h(2)BL

21、DD *+, #321h, AR3执行前执行后数据存储器0300h0h数据存储器0300h0h0320h0Fh0320h0h执行前执行后ARP2ARP3AR2301hAR2302h数据存储器0301h01h数据存储器0301h01h0321h0Fh0321h01h 3.3 典型指令说明7、清除控制位指令CLRC 该指令将指定的控制位清除为0。指定的控制位为下述控制位之一:CST1的进位位CNFST1的RAM配置控制位INTMST0的中断方式位OVMST0的溢出方式位SXMST1的符号扩展方式位TCST1的测试/控制标志位XFST1的XF引脚状态位举例:CLRCTC;将ST1的TC位清零执行前执

22、行后ST1x9xxhST1 x1xxh 3.3 典型指令说明8、从端口输入数据指令IN 该指令从一个I/O单元读一个16位数到指定的数据存储器单元。IS引脚变为低电平,表示进行I/O访问,STRB、RD和READY时序与读外存储器一样。重复指令RPT与该指令一起使用可以连续从I/O空间读入数据,并送到数据空间。举例:(1)IN7,1000h;(DP=6)从地址为1000h的外设读数,并将数据存;于数据存储器单元0307h中(2)IN*, 5h;从口地址为0005h的外设读数据,并将数据存至;当前AR所指的数据存储器单元中 3.3 典型指令说明9、装载累加器指令LACC 该指令执行的操作是将指定

23、的数据存储器单元的内容或一个16位常数左移后送入累加器。移位时,低位填0,高位根据SXM的值进行扩展或填0。举例:(1)LACC5, 4;(DP=8:0400h047Fh, SXM=0)将数据存储器单;元0405h的内容左移4位后送到ACC执行前执行后数据存储器405h01h数据存储器405h01hACCx012345678hACCx10hCC 3.3 典型指令说明9、装载累加器指令LACC(2)LACC*, 4;(ARP=2, AR2=0305h, SXM=0)将数据存储器单;元0305h的内容左移4位后送到ACC(3)LACC#0F000h, 1;(SXM=1)将长立即数0F000h左移1

24、位后;送到ACC执行前执行后ARP2ARP2AR20305hAR20305h数据存储器305h0FFh数据存储器305h0FFhACCx012345678hACCx0FF0hCC执行前执行后ACCx012345678hACCxFFFFE000hCC 3.3 典型指令说明10、装载累加器低位并清累加器高位指令LACL 该指令将指定数据存储器单元的内容或用0扩展的8位常数装入累加器的低16位,高位填0。数据作为无符号的16位数据处理,而非二进制补码。无论SXM为何状态,该指令的操作数抑制符号扩展。举例:(1)LACL1;(DP=6:0300h037Fh)将数据存储单元0301h的内;容装入ACC执

25、行前执行后数据存储器301h0h数据存储器301h0hACCx7FFFFFFFhACCx0hCC 3.3 典型指令说明10、装载累加器低位并清累加器高位指令LACL(2)LACL*-, AR4;(ARP=0, AR0=0301h, (0301h)=2)将数据存储器;单元0301h的内容装入ACC(3)LACL10h;(SXM=1)将0010h装入ACC执行前执行后ARP0ARP4AR00301hAR00300h数据存储器301h2h数据存储器301h2hACCx012345678hACCx2hCC执行前执行后ACCx012345678hACCx10hCC 3.3 典型指令说明11、修改寄存器指

26、令MAR和装载寄存器指令LAR MAR指令用来修改辅助寄存器ARP的值,该指令在直接寻址方式下相当于NOP指令。LAR指令用来将数据存储器的值装入辅助寄存器。LAR和SAR指令可在子程序调用或中断处理时装载和存储辅助寄存器,从而实现在中断或子程序调用时上下文的保存。 3.3 典型指令说明11、修改寄存器指令MAR和装载寄存器指令LAR举例:(1)MAR *, AR1;指定当前AR为AR1(2)MAR*+, AR5;将当前AR(AR1)增1并将ARP指向下一AR(AR5)执行前执行后ARP0ARP1ARB7AR00执行前执行后AR134hAR135hARP1ARP5ARB7AR00 3.3 典型

27、指令说明11、修改寄存器指令MAR和装载寄存器指令LAR(3)LARAR1, 5h;(DP=4:0200h027Fh)将数据存储器地址0205h的;内容装入AR1寄存器(4)LAR AR1, 50h;将短立即数50h装入AR1(5)LARAR1, 1234h;将长立即数1234h装入AR1执行前执行后AR10FF09hAR150h执行前执行后AR10hAR11234h执行前执行后数据存储器205h18h数据存储器205h18hAR16hAR118h 3.3 典型指令说明12、装载数据页指针指令LDP 该指令被数据存储器单元的9位最低有效位或9位立即数送入状态寄存器ST0的数据页指针DP。DP也

28、可由LST指令装入。举例:(1)LDP5;(DP=5:0280h02FFh)(2)LDP*, AR5;(ARP=4, AR4=300h, (300h)=06h)执行前执行后数据存储器285hFEDCh数据存储器285hFEDChDP5hDP0DCh执行前执行后ARP4ARP5AR4300hAR4300h数据存储器300h06h数据存储器300h06hDP1FFhDP06h 3.3 典型指令说明13、装载状态寄存器指令LST 该指令被寻址数据存储器单元中的值装入指定的状态寄存器,用于子程序调用和中断后恢复状态寄存器。需要注意的几点:LST #0 操作不影响ST1寄存器中的ARB字段;LST #1

29、 操作中,送入ARB的值也被送入ARP;在间接寻址方式下用一操作数来指定下一AR值,则将被寻址数据存储器单元所含的3位最高有效位送入ARP;状态寄存器中的保留位读出总为1,写入对其无影响。LST 状态寄存器装载 语法:说明:指定的数据存储单元的内容装载到指定的状态寄存器,m=0时,装做到ST0,m=1时,装载到ST1。使用该指令时需要注意:在间接寻址中,如果操作数中指定下一个AR,这个AR被忽略。ARP用指定数据存储单元中的内容的高3位装入。例如: 3.3 典型指令说明13、装载状态寄存器指令LST举例:(1)MAR*, AR0 LST#0, *, AR1;由辅助寄存器AR0的内容寻址的数据存

30、储器中的字加载到状态寄存器;ST0,但INTM位除外应注意,即使指定了下一个ARP的值,该值也;要被忽略。另外,原来的ARP值并不加载到ARB执行前执行后ARP0ARP1AR0300hAR0300hARB0ARB0数据存储器300h2404h数据存储器300h2404hST06E00hST02604hST105EChST105ECh 3.3 典型指令说明14、装载TREG寄存器指令LTD 该指令将指定数据存储单元的内容加载到TREG。按照PM状态位指定的方式对乘积寄存器的内容进行移位,再与ACC的内容相加,结果存放在ACC中。指定数据存储单元的内容复制到地址加1的数据存储单元。注:若将该指令用

31、于外部数据存储器,其作用同LTA指令,即累加先前的乘积,并从外部数据存储器加载TREG,但不作数据移动。LTD TREG寄存器装载、累加前一次乘积并移位。 语法:说明:指定的数据存储单元的内容装载到TREG中,乘积寄存器中的值根据PM状态移位后加到ACC中。指定的数据存储单元的内容同时复制到下一个存储单元。 3.3 典型指令说明14、装载TREG寄存器指令LTD举例:(1) LTD126;DP=7:0380h03FFh,PM=0:乘积不移位执行前执行后数据存储器3FEh62h数据存储器3FEh62h3FFh0h3FFh62hTREG3hTREG62hPREG0FhPREG0FhACCx5hAC

32、C014hCC 3.3 典型指令说明15、乘且累加并带数据移动指令MACD 该指令可完成以下功能:按PM状态位指定的方式把先前的乘积移位,再与ACC的内容相加;把指定的数据存储器单元的内容加载到TREG;将存放在TREG寄存器中的数据存储器单元值乘以指定的程序存储器地址中的内容;将指定的数据存储器地址中的内容复制到下一个数据存储器。 3.3 典型指令说明15、乘且累加并带数据移动指令MACD举例:(1) MACD0FF00h, 08h;DP=6:0300h037Fh,PM=0:乘积不移;位,CF=1:RAM B0配置为程序寄存器执行前执行后数据存储器308h23h数据存储器308h23h309

33、h18h309h23h程序存储器FF00h4h程序存储器FF00h4hTREG45hTREG23hPREG458972hPREG8ChACCx723EC41hACC076975B3hCC 3.3 典型指令说明15、乘且累加并带数据移动指令MACD(2) MACD0FF00h, *, AR6;PM=0,CF=1执行前执行后ARP5ARP6AR5308hAR5308h数据存储器308h23h数据存储器308h23h309h18h309h23h程序存储器FF00h4h程序存储器FF00h4hTREG45hTREG23hPREG458972hPREG8ChACCx723EC41hACC076975B3

34、hCC 3.3 典型指令说明16、乘指令MPY T寄存器内容和被寻址数据存储器单元的内容相乘,其结果转入P寄存器中。若使用短立即数寻址,则T寄存器和带符号的13位常数相乘,无论SXM为何值,短立即数总是靠右对齐并在相乘之前进行符号扩展。举例:(1)MPY5;(DP=4:0200h027Fh)将数据存储单元0205h的内容和;TREG中的内容相乘,结果保存在PREG执行前执行后数据存储器205h7h数据存储器205h7hTREG6hTREG6hPREG36hPREG2Ah 3.3 典型指令说明16、乘指令MPY(2)MPY*, AR2;(ARP=1,AR1=040Dh)将数据存储器单元040Dh

35、的内容和;TREG中的内容相乘,结果保存在PREG(3)MPY#031h;立即数0031h和TREG中的内容相乘,结果保存在PREG执行前执行后TREG2hTREG2hPREG36hPREG62h执行前执行后ARP1ARP2AR140DhAR140Dh数据存储器40Dh7h数据存储器40Dh7hTREG6hTREG6hPREG36hPREG2Ah 3.3 典型指令说明17、重复执行下一条指令RPT 若使用直接或间接寻址,则被寻址的数据存储器单元中的值送入重复计数器RPTC;使用短立即数寻址,则8位立即数送入RPTC。紧接RPT后的那条指令被执行n次,n为RPTC初值加1。由于在上下文切换时不能

36、保存RPTC的值,所以重复循环被认为是多周期指令,不能被中断。举例:RPT#20;执行NOP指令21次NOP 3.3 典型指令说明18、移位并存储累加器高位指令SACH 该指令将整个累加器复制到输出移位寄存器中,然后全部32位数左移07位,再将移位后数值的高16位复制到数据存储器、在移位时,低位填0,高位丢失,累加器内容不变。举例:(1)SACH10, 1;(DP=4:00200h0027Fh)将ACC左移1位,高16;位存至数据存储单元020Ah执行前执行后ACCx4208001hACCx4208001hCC数据存储器20Ah0h数据存储器20Ah0841h 3.3 典型指令说明18、移位并

37、存储累加器高位指令SACH(2)SACH*+,0, AR2;(ARP=1)将ACC高16位存至AR1指向的;数据存储单元执行前执行后ARP1ARP2AR1300hAR1301hACCx4208001hACCx4208001hCC数据存储器300h0h数据存储器300h0420h 3.3 典型指令说明19、移位并存储累加器低位指令SACL 该指令将整个累加器复制到输出移位寄存器中,然后全部32位数左移07位,再将移位后数值的低16位复制到数据存储器、在移位时,低位填0,高位丢失,累加器内容不变。举例:(1)SACL10, 1;(DP=4:00200h0027Fh)将ACC左移1位,低16;位存至

38、数据存储单元020Ah执行前执行后ACCx4208001hACCx4208001hCC数据存储器20Ah0h数据存储器20Ah0002h 3.3 典型指令说明19、移位并存储累加器低位指令SACL(2)SACL*, AR2;(ARP=1)将ACC低16位存至AR1指向的数据存;储单元执行前执行后ARP1ARP2AR1300hAR1300hACCx4208001hACCx4208001hCC数据存储器300h0h数据存储器300h8001h 3.3 典型指令说明20、存储辅助寄存器指令SAR 该指令将指定辅助寄存器ARx内容存入指定的数据存储器单元,在间接寻址方式中,当SAR指令同时也要对当前A

39、R内容进行修改时,SAR将在增、减辅助寄存器内容前将辅助寄存器值存至数据存储器。 3.3 典型指令说明20、存储辅助寄存器指令SAR举例:(1)SARAR0, 30h;(DP=6:0300h037Fh)将AR0的值存至数据存储;单元0330h(2)SARAR0, *+执行前执行后AR037hAR037h数据存储器330h18h数据存储器330h37h执行前执行后ARP0ARP0AR0401hAR0402h数据存储器401h18h数据存储器401h401h 3.3 典型指令说明21、从当前AR中减去立即数指令SBRK 该指令从指定辅助寄存器中减去8位立即数值,其结果替换原有的AR中的内容。减去在辅助寄存器算术单元(ARAU)中进行,立即数值被作为8位正数处理。因此,辅助寄存器的算术运算都是无符号的。举例:SBRK#0FFh执行前执行后

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论