TMS320C24X寻址方式和指令系统课件_第1页
TMS320C24X寻址方式和指令系统课件_第2页
TMS320C24X寻址方式和指令系统课件_第3页
TMS320C24X寻址方式和指令系统课件_第4页
TMS320C24X寻址方式和指令系统课件_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

第3章

TMS320C24X寻址方式和指令系统第3章

TMS320C24X寻址方式和指令系统1

F240X系列DSP芯片采用与TMS320C240相同的核,所以两者的指令系统是相同的。F240X系列DSP芯片采用与TMS320C240相同的核23.1寻址方式F240X指令集采用3种基本的存储器寻址方式:立即寻址方式;直接寻址方式;间接寻址方式。3.1寻址方式F240X指令集采用3种基本的存储器寻址方式33.1.1立即寻址方式指令中所需的常数作为指令的操作数直接给出。立即寻址包括:短立即寻址和长立即寻址。短立即寻址指令:有一个8、9、13位的常数作操作数。短立即寻址指令为一个单指令字,并将常数嵌在该指令中。长立即寻址指令:有一个16位的常数作操作数,所以要求两个指令字。16位常数作为第二条指令发送,常数可以是一个绝对常数也可以是一个二进制补码。3.1.1立即寻址方式指令中所需的常数作为指令的操作数直接4

采用短立即寻址的RPT指令RPT#49;将紧跟RPT指令后的那条指令执行50次。指令寄存器中的内容:10111011001100011514131211109876543210采用立即寻址的RPT代码8位常数=49

立即操作数作为RPT指令字的一部分。立即操作数以符号#为前缀。采用短立即寻址的RPT指令RPT#49;将紧跟R5长立即寻址的ADD指令ADD#65534,2;将数据65534左移两位后,再将结果加至累加器。第一条指令字:10111111100100101514131211109876543210采用长立即寻址的ADD代码Shift=2

第二条指令字:1111111111111110151413121110987654321016位常数=65534=FFFEh立即操作数包含在第二条指令字中,指令寄存器顺次接收两个指令字的16位值。长立即寻址的ADD指令ADD#65534,63.1.2直接寻址方式

在直接寻址方式中,指令寄存器的内容为:位15-8: 用于指示指令类型(例如,ADD)和指令所访问的数据值的移位信息。位7: 直接/间接指示符。 0表示为直接寻址; 1表示为间接寻址。位6-0: 指示该指令所访问的数据存储器地址的偏移量。3.1.2直接寻址方式在直接寻址方式中,指令寄存器的内容71.用直接寻址方式产生数据地址处理器将页指针DP值:提供地址的9位高有效位,即页码数。指令寄存器中的7位最低有效位:提供地址的7位最低有效值,即偏移量。16位地址1.用直接寻址方式产生数据地址处理器将页指针DP值:提供地8

TI公司的TMS320系列芯片将64K的数据存储器分为512页,每页128字称为数据页。当前数据页由状态寄存器ST0中的9位数据页指针(DP)值决定。DP值偏移量数据存储器0000000000000000..1111111第0页:0000h-007Fh0000000010000000..1111111第1页:0080h-00FFh0000000100000000..1111111第2页:0100h-017Fh........1111111110000000..1111111第511页:FF80h-FFFFhTI公司的TMS320系列芯片将64K的数据存储器分为5192.使用直接寻址方式

处理器用页指针DP来寻找数据页,用指令寄存器的低7位有效位来寻址该页上的特定地址。(1)设置数据页:将数据页(0-511)装入DP。DP可由LDP指令装载,也可由向ST0装载的任何指令来装载DP。LDP指令直接装载DP,并且不影响ST0的其它位。例:LDP #32;设置当前数据页为32(1000h-107Fh)注意:在任何程序中都要初始化DP。因为上电后不定义DP;复位不初始化DP。2.使用直接寻址方式处理器用页指针DP来寻找数据页,用指10(2)指明偏移量:7位偏移量由指令的操作数提供。例:如果希望ADD指令取当前数据页的第5个地址处的数据:ADD 5H;将当前数据页中偏移量为5h处的数据加至累加器说明采用直接寻址时,不必每条指令前都要设置数据页。总之,必须保证要访问新的数据页之前改变DP。(2)指明偏移量:7位偏移量由指令的操作数提供。例:说明113.直接寻址示例

