




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3章:章: TMS320C24x 寻址方式和指令系统寻址方式和指令系统3.1 寻址方式寻址方式3.2 指令集指令集3.3 典型指令说明典型指令说明 3.1 寻址方式存储器寻址方式存储器寻址方式立即寻址立即寻址直接寻址直接寻址间接寻址间接寻址 3.1 寻址方式1、立即寻址、立即寻址:指令中已包含有执行指令所需的操作数;:指令中已包含有执行指令所需的操作数;: 在数值或符号前加在数值或符号前加# #表示立即数;表示立即数; 立即数有两种形式立即数有两种形式:短短(8,9,13位位)和长和长(16位位)例如:例如:采用采用短立即寻址短立即寻址RPT指令指令RPT #99 ;将紧跟在后面的语句重复
2、将紧跟在后面的语句重复99+1次次采用长采用长立即寻址立即寻址ADD指令指令ADD #65534, 2 ;将数据将数据65534左移两位后,再将结果加至左移两位后,再将结果加至 ;累加器累加器 3.1 寻址方式2、直接寻址、直接寻址:用指令中包含的数据存储器地址的低:用指令中包含的数据存储器地址的低7 7位位+ +基基地址地址 1616位位数据存储器数据存储器地址。地址。: DP_ 数据页指针数据页指针 DP作为基地址的直接寻址方式 3.1 寻址方式2、直接寻址、直接寻址设置数据页面设置数据页面:将适当的:将适当的值值(0511)加载到加载到DP。可利用可利用LDP或任何能将数值加载到或任何能
3、将数值加载到ST0的指令。的指令。 指定偏移地址指定偏移地址:给出:给出7 7位偏移地址作为指令的操位偏移地址作为指令的操作数。作数。注注:不必在每条使用直接寻址的指令前都设置数据页面。:不必在每条使用直接寻址的指令前都设置数据页面。如果代码块内的所有指令都访问同一数据页面,只须在如果代码块内的所有指令都访问同一数据页面,只须在该指令块的前面加载一该指令块的前面加载一个个DP。必须保证在访问新的数据。必须保证在访问新的数据页面前改变页面前改变DP。 3.1 寻址方式2、直接寻址、直接寻址使用直接寻址使用直接寻址的的ADD指令指令LDP 4 ;将数据页面设置为将数据页面设置为4ADD 9h,5
4、;数据存储器地址数据存储器地址0209h中的内容左移中的内容左移5位与累位与累 ;加器的内容相加加器的内容相加数据地址的产生 3.1 寻址方式2、直接寻址、直接寻址使用直接寻址使用直接寻址的的ADDC指令指令LDP 500 ;将数据页面设置为将数据页面设置为500ADDC 6h ;数据存储器地址数据存储器地址FA06h中的内容及进位位中的内容及进位位(C)的值与累的值与累;加器的内容相加加器的内容相加数据地址的产生 3.1 寻址方式3、间接寻址、间接寻址:按辅助寄存器:按辅助寄存器(AR)中的内容寻址数据存储器中的内容寻址数据存储器:主要用在需要存储器地址以步进方式连续变化的场:主要用在需要存
5、储器地址以步进方式连续变化的场合。合。 :(1 1)当前辅助寄存器)当前辅助寄存器 通过向状态寄存器通过向状态寄存器ST0中的中的3位辅助寄存器指针位辅助寄存器指针(ARP)在装入在装入07,可选择特定的辅助寄存器。,可选择特定的辅助寄存器。ARP可由可由MAR、LST或任何支或任何支持间接寻址的指令装载。持间接寻址的指令装载。ARP所指的寄存器被作为当前寄存器所指的寄存器被作为当前寄存器(AR)。执行指令时,当前。执行指令时,当前AR的内容用作被访问的数据存储器地址。的内容用作被访问的数据存储器地址。 3.1 寻址方式3、间接寻址、间接寻址(2)间接寻址选项)间接寻址选项不加也不减不加也不减
6、:指令使用当前:指令使用当前AR的内容作为数据存储器的地址的内容作为数据存储器的地址,但当前,但当前AR的内容既不增加也不减少。的内容既不增加也不减少。加加1或减或减1:指令使用当前:指令使用当前AR的内容作为数据存储器的地址,的内容作为数据存储器的地址,但当前但当前AR的内容加的内容加1或减或减1。加或减一个变址量加或减一个变址量:指令使用当前:指令使用当前AR的内容作为数据存储器的内容作为数据存储器的地址,然后使当前的地址,然后使当前AR的内容加或减一个变址量,该变址量的内容加或减一个变址量,该变址量为为AR0中的值。中的值。加或减一个变址量且反向进位加或减一个变址量且反向进位:指令使用当
7、前:指令使用当前AR的内容作为的内容作为数据存储器的地址,然后使当前数据存储器的地址,然后使当前AR的内容加或减一个变址量的内容加或减一个变址量,该变址量为,该变址量为AR0中的值,采用反向进位方式中的值,采用反向进位方式(用于用于FFT)。3.1 寻址方式选项操作数例子不增不减*LACC * 用当前AR所指的DM地址中的内容装载累加器增1*LACC * 用当前AR所指的DM地址中的内容装载累加器 然后当前AR加1减1*LACC * 用当前AR所指的DM地址中的内容装载累加器 然后当前AR减1加变址量*0LACC *0 用当前AR所指的DM地址中的内容装载累加器 然后当前AR的内容加上AR0的
8、内容减变址量*0LACC *0 用当前AR所指的DM地址中的内容装载累加器 然后当前AR的内容减去AR0的内容加变址量反向进位*BROLACC *BRO 用当前AR所指的DM地址中的内容装载累加器 然后当前AR的内容加上AR0的内容,采用反转进位减变址量反向进位*BROLACC *BRO 用当前AR所指的DM地址中的内容装载累加器 然后当前AR的内容减去AR0的内容,采用反转进位 3.1 寻址方式3、间接寻址、间接寻址(3)辅助寄存器)辅助寄存器除了更新当前除了更新当前AR内容外,某些指令还可以指明下一个内容外,某些指令还可以指明下一个AR。例例:MAR*,AR1;将当前将当前AR设为设为AR
9、1LACL*,AR2;将将AR1所指向的地址中的内容装载到所指向的地址中的内容装载到;ACC累加器的低累加器的低16位,位,AR1内容加内容加1,;使使AR2为当前为当前ARSACL *;将将ACC的低的低16位存入位存入AR2所指向的地址所指向的地址;单元,单元,AR2内容加内容加1 3.1 寻址方式3、间接寻址、间接寻址(4)修改辅助寄存器的内容)修改辅助寄存器的内容 特定指令:特定指令:LAR、ADRK、SBRK和和MAR。 LAR装载装载AR; ADRK、SBRK从从AR中加上、减去一个立即数;中加上、减去一个立即数; MAR使使AR值增加值增加/减少减少1或增加或增加/减少一个索引量
10、。减少一个索引量。 3.1 寻址方式3、间接寻址、间接寻址例例: 不加也不减的间接寻址指令不加也不减的间接寻址指令ADD *,8;将当前将当前AR指定的指定的DM单元的值向左移单元的值向左移8位后位后;加到加到ACC中中 3.1 寻址方式3、间接寻址、间接寻址例例: 加加1 1的间接寻址指令的间接寻址指令ADD *,8,AR4;将当前将当前AR指定的指定的DM单元的值向左移单元的值向左移8位后位后;加到加到ACC中,当前中,当前AR加加1,且,且AR4变为下一变为下一AR 3.2 指令集按功能分为按功能分为 大类大类累加器、算术和逻辑指令累加器、算术和逻辑指令(表表3.2)辅助寄存器和数据页面
11、指针指令辅助寄存器和数据页面指针指令(表表3.3)TREG、PREG和乘法指令和乘法指令(表表3.4)转移指令转移指令(表表3.5)控制指令控制指令(表表3.6)I/O和存储器操作和存储器操作(表表3.7) 3.2 指令集ACC累加器累加器ARxLAR和和SAR指令中使用指令中使用的的3位值,指定被操作的辅助寄位值,指定被操作的辅助寄存器存器CM2位数值,位数值,CMPR指令根指令根据据CM的值进行比较:的值进行比较:CM=00,测试是否当前,测试是否当前AR=AR0;CM=01,测试是否当前,测试是否当前ARAR0;CM=11,测试是否当前,测试是否当前ARAR0。AR辅助寄存器辅助寄存器B
12、ITX4位数值,表示位数值,表示BIT指令指令要测试数据存储器值的哪一位要测试数据存储器值的哪一位SHIFT4位右移量位右移量TP条件执行指令的条件执行指令的2位数值:位数值:BIO引脚为低,引脚为低,TP=00;TC=1,TP=01;TC=0,TP=10;无条件,无条件,TP=11。符号定义符号定义 3.3 典型指令说明1、对累加器的加操作、对累加器的加操作ADD指令指令 ADD指令执行的操作是将数据存储器单元指令执行的操作是将数据存储器单元的数或立即数左移后加至累加器。移位时,的数或立即数左移后加至累加器。移位时,低位填低位填0,高位在,高位在SXM=1时为符号扩展,在时为符号扩展,在SX
13、M=0时填时填0。结果存在累加器中。寻址短。结果存在累加器中。寻址短立即数时,加操作不受立即数时,加操作不受SXM的影响,且不的影响,且不能重复执行。能重复执行。 3.3 典型指令说明1、对累加器的加操作、对累加器的加操作ADD指令指令 举例:举例:(1) ADD5, 2;(DP=4:0200h027Fh)将数据存储器单元将数据存储器单元205;的内容左移的内容左移2位之后与位之后与ACC相加,结果存在相加,结果存在;ACC执行前执行后数据存储器205h1h数据存储器205h1hACC2hACC06hC xC 0 3.3 典型指令说明1、对累加器的加操作、对累加器的加操作ADD指令指令(2)
14、ADD*+, 2, AR0;(ARP=4, AR4=282)将数据存储器将数据存储器;单元单元282的内容左移的内容左移2位之后与位之后与;ACC相加,结果存在相加,结果存在ACC执行前执行后ARP4ARP0AR40282hAR40283h数据存储器282h2h数据存储器282h2hACCC2hxACC0Ah 0 3.3 典型指令说明1、对累加器的加操作、对累加器的加操作ADD指令指令(3) ADD# 2;短立即数短立即数2;与与ACC相加,相加,;结果存在结果存在ACC(4) ADD # 1111h, 2;长立即数长立即数;1111h左移左移2位位;后与后与ACC相相;加,结果存在加,结果存
15、在;ACC执行前执行后ACC2hACC04hCxC0执行前执行后ACC2hACC4446hCxC0 3.3 典型指令说明2、累加器逻辑、累加器逻辑“与与”操作指令操作指令AND AND指令用来实现被寻址单元的内容和累加器的逻辑指令用来实现被寻址单元的内容和累加器的逻辑“与与”操作,以及长立即数经过移位之后和累加器进操作,以及长立即数经过移位之后和累加器进行逻辑行逻辑“与与”操作。逻辑操作。逻辑“与与”操作之后的结果保存操作之后的结果保存在累加器中。在累加器中。举例:举例:(1)AND 16;(DP=4:0200027Fh)将数据存储器单元将数据存储器单元210h的内容的内容;与与ACC的内容进
16、行逻辑的内容进行逻辑“与与”操作,结果保留在操作,结果保留在;ACC中中执行前执行后数据存储器0210h00FFh数据存储器0210h00FFhACC12345678hACC00000078h 3.3 典型指令说明2、累加器逻辑、累加器逻辑“与与”操作指令操作指令AND(2)AND *;(ARP=0,AR0=0301h)将数据存储器单元将数据存储器单元301h的内容与的内容与ACC;的内容进行逻辑的内容进行逻辑“与与”操作,结果保留在操作,结果保留在ACC中中(3)AND 00FFh, 4;将立即数将立即数00FFh左移左移4位后与位后与ACC的内容进行逻辑的内容进行逻辑;“与与”操作,结果保
17、留在操作,结果保留在ACC中中执行前执行后ARP0ARP0AR00301hAR00301h数据存储器0301h0FF00h数据存储器0301h0FF00hACC12345678hACC00005600h执行前执行后ACC12345678hACC00000670h 3.3 典型指令说明3、辅助寄存器不等于零转移指令、辅助寄存器不等于零转移指令BANZ 若当前辅助寄存器内容不为零,则控制转若当前辅助寄存器内容不为零,则控制转移至指定的程序存储器地址,否则控制转移至指定的程序存储器地址,否则控制转移到下一条指令。当前移到下一条指令。当前AR的缺省修改为减的缺省修改为减1。该指令可用来实现程序的循环执
18、行。该指令可用来实现程序的循环执行。 3.3 典型指令说明3、辅助寄存器不等于零转移指、辅助寄存器不等于零转移指令令BANZ举例:举例:(1)BANZ PGM0;PGM0是程序地址是程序地址0的标号的标号当当AR0的内容不是的内容不是0,程序转移的目的地址加载到程序,程序转移的目的地址加载到程序计数器计数器(PC),程序从这里继续运行。对当前,程序从这里继续运行。对当前AR缺省缺省的修改方式是减的修改方式是减1,因此执行后,因此执行后AR0的内容是的内容是4h。或者或者当当AR0的内容是的内容是0,不执行程序转移;而是将,不执行程序转移;而是将PC加加2执执行行BANZ后面的指令。对当前后面的
19、指令。对当前AR缺省的修改方式是缺省的修改方式是减减1,因此执行后,因此执行后AR0的内容是的内容是FFFFh(-1)。执行前执行后ARP0ARP0AR05hAR04h执行前执行后ARP0ARP0AR00hAR0FFFFh 3.3 典型指令说明3、辅助寄存器不等于零转移指令、辅助寄存器不等于零转移指令BANZ(2) MAR*, AR0;ARP指向指向AR0 LARAR1, #3;AR1中装入中装入3 LARAR0, #60h;AR0中装入中装入0060h P1 ADD*+, AR1 ;将将AR0所指的数加到所指的数加到ACC,并,并将将;AR0的值增的值增1 ; BANZP1, AR0若若AR
20、10则循环则循环 3.3 典型指令说明4、条件转移指令、条件转移指令BCND 当所规定的条件符合时,控制转移到指定当所规定的条件符合时,控制转移到指定的程序存储器地址。的程序存储器地址。举例:举例:BCND P1, LEQ;若若ACC的内容的内容0时,程序转到时,程序转到P1处开始执行处开始执行 3.3 典型指令说明5、位测试指令、位测试指令BIT 该指令将数据存储器中的指定位的值复制到状态寄存器该指令将数据存储器中的指定位的值复制到状态寄存器ST1的的TC位。将该指令和位。将该指令和BCND指令结合可判断指定位的指令结合可判断指定位的状态,并根据该位的状态来控制程序的转移。状态,并根据该位的
21、状态来控制程序的转移。指令中指令中bit code的值与其所对应的数据存储器数值的的值与其所对应的数据存储器数值的bit number的关系如下图所示:的关系如下图所示:bit code0123456789101112131415bit number1514131211109876543210MSB数据存储器的值LSB 3.3 典型指令说明5、位测试指令、位测试指令BIT举例:举例:(1)BIT 0h, 15;(DP=6),测试,测试0300h处的最低有效位处的最低有效位(2)BIT *, 0, AR1;测试测试0310h处的最高有效位,并设处的最高有效位,并设ARP=1执行前执行后数据存储器
22、0300h4DC8h数据存储器0300h4DC8hTC0TC0执行前执行后ARP0ARP0AR0310hAR0310h数据存储器0310h8000h数据存储器0310h8000hTC0TC1 3.3 典型指令说明6、数据存储器间的块传送、数据存储器间的块传送BLDD把指定的数据存储单元源地址中的字把指定的数据存储单元源地址中的字copy到指定的数据存储单元目的地到指定的数据存储单元目的地址中。源地址和目的地址可由长立即数地址或数据存储器地址指定。址中。源地址和目的地址可由长立即数地址或数据存储器地址指定。注意注意: 如果源地址为长立即数,则目的地址只能为直接或间接寻址方式;如果如果源地址为长立
23、即数,则目的地址只能为直接或间接寻址方式;如果源地址为直接或间接寻址方式,则目的地址只能为长立即数。源地址为直接或间接寻址方式,则目的地址只能为长立即数。 该指令不能用于存储器映射的寄存器。该指令不能用于存储器映射的寄存器。 使用使用RPT指令重复指令重复BLDD操作期间中断被禁止。操作期间中断被禁止。 当当BLDD指令重复使用时,由长立即数指定的源指令重复使用时,由长立即数指定的源(目的目的)地址被保存在地址被保存在PC中中. 每次重复过程每次重复过程PC增增1,因此可以访问一串源,因此可以访问一串源(目的目的)地址,若使用间接寻址地址,若使用间接寻址方式指定目的方式指定目的(源源)地址,则
24、每次重复时访问一个新目的地址,则每次重复时访问一个新目的(源源)地址。若使用地址。若使用直接寻址方式,所指定的源直接寻址方式,所指定的源(目的目的)地址不变,每次重复时不能修改。地址不变,每次重复时不能修改。 3.3 典型指令说明6、数据存储器间的块传送、数据存储器间的块传送BLDD举例:举例:(1)BLDD #300h, 20h;(DP=6:0300h037Fh)将数据存储单元将数据存储单元0300h的内容的内容;复制到数据存储单元复制到数据存储单元0320h执行前执行后数据存储器0300h0h数据存储器0300h0h0320h0Fh0320h0h执行前执行后ARP2ARP3AR2301hA
25、R2302h数据存储器0301h01h数据存储器0301h01h0321h0Fh0321h01h(2)BLDD *+, #321h, AR3 3.3 典型指令说明7、清除控制位指令、清除控制位指令CLRC 该指令将指定的控制位清除为该指令将指定的控制位清除为0。指定的控制位为下述控。指定的控制位为下述控制位之一:制位之一:CST1的进位位的进位位CNFST1的的RAM配置控制位配置控制位INTMST0的中断方式位的中断方式位OVMST0的溢出方式位的溢出方式位SXMST1的符号扩展方式位的符号扩展方式位TCST1的测试的测试/控制标志位控制标志位XFST1的的XF引脚状态位引脚状态位举例:举例
26、:CLRC TC;将将ST1的的TC位清零位清零执行前执行后ST1x9xxhST1 x1xxh 3.3 典型指令说明8、从端口输入数据指令、从端口输入数据指令IN 该指令从一个该指令从一个I/O单元读一个单元读一个16位数到指定的数据存储器单位数到指定的数据存储器单元。元。IS引脚变为低电平,表示进行引脚变为低电平,表示进行I/O访问,访问,STRB、RD和和READY时序与读外存储器一样。重复指令时序与读外存储器一样。重复指令RPT与该指令一与该指令一起使用可以连续从起使用可以连续从I/O空间读入数据,并送到数据空间。空间读入数据,并送到数据空间。举例:举例:(1)IN7,1000h ;(D
27、P=6)从地址为从地址为1000h的外设读数,并将数据存的外设读数,并将数据存;于数据存储器单元于数据存储器单元0307h中中(2)IN*, 5h;从口地址为从口地址为0005h的外设读数据,并将数据存至的外设读数据,并将数据存至;当前当前AR所指的数据存储器单元中所指的数据存储器单元中 3.3 典型指令说明9、装载累加器指令、装载累加器指令LACC 该指令执行的操作是将指定的数据存储器单元的内容或一该指令执行的操作是将指定的数据存储器单元的内容或一个个16位常数左移后送入累加器。移位时,低位填位常数左移后送入累加器。移位时,低位填0,高位,高位根据根据SXM的值进行扩展或填的值进行扩展或填0
28、。举例:举例:(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位
29、后位后;送到送到ACC执行前执行后ARP2ARP2AR20305hAR20305h数据存储器305h0FFh数据存储器305h0FFhACCx012345678hACCx0FF0hCC执行前执行后ACCx012345678hACCxFFFFE000hCC 3.3 典型指令说明10、装载累加器低位并清累加器高位指令、装载累加器低位并清累加器高位指令LACL 该指令将指定数据存储器单元的内容或用该指令将指定数据存储器单元的内容或用0扩展的扩展的8位常数位常数装入累加器的低装入累加器的低16位,高位填位,高位填0。数据作为无符号的。数据作为无符号的16位位数据处理,而非二进制补码。无论数据处理,而非
30、二进制补码。无论SXM为何状态,该指令为何状态,该指令的操作数抑制符号扩展。的操作数抑制符号扩展。举例举例:(1)LACL1;(DP=6:0300h037Fh)将数据存储单元将数据存储单元0301h的内的内;容装入容装入ACC执行前执行后数据存储器301h0h数据存储器301h0hACCx7FFFFFFFhACCx0hCC 3.3 典型指令说明10、装载累加器低位并清累加器高位指令、装载累加器低位并清累加器高位指令LACL(2)LACL*-, AR4 ;(ARP=0, AR0=0301h, (0301h)=2)将数据存储器将数据存储器;单元单元0301h的内容装入的内容装入ACC(3)LACL
31、10h;(SXM=1)将将0010h装入装入ACC执行前执行后ARP0ARP4AR00301hAR00300h数据存储器301h2h数据存储器301h2hACC012345678hACC2hCxCx执行前执行后ACC012345678hACC10hCxCx 3.3 典型指令说明11、修改、修改辅助辅助寄存器指令寄存器指令MAR和装载和装载辅助辅助寄存器寄存器指令指令LAR MAR指令用来修改辅助寄存器指令用来修改辅助寄存器ARP的值,该指令的值,该指令在直接寻址方式下相当于在直接寻址方式下相当于NOP指令。指令。LAR指令用指令用来将数据存储器的值装入辅助寄存器。来将数据存储器的值装入辅助寄存
32、器。LAR和和SAR指令可在子程序调用或中断处理时装载和存指令可在子程序调用或中断处理时装载和存储辅助寄存器,从而实现在中断或子程序调用时储辅助寄存器,从而实现在中断或子程序调用时上下文的保存。上下文的保存。 3.3 典型指令说明11、修改寄存器指令、修改寄存器指令MAR和装载寄存器指令和装载寄存器指令LAR举例:举例:(1)MAR *, AR1 ;指定当前指定当前AR为为AR1(2)MAR*+, AR5;将当前将当前AR(AR1)增增1并将并将ARP指向下一指向下一AR(AR5)执行前执行后ARP0ARP1ARB7AR00执行前执行后AR134hAR135hARP1ARP5ARB7AR00
33、3.3 典型指令说明11、修改寄存器指令、修改寄存器指令MAR和装载寄存器指令和装载寄存器指令LAR(3)LAR AR1, 5h;(DP=4:0200h027Fh)将数据存储器地址将数据存储器地址0205h的的;内容装入内容装入AR1寄存器寄存器(4)LAR AR1, 50h;将短立即数将短立即数50h装入装入AR1(5)LAR AR1, 1234h;将长立即数将长立即数1234h装入装入AR1执行前执行后AR10FF09hAR150h执行前执行后AR10hAR11234h执行前执行后数据存储器205h18h数据存储器205h18hAR16hAR118h 3.3 典型指令说明12、装载数据页指
34、针指令、装载数据页指针指令LDP 该指令被数据存储器单元的该指令被数据存储器单元的9位最低有效位或位最低有效位或9位立即数送入状态寄存器位立即数送入状态寄存器ST0的数据页指针的数据页指针DP。DP也可由也可由LST指令装入。指令装入。举例:举例:(1)LDP5;(DP=5:0280h02FFh)(2)LDP*, AR5;(ARP=4, AR4=300h, (300h)=06h)执行前执行后数据存储器285hFEDCh数据存储器285hFEDChDP5hDP0DCh执行前执行后ARP4ARP5AR4300hAR4300h数据存储器300h06h数据存储器300h06hDP1FFhDP06h 3
35、.3 典型指令说明13、装载状态寄存器指令、装载状态寄存器指令LST 该指令被寻址数据存储器单元中的值装入指定的状态寄存该指令被寻址数据存储器单元中的值装入指定的状态寄存器,用于子程序调用和中断后恢复状态寄存器。需要注意器,用于子程序调用和中断后恢复状态寄存器。需要注意的几点:的几点:LST #0操作不影响操作不影响ST1寄存器中的寄存器中的ARB字段;字段;LST #1操作中,送入操作中,送入ARB的值也被送入的值也被送入ARP;在间接寻址方式下用一操作数来指定下一在间接寻址方式下用一操作数来指定下一AR值,则将被寻址数据值,则将被寻址数据存储器单元所含的存储器单元所含的3位最高有效位送入位
36、最高有效位送入ARP;状态寄存器中的保留位读出总为状态寄存器中的保留位读出总为1,写入对其无影响。,写入对其无影响。 3.3 典型指令说明13、装载状态寄存器指令、装载状态寄存器指令LST举例:举例:(1)MAR *, AR0 LST#0, *, AR1;由辅助寄存器由辅助寄存器AR0的内容寻址的数据存储器中的字加载到状态寄存器的内容寻址的数据存储器中的字加载到状态寄存器;ST0,但但INTM位除外,原来的位除外,原来的ARP值不加载到值不加载到ARB执行前执行后ARP0ARP1AR0300hAR0300hARB0ARB0数据存储器300h2404h数据存储器300h2404hST06E00h
37、ST02604hST105EChST105ECh 3.3 典型指令说明14、装载、装载TREG寄存器指令寄存器指令LTD 该指令将指定数据存储单元的内容加载到该指令将指定数据存储单元的内容加载到TREG。按照按照PM状态位指定的方式对乘积寄存器的内容进状态位指定的方式对乘积寄存器的内容进行移位,再与行移位,再与ACC的内容相加,结果存放在的内容相加,结果存放在ACC中。指定数据存储单元的内容复制到地址加中。指定数据存储单元的内容复制到地址加1的数的数据存储单元。据存储单元。注注:若将该指令用于外部数据存储器,其作用同若将该指令用于外部数据存储器,其作用同LTA指令,即累加先前的乘积,并从外部数
38、据存指令,即累加先前的乘积,并从外部数据存储器加载储器加载TREG,但不作数据移动。,但不作数据移动。 3.3 典型指令说明14、装载、装载TREG寄存器指令寄存器指令LTD举例:举例:(1) LTD126;DP=7:0380h03FFh,PM=0:乘积不移位乘积不移位执行前执行后数据存储器3FEh62h数据存储器3FEh62h3FFh0h3FFh62hTREG3hTREG62hPREG0FhPREG0FhACCx5hACC014hCC 3.3 典型指令说明14、装载、装载TREG寄存器指令寄存器指令LTD(2) LTD *, AR3;(PM=0)执行前执行后ARP1ARP3AR13FEhAR
39、13FEh数据存储器3FEh62h数据存储器3FEh62h3FFh0h3FFh62hTREG3hTREG62hPREG0FhPREG0FhACCx5hACC014hCC 3.3 典型指令说明15、乘且累加并带数据移动指令、乘且累加并带数据移动指令MACD 该指令可完成以下功能:该指令可完成以下功能:按按PM状态位指定的方式把先前的乘积移位,再与状态位指定的方式把先前的乘积移位,再与ACC的内容相加;的内容相加;把指定的数据存储器单元的内容加载到把指定的数据存储器单元的内容加载到TREG;将存放在将存放在TREG寄存器中的数据存储器单元值乘以指定寄存器中的数据存储器单元值乘以指定的程序存储器地址
40、中的内容;的程序存储器地址中的内容;将指定的数据存储器地址中的内容复制到下一个数据存将指定的数据存储器地址中的内容复制到下一个数据存储器。储器。 3.3 典型指令说明15、乘且累加并带数据移动指令、乘且累加并带数据移动指令MACD举例:举例:(1) MACD0FF00h, 08h;DP=6:0300h037Fh,PM=0:乘积不移乘积不移;位位,CNF=1:RAM B0配置为程序寄存器配置为程序寄存器执行前执行后数据存储器308h23h数据存储器308h23h309h18h309h23h程序存储器FF00h4h程序存储器FF00h4hTREG45hTREG23hPREG458972hPREG8
41、Ch?ACCx723EC41hACC076975B3hCC 3.3 典型指令说明15、乘且累加并带数据移动指令、乘且累加并带数据移动指令MACD(2) MACD0FF00h, *, AR6 ;PM=0,CNF=1执行前执行后ARP5ARP6AR5308hAR5308h数据存储器308h23h数据存储器308h23h309h18h309h23h程序存储器FF00h4h程序存储器FF00h4hTREG45hTREG23hPREG458972hPREG8ChACCx723EC41hACC076975B3hCC 3.3 典型指令说明16、乘指令、乘指令MPY T寄存器内容和被寻址数据存储器单元的内容相
42、乘,其结寄存器内容和被寻址数据存储器单元的内容相乘,其结果转入果转入P寄存器中。若使用短立即数寻址,则寄存器中。若使用短立即数寻址,则T寄存器和带寄存器和带符号的符号的13位常数相乘,无论位常数相乘,无论SXM为何值,短立即数总是靠为何值,短立即数总是靠右对齐并在相乘之前进行符号扩展。右对齐并在相乘之前进行符号扩展。举例:举例:(1)MPY 5;(DP=4:0200h027Fh)将数据存储单元将数据存储单元0205h的内容和的内容和;TREG中的内容相乘,结果保存在中的内容相乘,结果保存在PREG执行前执行后数据存储器205h7h数据存储器205h7hTREG6hTREG6hPREG36hPR
43、EG2Ah 3.3 典型指令说明16、乘指令、乘指令MPY(2)MPY*, AR2 ;(ARP=1,AR1=040Dh)将数据存储器单元将数据存储器单元040Dh的内容和的内容和;TREG中的内容相乘,结果保存在中的内容相乘,结果保存在PREG(3)MPY#031h;立即数立即数0031h和和TREG中的内容相乘,结果保存在中的内容相乘,结果保存在PREG执行前执行后TREG2hTREG2hPREG31hPREG62h执行前执行后ARP1ARP2AR140DhAR140Dh数据存储器40Dh7h数据存储器40Dh7hTREG6hTREG6hPREG36hPREG2Ah 3.3 典型指令说明17
44、、重复执行下一条指令、重复执行下一条指令RPT 若使用直接或间接寻址,则被寻址的数据存储器单元若使用直接或间接寻址,则被寻址的数据存储器单元中的值送入重复计数器中的值送入重复计数器RPTC;使用短立即数寻址,则使用短立即数寻址,则8位立即数送入位立即数送入RPTC。紧接紧接RPT后的那条指令被执行后的那条指令被执行n次,次,n为为RPTC初值加初值加1。由于在上下文切换时不能保存由于在上下文切换时不能保存RPTC的值,所以重复循的值,所以重复循环被认为是多周期指令,不能被中断。环被认为是多周期指令,不能被中断。举例:举例:RPT#20;执行执行NOP指令指令21次次NOP 3.3 典型指令说明
45、18、移位并存储累加器高位指令、移位并存储累加器高位指令SACH 该指令将整个累加器复制到输出移位寄存器中,然后全部该指令将整个累加器复制到输出移位寄存器中,然后全部32位数左移位数左移07位,再将移位后数值的高位,再将移位后数值的高16位复制到数据位复制到数据存储器、在移位时,低位填存储器、在移位时,低位填0,高位丢失,累加器内容不,高位丢失,累加器内容不变。变。举例:举例:(1)SACH10, 1;(DP=4:00200h0027Fh)将将ACC左移左移1位,高位,高16;位存至数据存储单元位存至数据存储单元020Ah执行前执行后ACCx4208001hACCx4208001hCC数据存储
46、器20Ah0h数据存储器20Ah0841h 3.3 典型指令说明18、移位并存储累加器高位指令、移位并存储累加器高位指令SACH(2)SACH*+, AR2 ;(ARP=1)将将ACC高高16位存至位存至AR1指向的指向的;数据存储单元数据存储单元执行前执行后ARP1ARP2AR1300hAR1301hACCx4208001hACCx4208001hCC数据存储器300h0h数据存储器300h0420h 3.3 典型指令说明19、移位并存储累加器低位指令、移位并存储累加器低位指令SACL 该指令将整个累加器复制到输出移位寄存器中,然后全部该指令将整个累加器复制到输出移位寄存器中,然后全部32位
47、数左移位数左移07位,再将移位后数值的低位,再将移位后数值的低16位复制到数据位复制到数据存储器、在移位时,低位填存储器、在移位时,低位填0,高位丢失,累加器内容不,高位丢失,累加器内容不变。变。举例:举例:(1)SACL10, 1;(DP=4:00200h0027Fh)将将ACC左移左移1位,低位,低16;位存至数据存储单元位存至数据存储单元020Ah执行前执行后ACCx4208001hACCx4208001hCC数据存储器20Ah0h数据存储器20Ah0002h 3.3 典型指令说明19、移位并存储累加器低位指令、移位并存储累加器低位指令SACL(2)SACL*, AR2 ;(ARP=1)
48、将将ACC低低16位存至位存至AR1指向的数据存指向的数据存;储单元储单元执行前执行后ARP1ARP2AR1300hAR1300hACCx4208001hACCx4208001hCC数据存储器300h0h数据存储器300h8001h 3.3 典型指令说明20、存储辅助寄存器指令、存储辅助寄存器指令SAR 该指令将指定辅助寄存器该指令将指定辅助寄存器ARx内容存入指定的数内容存入指定的数据存储器单元,在间接寻址方式中,当据存储器单元,在间接寻址方式中,当SAR指令指令同时也要对当前同时也要对当前AR内容进行修改时,内容进行修改时,SAR将在增、将在增、减辅助寄存器内容前将辅助寄存器值存至数据存减
49、辅助寄存器内容前将辅助寄存器值存至数据存储器。储器。 3.3 典型指令说明20、存储辅助寄存器指令、存储辅助寄存器指令SAR举例:举例:(1)SAR AR0, 30h;(DP=6:0300h037Fh)将将AR0的值存至数据存储的值存至数据存储;单元单元0330h(2)SAR AR0, *+执行前执行后AR037hAR037h数据存储器330h18h数据存储器330h37h执行前执行后ARP0ARP0AR0401hAR0402h数据存储器401h18h数据存储器401h401h 3.3 典型指令说明21、从当前、从当前AR中减去立即数指令中减去立即数指令SBRK 该指令从指定辅助寄存器中减去该指令从指定辅助寄存器中减去8位立即数值,其结果替换位立即数值,其结果替换原有的原有的AR中的内容。减去在辅助寄存器算术单元中的内容。减去在辅助寄存器算术单元(ARAU)中进行,立即数值被作为中进行,立即数值被作为8位正数处理。因此,辅助寄存位正数处理。因此,辅助寄存器的算术运算都是无符号的。器的算术运算都是无符号的。举例:举例:SBRK#0FFh执行前执行后ARP7AR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司每月生日会策划方案
- 2025年职业教育与成人继续教育专业能力考核试题及答案
- 2025年医学影像技术考试试卷及答案
- 2025年社会保障与就业考试题及答案
- 畜禽粪污资源化技术-洞察及研究
- 2025年教育信息化与学习平台构建考试试卷及答案
- 2025年环境工程师资格考试试卷及答案
- 2025年广告与传播专业考试试题及答案
- 2024年度浙江省二级造价工程师之建设工程造价管理基础知识提升训练试卷B卷附答案
- 2024年度浙江省二级注册建筑师之法律法规经济与施工题库附答案(基础题)
- (完整版)传热学期末考试试题
- JCT587-2012 玻璃纤维缠绕增强热固性树脂耐腐蚀立式贮罐
- Python数据分析与数据挖掘 课件 第6、7章 Pandas基础与应用、Matplotlib
- 玻璃体手术并发症的预防及处理
- 2023年医学高级职称-中医肛肠(医学高级)考试历年高频考点试题含答案
- 爬架拆除技术交底
- pergeos软件教程评价许可介绍
- 密封条范文模板(A4打印版)
- 出租车 专业部分考核试题 城市客运企业主要负责人和安全生产管理人员安全考核基础题库
- GB/T 9634.3-2002铁氧体磁心表面缺陷极限导则第3部分:ETD和E形磁心
- GB/T 8478-2008铝合金门窗
评论
0/150
提交评论