采用直接寻址的ADD指令(移位0至15位)LDP #4 ;数据页设为4(0200h-027Fh)ADD 9H,5 ;将数据地址0209h处的内容左移5位后加至累加器采用直接寻址的ADDC指令LDP #500 ;数据页设为500(FA00h-FA7Fh)ADDC8H ;数据地址FA08h处内容和进位值(C)被加至累加器3.直接寻址示例采用直接寻址的ADD指令(移位0至15位123.1.3间接寻址方式

8个辅助寄存器(AR0-AR7)为处理器提供间接寻址的16位地址,可以访问64K数据存储器空间的任意单元。3.1.3间接寻址方式8个辅助寄存器(AR0-AR7)13间接寻址操作码格式:指令寄存器的内容位15-8: 指示指令类型(例如,ADD)和指令所访问的数据值的移位信息位7: 直接/间接指示符。 0表示为直接寻址; 1表示为间接寻址。位6-4: 辅助寄存器更新代码ARU,决定当前辅助寄存器是否以及如何进行增或减。位3: 下一个辅助寄存器指示符N,说明指令是否改变ARP值。 N=0,ARP内容保持不变; N=1,下一个辅助寄存器NAR的内容装入ARP。位2-0: 下一个辅助寄存器的值,包括下一个辅助寄存器的值。若N=1,则NAR被装入ARP。

间接寻址操作码格式:指令寄存器的内容位15-8: 指示指令142.当前辅助寄存器

通过状态寄存器ST0中的3位辅助寄存器指针(ARP)来指定8个辅助寄存器(AR0~AR7)的某一个作为当前辅助寄存器(AR)。在执行指令的过程中,当前AR的内容作为被访问数据存储器的地址。ARP可由MAR指令、LST指令或任何支持间接寻址的指令来装载。2.当前辅助寄存器通过状态寄存器ST0中的3位辅助寄存器153.间接寻址选项

TMS320C24X提供4种间接寻址选项:不增不减;增1或减1;增加或减去索引量;增加或减去索引量且反向进位。3.间接寻址选项TMS320C24X提供4种间接寻址选项16选项操作数例子不增不减*LACC*用当前AR所指的数据存储器地址中内容装载累加器增1*+LACC*+用当前AR所指的数据存储器地址中内容装载累加器,然后向当前AR内容加1减1*-LACC*-用当前AR所指的数据存储器地址中内容装载累加器,然后从当前AR内容减1加上索引量*0+LACC*0+用当前AR所指的数据存储器地址中内容装载累加器,然后向当前AR内容加上AR0的内容减去索引量*0-LACC*0-用当前AR所指的数据存储器地址中内容装载累加器,然后从当前AR的内容减去AR0的内容加上索引量,反向进位*BRO+LACC*BRO+用当前AR所指的数据存储器地址中内容装载累加器,然后向当前AR内容加上AR0的内,该加法采用反向进位传送减去索引量,反向进位*BRO-LACC*BRO+用当前AR所指的数据存储器地址中内容装载累加器,然后从当前AR内容减去AR0的内容,该减法采用反向进位传送选项操作数例子不增不减*LACC*用当前174.修改辅助寄存器内容

用于修改辅助寄存器(AR)内容的特定指令有:LAR、ADRK、SBRK和MAR。LAR指令装载AR;ADRK和SUBRK分别用来从AR中加上或减去一个立即数;MAR指令可使AR值增加/减少1或增加/减少一个索引量。另外任何支持间接寻址操作数的指令都可修改辅助寄存器。4.修改辅助寄存器内容用于修改辅助寄存器(AR)内容的特185.辅助寄存器

除了更新当前辅助寄存器的内容以外,某些指令还可以指明下一个辅助寄存器AR。当本条指令执行完之后,下一个辅助寄存器AR便成为当前辅助寄存器AR。例:选择新的当前辅助寄存器ARMAR *,AR1 ;将当前辅助寄存器AR设为AR1LACL*+,AR2 ;用辅助寄存器AR1所指向的地址中内容装载累加器的低16位,AR1内容加1,使AR2为当前辅助寄存器ARSACL *+ ;将累加器的低16位存于AR2所指向的地址单元,AR2内容加1。5.辅助寄存器除了更新当前辅助寄存器的内容以外,某些指193.2指令集

根据指令的功能划分为:累加器、算数和逻辑指令表;辅助寄存器和数据页指针指令表;TREG、PREG和乘法指令表;转移指令表;控制指令表;I/O和存储器指令表。3.2指令集根据指令的功能划分为:累加器、算数和逻辑20指令表符号的意义

ACC 累加器。AR 当前辅助寄存器。ARX 用于LAR和SAR指令的3位数据值,指定操作的辅助寄存器。BITX 4位数值,用于指定数据存储器中的哪一位将被BIT指令所测试。指令表符号的意义ACC 累加器。21CM 2位数值,CMPR指令执行CM值所声明的比较: 若CM=00,测试:(当前AR)=(AR0)?; 若CM=01,测试:(当前AR)<(AR0)?; 若CM=10,测试:(当前AR)>(AR0)?; 若CM=11,测试:(当前AR)≠(AR0)?。Shift 4位移位值。TP 用于条件执行指令的2位数值,代表如下4种条件: 若BIO引脚为低,则TP=00; 若TC位=1, 则TP=01; 若TC位=0, 则TP=10; 若无条件, 则TP=11。CM 2位数值,CMPR指令执行CM值所声明的比较:22说明表中指令按字母顺序排列;表中给出了执行每条指令所需要的周期数;所有指令都假设从内部程序存储器和内部数据存储器中执行;指令的周期数适用于单指令执行,不适用于重复方式。说明表中指令按字母顺序排列;233.3典型指令说明申明直接寻址时一律认为DP指针已经指向要寻址的数据区,就不用再重新装载DP;而间接寻址时则认为ARP已经指到当前辅助寄存器AR,而也不用再单独声明当前AR的值。3.3典型指令说明申明24ADD指令

对累加器的加操作指令ADD:将数据存储器单元的数或立即数左移后加至累加器。结果存在累加器中。移位时,低位填0,高位在SXM=1时为符号扩展,在SXM=0时填0。寻址短立即数时,加操作不受SXM的影响,且不能重复执行。ADD指令对累加器的加操作指令ADD:将数据存储器单元的数25ADD 5,2 ;(DP=4:200-27Fh)将数据存储器单元0205h的内容左移2位之后与ACC相加,结果存在ACCADD *+,2,AR0 ;(ARP=4,AR4=282)将数据存储器单元282的内容左移2位之后加至ACC,结果存在ACC,指令执行后AR4=283,ARP=0ADD #2 ;短立即数2与ACC相加,结果存在ACCADD #1111h,2 ;长立即数1111h左移2位后与ACC相加,结果存在ACCADD 5,2 ;(DP=4:200-27Fh)将数据262.AND指令和累加器逻辑“与”操作指令AND:实现被寻址单元的内容和累加器的逻辑“与”操作,以及长立即数经过移位之后和连接器进行逻辑“与”操作。逻辑“与”操作之后的结果保存在累加器中。2.AND指令和累加器逻辑“与”操作指令AND:实现被寻27AND 16 ;(DP=4:200-27Fh)将数据存储器单元0210h的内容与ACC的内容进行逻辑“与”操作,结果保留在ACC中。AND * ;(ARP=0,AR0=301h)将数据存储器单元0301h的内容与ACC的内容进行逻辑“与”操作,结果保留在ACC中。AND #00FFh,4 ;将立即数#0FFh左移4位之后和ACC逻辑“与”,结果保留在ACC中。AND 16 ;(DP=4:200-27Fh)将数283.BANZ指令辅助寄存器不等于零转移指令BANZ:若当前辅助寄存器内容不为零,则控制转移至指定的程序存储器地址,否则控制转移到下一条指令。当前AR的缺省修改为减1。该指令可用来实现程序的循环执行。3.BANZ指令辅助寄存器不等于零转移指令BANZ:若当前29

MAR *,AR0 ;ARP指向AR0。

LAR AR1,#3 ;AR1中装入3。

LAR AR0,#60h ;AR0中装入60h。P1ADD *+,AR1 ;将AR0所指的数加到ACC,并将AR0的值增1,ARP指向AR1。

BANZ P1,AR0 ;若AR1≠0则循环。 MAR *,AR0 ;ARP指向AR0。30BCND指令条件转移指令BCND:当所规定的条件符合时,控制转移到指定的程序存储器地址。BCND P1,LEQ ;若ACC的内容小于等于零时,程序转到P1处开始执行。BCND指令条件转移指令BCND:当所规定的条件符合时,控制315.BIT指令位测试指令BIT:将数据存储器中的指定位的值复制到状态寄存器ST1的TC位。将该指令和BCND指令结合可判断指定位的状态,并根据该位的状态来控制程序的转移。BIT 0h,15 ;(DP=6)测试300h处的最低有效位。BCND P1,TC ;若该位为1,则程序转到P1处执行。5.BIT指令位测试指令BIT:将数据存储器中的指定位的32BLDD指令数据存储器至数据存储器间的块传送BLDD:把指定的数据存储器源地址中的字拷贝到指定的数据存储单元目的地址中。源地址和目的地址可由长立即数地址或数据存储器地址指定。注意:如果源地址为长立即数,则目的地址只能为直接或间接;如果源地址为直接或间接,则目的地址只能为长立即数。BLDD指令数据存储器至数据存储器间的块传送BLDD:把指33说明该指令不能用于存储器映射的寄存器。使用RPT指令重复BLDD操作期间中断被禁止。当BLDD指令重复使用时,由长立即数指定的源(目的)地址保存在PC中,每次重复过程中PC增1,从而可以访问一串源(目的)地址。若使用间接寻址方式来指定目的(源)地址,则在每次重复过程中,可以访问一个新目的(源)地址。若使用直接寻址方式,所指定的源(目的)地址是个常数,在重复过程中不会被修改。说明该指令不能用于存储器映射的寄存器。34BLDD#300h,20h ;(DP=6:300h-37Fh)将数据存储器单元300h的内容复制到数据存储器320h。BLDD*+,#321h,AR3 ;执行前:ARP=2,(AR2)=301h,(301h)=01h,(321h)=0Fh执行后:ARP=3,(AR2)=302h,(301h)=01h,(321h)=01hBLDD#300h,20h ;(DP=6:300h-3735CLRC指令清除控制位指令CLRC:指定的控制位清除为0。指定的控制位为:C 状态寄存器ST1的进位位CNF 状态寄存器ST1的RAM配置控制位INTM 状态寄存器ST0的中断方式位OVM 状态寄存器ST0的溢出方式位SXM 状态寄存器ST1的符号扩展方式位TC 状态寄存器ST1的测试/控制标志位XF 状态寄存器ST1的XF引脚状态位CLRC指令清除控制位指令CLRC:指定的控制位清除为0。36CLRC TC ;将ST1的TC位清零。注:用LST指令也可装入ST0和ST1寄存器。CLRC TC ;将ST1的TC位清零。注:用LST指令也37IN指令从端口输入数据指令IN:从一个I/O单元读一个16位值到指定的数据存储器单元。IN #7,1000h ;(DP=6)从端口地址为1000h的外设读数据,并将数据存于数据存储器单元307h。IN *,5h ;从端口地址为0005h的外设读数据,并将数据存至当前辅助寄存器所指定的数据存储器单元中。IN指令从端口输入数据指令IN:从一个I/O单元读一个16位38LACC指令装载累加器指令LACC:将指定的数据存储器单元的内容或一个16位常量左移后送入累加器。移位时,低位填0,高位在SXM=1时为符号扩展,在SXM=0时填0。LACC 5,4 ;(DP=8:400-47fh)将数据存储器单元0405h的内容左移4位之后送到ACC。LACC *,4 ;(ARP=2,AR2=305h)将数据存储器单元0305h的内容左移4位之后送到ACC。LACC #1234h,2 ;将长立即数1234h左移2位之后送到ACC。LACC指令装载累加器指令LACC:将指定的数据存储器单元的39LACL指令装载累加器低位并清零累加器高位指令LACL:将被寻址数据存储器单元的内容或者被零扩展的8位常量装入累加器的低16位,累加器的高半部分填零。注意数据被作为无符号的16位数来处理,而非二进制补码。无论SXM为何状态,该指令的操作数抑制符号扩展。LACL指令装载累加器低位并清零累加器高位指令LACL:将被40LACL #10h ;将10h装载入ACC。LACL 1 ;(DP=6:300h-37Fh)将数据存储器单元301h的内容装载入ACCLACL *-,AR4 ;(ARP=0,AR0=301h,(301h)=2)将数据存储器单元301h的内容装载入ACC,指令执行完后AR0=0300h,ARP=4。LACL #10h ;将10h装载入ACC。41MAR指令和LAR指令修改辅助寄存器指令MAR:修改辅助寄存器ARP的值,该指令在直接寻址方式下相当于NOP指令。装载辅助寄存器指令LAR:将数据存储器的值装载入辅助寄存器。LAR和SAR指令可在子程序调用或中断处理时装载和存储辅助寄存器,从而实现在中断或子程序调用时上下文的保存。MAR指令和LAR指令修改辅助寄存器指令MAR:修改辅助寄存42MAR *,AR1 ;指定当前辅助寄存器为AR1。MAR *+,AR5 ;将当前辅助寄存器(AR1)增1,并向ARP装入5。LAR AR1,5H ;(DP=4:0200h-027fh)将数据存储器地址0205h的内容装入AR1寄存器。LAR AR1,#50H ;将短立即数0050h装入AR1寄存器。LAR AR1,#1234H ;将长立即数1234h装入AR1寄存器。MAR *,AR1 ;指定当前辅助寄存器为AR1。43LDP指令装载数据页指针指令LDP:将被寻址数据存储器单元的9位最低有效位或9位立即数转入状态寄存器ST0的数据页指针DP。LDP 5 ;(DP=5:地址0280h-02FFh)。DP也可由LST指令装入。LDP指令装载数据页指针指令LDP:将被寻址数据存储器单元的44LST指令装载状态寄存器指令LST:将被寻址数据存储器单元中的值装入指定的状态寄存器(ST0或ST1)。MAR *,AR0LST #0,*,AR1 ;将辅助寄存器AR0所寻址的数据存储器单元内容送入状态寄存器ST0,但不包括INTM位。尽管指定了下一个ARP值,但该值被忽略,ARP不送入ARB。LST #1,0h ;(DP=6:300h-37Fh)将数据存储器单元300h的内容装入ST1。LST指令用于子程序调用和中断后恢复状态寄存器。LST指令装载状态寄存器指令LST:将被寻址数据存储器单元45注意(1)LST#0操作向ARP装入新值,但并不影响ST1寄存器中的ARB字段。(2)LST#1操作中,送入ARB的值也被送入ARP。(3)若在间接寻址方式下用一个操作数来指定下一个AR值,则该操作数将被忽略,与之替代的是将被寻址数据存储器单元所含的3位最高有效位送入ARP。(4)状态寄存器中的保留位读出总为1。写这些位不起作用。注意(1)LST#0操作向ARP装入新值,但并不影响ST46LTD指令装载TREG寄存器指令LTD:将数据寄存单元的内容加载到TREG。按PM状态位指定的方式对乘积寄存器的内容进行移位,并把移位后的值与ACC相加,结果放在ACC中。指定的数据存储单元的内容拷贝到地址加1的数据存储单元。LTD指令装载TREG寄存器指令LTD:将数据寄存单元的内容47LTD 123 ;(DP=5:0280-02FFh,PM=0:乘积不移位)执行前:(2FBh)=0022h,(2FCh)=0000h,(TREG)=0003h,(PREG)=000Fh,(ACC)=0005h。执行后:(2FBh)=0022h,(2FCh)=0022h,(TREG)=0022h,(PREG)=000Fh,(ACC)=14h。LTD *,AR3 ;(PM=0)执行前:ARP=1,(AR1)=02FBh,(2FBh)=0022h,(2FCh)=0000h,(TREG)=0003h,(PREG)=000Fh,(ACC)=0005h。执行后:ARP=3,(AR1)=02FBh,(2FBh)=0022h,(2FCh)=0022h,(TREG)=0022h,(PREG)=000Fh,(ACC)=0014h。LTD 123 ;(DP=5:0280-02FFh,PM=48注意数据传送功能可通过连续存储块的边界;该指令移动数据的功能不能用于外部数据寄存器或存储器映射的寄存器;若LTD被用于外部数据存储器,则功能与LTA相同。注意数据传送功能可通过连续存储块的边界;4915.MACD指令乘且累加并带数据移动指令MACD:可以完成以下功能:(1)按PM状态位指定的方式把先前的乘积移位,再与ACC的内容相加;(2)把指定的数据存储单元的内容加载到TREG;(3)将存放在TREG寄存器中的数据存储单元值乘以指定的程序存储器地址中的内容;(4)将指定的数据存储器地址中的内容复制到下一个数据存储器。15.MACD指令乘且累加并带数据移动指令MACD:可以完50MACD 0FF00h,08h ;(DP=6:0300h-037Fh;PM=0;CNF=1:B0配置为程序存储器)执行前:数据存储器(308h)=23h,(309h)=18h,程序存储器(FF00h)=4h,(TREG)=45H,(PREG)=458972h,(ACC)=723EC41h。执行后:数据存储器(308h)=23h,(309h)=23h,程序存储器(FF00h)=4h,(TREG)=23H,(PREG)=8Ch,(ACC)=76975B3h。MACD 0FF00h,08h ;(DP=6:0300h-051说明当重复MAC指令时,每重复一次包含在PC中的程序存储器地址加1。若使用间接寻址指定数据存储器地址则每次重复时就可以访问新的数据存储器地址;若使用直接寻址方式指定的数据存储器地址是常数,重复时不会对其进行修改。若MACD寻址存储器映象寄存器或外部存储器作为数据存储器单元,则MACD功能与MAC相同,数据移动不会发生。说明当重复MAC指令时,每重复一次包含在PC中的程序存储器地52MPY指令乘指令MPY:T寄存器内容和被寻址数据存储器单元的内容相乘,其结果转入P寄存器中。若使用短立即数寻址,则T寄存器和带符号的13位常数相乘;无论SXM为何值,短立即数总是靠右对齐并在相乘之前进行符号扩展。MPY指令乘指令MPY:T寄存器内容和被寻址数据存储器单元53MPY 5 ;(DP=4:0200h-027Fh)将数据存储器单元205h的内容和TREG寄存器中的内容相乘,结果保存在PREG中。MPY *,AR2 ;(ARP=1,AR1=40Dh)将数据存储器单元40Dh的内容和TREG寄存器中的内容相乘,结果保留在PREG中,指令执行完后ARP=2MPY #031h ;立即数0031h和TREG寄存器中的内容相乘,结果保存在PREG中。MPY 5 ;(DP=4:0200h-027Fh)将数54RPT指令重复执行下一条指令RPT:紧接RPT后的那条指令被执行n次,n为RPTC初值加1。若使用直接或间接寻址,则被寻址的数据存储器单元中的值送入重复计数器(RPTC);若使用短立即数寻址,则8位立即数送入RPTC。RPT #20 ;执行NOP指令21次。NOPRPT指令重复执行下一条指令RPT:紧接RPT后的那条指令被55说明在上下文切换时不能保存RPTC的值,所以重复循环被认为是多周期指令,它不能被中断。器件复位时,RPTC被清零。说明在上下文切换时不能保存RPTC的值,所以重复循环被认为是56SACH指令移位并存储累加器高位指令SACH:将整个累加器复制到输出移位寄存器中,然后全部32位数左移0~7位,再将移位后数值的高16位复制到数据存储器。在移位时,低位填零,高位丢失,累加器内容不变。SACH指令移位并存储累加器高位指令SACH:将整个累加器复57SACH 10,1 ;(DP=4:0200h-027Fh)将ACC的左移1位,高16位存至数据存储器单元020Ah中。SACH *+,AR2 ;(ARP=1)将ACC的高16位存至AR1指向的数据存储器单元,操作完成之后ARP=2。SACH 10,1 ;(DP=4:0200h-027Fh)58SACL指令移位并存储累加器低位指令SACL:将整个累加器复制到输出移位寄存器中,然后全部32位数左移0~7位,再将移位后数值的低16位复制到数据存储器。在移位时,低位填零,高位丢失,累加器内容不变。SACL指令移位并存储累加器低位指令SACL:将整个累加器复59SACL 10,1 ;(DP=4:0200h-027Fh)将ACC的左移1位,低16位存至数据存储器单元020Ah中。SACH *+,AR2 ;(ARP=1)将ACC的高16位存至AR1指向的数据存储器单元,操作完成之后ARP=2。SACL 10,1 ;(DP=4:0200h-027Fh)60SAR指令存储辅助寄存器指令SAR:将指定的辅助寄存器(ARx)内容存入被寻址数据存储器单元。注意在间接寻址方式中,SAR指令同时也要对当前辅助寄存器内容进行修改时,SAR将在增、减辅助寄存器内容前将辅助寄存器值存至数据存储器。SAR指令存储辅助寄存器指令SAR:将指定的辅助寄存器(AR61SAR AR0,30h ;(DP=6:0300h-037Fh)将AR0的值存至数据存储器单元0330h中。SAR AR0,*+;将AR0的值存入其指向的数据存储器单元,同时AR0的值增1。执行前:ARP=0,AR0=0400h,(0400h)=0000h执行后:ARP=0,AR0=0401h,(0400h)=0400hSAR AR0,30h ;(DP=6:030062SBRK指令从当前辅助寄存器中减去立即数指令SBRK:从指定的辅助寄存器中减去8位立即数值,其结果替换原有的辅助寄存器中的内容。减法在辅助寄存器算术单元(ARAU)中进行,立即数值作为8位正数处理。所有辅助寄存器的算术运算都是无符号的。SBRK #20h

;指令执行前:ARP=5,AR5=0050h, ;

温馨提示

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

评论

0/150

提交评论