收藏 分享(赏)

3 DSP原理与应用教案 指令系统new.doc

上传人:dreamzhangning 文档编号:2329106 上传时间:2018-09-10 格式:DOC 页数:79 大小:2.17MB
下载 相关 举报
3 DSP原理与应用教案 指令系统new.doc_第1页
第1页 / 共79页
3 DSP原理与应用教案 指令系统new.doc_第2页
第2页 / 共79页
3 DSP原理与应用教案 指令系统new.doc_第3页
第3页 / 共79页
3 DSP原理与应用教案 指令系统new.doc_第4页
第4页 / 共79页
3 DSP原理与应用教案 指令系统new.doc_第5页
第5页 / 共79页
点击查看更多>>
资源描述

1、 DSP 原理与应用教案(3)教学课时:6 学时三、TMS320LF240x 寻址方式和指令系统3.1 寻址方式TMS320LF240x 指令集采用 3 种基本的存储器寻址方式:立即寻址方式、直接寻址方式和间接寻址方式。在立即寻址方式中,指令中所需要的常数作为指令的操作数直接给出。立即寻址方式包括短立即寻址和长立即寻址。在短立即寻址中,指令字包含一个 8 位、9 位或 13 位的操作数,而长立即寻址采用16 位的操作数。当需要访问数据存储器时,用户可采用直接或间接寻址方式。直接寻址方式将指令字的 7 位与数据存储器页指针(DP)的 9 位连接起来,形成16 位数据存储器地址。间接寻址通过 8

2、个 16 位辅助寄存器访问数据存储器。3.1.1 立即寻址方式在立即寻址方式中,指令字中包含指令所需的一个常数。对于短立即寻址,采用短立即寻址的指令将一个 8 位、9 位或 13 位的常数作为操作数。短立即寻址指令为一个单指令字,并且有一个常数嵌在该指令中。长立即寻址的指令将一个 16 位常数作为操作数,从而需要两条指令字。该常数作为第 2 条指令字被发送,该 16 位值可以是绝对常数或二进制补码。如 1:RPT #49 ;将紧跟 RPT 指令后的那条指令执行 50 次。代码是:10111011 00110001 ;前面是 RPT 指令代码,后面是 8 位常数=49。如 2:ADD #6553

3、4,2 ;将数据 65534 左移两位后,再将结果加到累加器。代码是:101111111001 0010 ;前面 12 位是立即寻址的 ADD 代码,后面是移位数。11111111 11111110 ;是 16 位常数=65534=FFFEh。3.1.2 直接寻址方式在直接寻址方式中,数据存储器地址以 128 为单位被分成若干块,这些块被称为数据页。64K 的数据存储器总共包含 512 个数据页,标号为 0511,如下表 3-1 所列。当前数据页由状态寄存器 ST0 中的 9 位数据页指针(DP)值决定。除数据页之外,处理器还必须知道该页上被访问的特定单元,这取决于 7 位偏移量,见表 3-1

4、。偏移量由指令寄存器的 7 位最低有效位提供,指令寄存器中包含将被执行的下一条指令。在直接寻址方式中,指令寄存器的内容为:位 158 用于指示指令类型(例如 ADD)和指令所访问的数据值的移位信息。位 7 直接/间接指示符。0 表示直接寻址,1 表示间接寻址。位 60 指示该指令所访问的数据存储器地址的偏移量。为了得到一个 16 位地址,处理器将页指针 DP 值和指令寄存器中的 7 位最低有效位连接起来,即页指针 DP 提供地址的 9 位高有效位,即页码数;指令寄存器中的 7 位最低有效位提供地址的 7 位最低有效位,即偏移量。例如:为访问数据地址 0050h,用户须指定 DP=0 0000

5、0000 和偏移量为 101 0000,这样将得到 16 位地址 0000 0000 0101 0000 即 0050h。因此,用户必须注意,在程序中初始化 DP。表 3-1 数据存储器页DP 值 偏移量 数据存储器0000 00000000 0000|111 1111第 0 页:0000h007Fh0000 00001000 0000|111 1111第 1 页:0080h00FFh0000 00010000 0000|111 1111第 2 页:0100h017Fh| | |1111 11111000 0000|111 1111第 511 页:FF80hFFFFh1、使用直接寻址方式使用直

6、接寻址方式时,处理器用页指针(DP)来寻找数据页,用指令寄存器的低7 位有效位来寻址该页上的特定地址。通常做法是:(1)设置数据页将合适的值(0511 )装入 DP。DP 可由 LDP 指令装载,也可由向 ST0 装载的任何指令来装载。LDP 指令直接装载 DP,并且不影响 ST0 的其他位。如:LDP #32 ;设置当前数据页为 32(1000h107Fh) 。(2)指明偏移量7 位偏移量由指令的操作数提供。例如,如果希望 ADD 指令取当前数据页的第 5个地址处的数据,则应使用如下指令:ADD 5h ;将当前数据页中偏移量为 5h 处的数据加到累加器。采用直接寻址时,不必每条指令前都要设置

7、数据页。如果一段代码的所有直接寻址指令都访问同一个数据页,则只需在该段代码的最前面装载一次 DP 值。总之,必须保证在访问新数据页之前改变 DP。2、直接寻址示例例 1、采用直接寻址的 ADD 指令(移位 015 位)LDP #4 ;数据页设为 4(0200h027Fh)ADD 9h,5 ;将数据地址 0209h 处的内容左移 5 位后加到累加器。例 2、采用直接寻址的 ADDC 指令LDP #500 ;数据页设为 500(FA00hFA7Fh)ADDC 8h ;数据地址 FA08h 处的内容和进位值( C)被加到累加器。3.1.3 间接寻址方式8 个辅助寄存器(AR0AR7)为处理器提供了强

8、大而灵活的寻址能力,提供间接寻址的 16 位地址,可以访问 64K 数据存储器空间的任意单元。1、当前辅助寄存器通过向状态寄存器 ST0 中的 3 位辅助寄存器指针(ARP)装入 07,可选择特定的辅助寄存器。ARP 可由 MAR 指令、LST 指令或任何支持间接寻址的指令来装载。辅助寄存器指针 ARP 所指的寄存器作为当前辅助寄存器(或简称为当前 AR) 。执行指令过程中,当前 AR 的内容用做被访问的数据存储器地址。2、间接寻址选项TMS320LF240x 提供 4 种间接寻址选项:不增不减、增 1 或减 1、增加或减去索引量、增加或减去索引量且反向进位。表 3-2 给出了与每种选项相应的

9、指令操作数及其示例。表 3-2 间接寻址选项及操作数示例选 项 操作数 示 例不增不减 * LACC * ;用当前 AR 所指的数据存储器地址中内容装载累加器增 1 *+ LACC *+ ;用当前 AR 所指的数据存储器地址中内容装载累加器, ;然后当前 AR 内容加 1减 1 *- LACC *- ;用当前 AR 所指的数据存储器地址中内容装载累加器 ;然后当前 AR 内容减 1加上索引量 *0+ LACC *0+ ;用当前 AR 所指的数据存储器地址中内容装载累加器 ;然后当前 AR 内容加上 AR0 的内容减去索引量 *0- LACC *0- ;用当前 AR 所指的数据存储器地址中内容装

10、载累加器 ;然后当前 AR 内容减去 AR0 的内容加上索引量,反向进位*BRO+ LACC * BRO+ ;用当前 AR 所指的数据存储器地址中内容装载累加器 ;然后当前 AR 内容加上 AR0 的内容,该加法采用反向进位传送减去索引量,反向进位*BRO- LACC * BRO- ;用当前 AR 所指的数据存储器地址中内容装载累加器 ;然后当前 AR 内容减去 AR0 的内容,该减法采用反向进位传送3、辅助寄存器除了更新当前辅助寄存器的内容以外,某些指令还可以指明下一个辅助寄存器。当本指令执行完之后,下一个辅助寄存器便成为当前辅助寄存器。例如:选择一个当前的辅助寄存器MAR *,AR1 ;将

11、当前辅助寄存器设为 AR1LACL *+,AR2 ;用辅助寄存器 AR1 所指向的地址中内容装载累加器的低 16位,;AR1 内容加 1,使得 AR2 为当前辅助寄存器SACL *+ ;将累加器的低 16 位存于 AR2 所指的地址单元,AR2 内容加 14、间接寻址操作码格式在间接寻址中,指令寄存器的内容为:位 158 用于指示指令类型(例如 ADD)和指令所访问的数据值的移位信息位 7 直接/间接指示符。0 表示直接寻址,1 表示间接寻址。位 64 辅助寄存器更新代码 ARU。该 3 位决定当前辅助寄存器是否以及如何进行增或减。位 3 下一辅助寄存器指示符 N。该位说明该指令是否改变辅助寄

12、存器指针ARP的值。N=0,辅助寄存器指针 ARP 内容保持不变;N=1,下一个辅助寄存器 ARN 的内容被装入辅助寄存器指针 ARP。位 20 下一个辅助寄存器的值。该 3 位包括下一辅助寄存器的值。若 N=1,则ARN 被装入 ARP。5、间接寻址示例例 1、不增不减ADD *,8 ;把当前辅助寄存器所指向的数据存储器地址的内容左移 8 位之后;加到累加器例 2、减 1ADD *-,8 ;把当前辅助寄存器所指向的数据存储器地址的内容左移 8 位之后;加到累加器,然后将当前辅助寄存器内容减 16、修改辅助寄存器内容用于修改辅助寄存器内容的特定指令有:LAR、ADRK、SBRK 和 MAR。L

13、AR 指令装载 AR;ADRK 和 SBRK 分别用来从 AR 中加上或减去一个立即数;MAR 指令可使 AR 值增加 /减少 1 或增加/减少一个索引量。另外,任何支持间接寻址操作数的指令都可修改辅助寄存器。3.2 指令集TMS320LF240x 的指令系统可以分成累加器、算数和逻辑指令;辅助寄存器和数据页指针指令;TREG、PREG 和乘法指令;转移指令;控制指令;存储器指令类型。1、累加器、算数和逻辑指令ABS 该指令操作码是:1011 1110 0000 0000,无操作数。执行:PC+1PC;|(ACC)|ACC ;0C影响状态位:受 OVM 影响;不受 SXM;影响 C 和 OV。

14、例 1、ABS 例 2、ABS 例 3、ABS ;(OVM=1) 例 4、ABS ;(OVM=0)1234HACC执行前1234HACC执行后00FFFFFFFFHACC执行前1HACC执行后0C CC C80000000HACC执行前7FFFFFFFHACC执行后0C C1OV OV80000000HACC执行前80000000HACC执行后0C C1ADD 操作码:ADD dma,shift 直接寻址。ADD dma,16 左移 16 位,直接寻址。ADD ind,shift,ARn间接寻址。ADD ind,16,ARn左移 16 位,间接寻址。ARU:辅助寄存器更新码,当前辅助寄存器是否

15、和如何更新值;N:下一个辅助寄存器指示,表明是否是指令改变 ARP 的值;NAR:下一个辅助寄存器值,如果 N=1,则装载到 ARP。ADD #k 短立即数寻址。ADD #lk ,shift 长立即数寻址。执行:PC+1PC;Event: Addressing mode:(ACC) + (data-memory address) 2shift ) ACC Direct or indirect(ACC) + (data-memory address) 216 ) ACC Direct orindirect (shift of 16)(ACC) + kACC Short immediate(ACC

16、) + lk 2shift ACC Long immediate影响状态位:Affected by: Affects: Addressing mode:SXM and OVM C and OV Direct or indirectOVM C and OV Short immediateSXM and OVM C and OV Long immediate例 1、ADD 1,1 ;(DP=6:0300h037Fh)OV OV0 0 1 0 dma0shift15 7 06110 1 1 0 dma00 0 0 115 7 06110 0 1 0 NAR1shift15 7 0611 23ARU4

17、N0 1 1 0 NAR10 0 0 115 7 0611 23ARU4N1 0 1 1 k1 0 0 015 7 0111 0 1 1 shift1 1 1 115 7 011 341 0 0 1lk执行前 执行后例 2、ADD *+,0,AR0 例 3、ADD #1h ;加短立即数例 4、ADD #1111h,1 ;加长立即数并左移 1 位ADDC操作码:ADDC dma 直接寻址。ADDC ind ,ARn间接寻址。执行:PC+1PC;(ACC) + (data-memory address) + (C) ACC影响状态位:Affected by: Affects:OVM C and O

18、VThis instruction is not affected by SXM.例 1、ADDC DAT300 ;(DP=6:0300h037Fh) ,DAT300 是 300h 的标号02HACC 04HACC 0C C01H 01H0301H 0301H0302HAR4执行前0303HAR4执行后04H 00HARP ARP02HACC 04HACC 0C C02H 02H0302H 0302H02HACC执行前03HACC执行后0C C02HACC执行前2224HACC执行后0C C0 1 1 0 dma00 0 0 015 7 06110 1 1 0 NAR10 0 0 015 7

19、0611 23ARU4N13HACC执行前18HACC执行后0C C04H 04H0300H 0300H1例 2、ADDC *-,AR4 ;(OVM=0)ADDSADDS dma 直接寻址。ADDS ind ,ARn间接寻址。执行:PC+1PC;(ACC) + (data-memory address)ACC影响状态位:Affected by: Affects:OVM C and OVThis instruction is not affected by SXM.例 1、ADDS 0 ;(DP=6:0300h037Fh) 例 2、ADDS *-,AR2ADDTADDT dma 0300HAR0

20、执行前02FFHAR0执行后0H 4HARP ARP0FFFFFFFFHACC 00HACC 1C C00H 00H0300H 0300H0OV OV10 1 1 0 dma00 0 1 015 7 06110 1 1 0 NAR10 0 1 015 7 0611 23ARU4N00000003HACC执行前0000F009HACC执行后0C C0F006H 0F006H0300H 0300H0300HAR0执行前02FFHAR0执行后0H 2HARP ARP7FFF0000HACC 7FFFFFFFHACC 0C C0FFFFH 0FFFFH0300H 0300H0 1 1 0 dma00

21、0 1 115 7 0611直接寻址。ADDT ind ,ARn间接寻址。执行:PC+1PC;(ACC) + (data-memory address)2 (TREG(3:0) (ACC)影响状态位:Affected by: Affects:SXM and OVM C and OV例 1、ADDT 127 ;(DP=4:0200h027Fh) ,SXM=0例 2、ADDT *-,AR4 ;(SXM=0)AND操作码:AND dma直接寻址。AND ind,ARn间接寻址。AND #lk,shift长立即数寻址。AND #lk,1616 位移位的长立即数寻址。执行:PC+1PC;Event(s)

22、: Addressing mode:0 1 1 0 NAR10 0 1 115 7 0611 23ARU4N0F715HACC执行前0F7A5HACC执行后0CC09H 09H027FH 027FH027FHAR0执行前027EHAR0执行后0H 4HARP ARP0FF94HTREG 0FF94HTREGC0F715HACC 0F7A5HACC 0CC09H 09H027FH 027FH0FF94HTREG 0FF94HTREGC0 1 1 0 01 1 1 015 7 0611 23dma40 1 1 0 NAR11 1 1 015 7 0611 23ARU4N1 0 1 1 shift1

23、 1 1 115 7 011 341 0 1 1lk1 0 1 1 0 0 0 11 1 1 015 7 011 341 0 0 0lk(ACC(15:0) AND (data-memory address)ACC(15:0) Direct or indirect0ACC(31:16)(ACC(31:0) AND lk2shift ACC Long immediate(ACC(31:0) AND lk216ACC Long immediate with left shift of 16影响状态位:NoneThis instruction is not affected by SXM.例 1、A

24、ND 16 ;(DP=4:0200h027Fh) 例 2、AND *例 3、AND #00FFh,4 CMPL操作码:CMPL执行:PC+1PC;影响状态位:None例 1、CMPL 12345678HACC执行前00000078HACC执行后00FFH 00FFH0210H 0210H0301HAR0执行前0301HAR0执行后0H 0HARP ARP12345678HACC 00005600HACC0FF00H 0FF00H0301H 0301H12345678HACC执行前00000670HACC执行后1 0 1 1 0 0 0 11 1 1 015 7 011 340 0 0 00F7

25、982513HACC执行前0867DAECHACC执行后C CLACC操作码:LACC dma,shift 直接寻址。LACC dma,16 左移 16 位,直接寻址。LACC ind,shift,ARn间接寻址。LACC ind,16,ARn左移 16 位,间接寻址。LACC #lk ,shift 长立即数寻址。执行:PC+1PC;Event: Addressing mode:(data-memory address)2shift ACC Direct or indirect(data-memory address)216ACC Direct or indirect (shift of 16

26、)lk2shift ACC Long immediate影响状态位:Affected by: SXM例 1、LACC 6,4 ;(DP=8:0400h047Fh) , SXM=0例 2、LACC *,4 ;(SXM=0) 0 0 0 1 NAR1shift15 7 0611 23ARU4N0 1 1 0 NAR11 0 1 015 7 0611 23ARU4N1 0 1 1 shift1 1 1 115 7 011 341 0 0 0lk0 0 0 1 dma0shift15 7 06110 1 1 0 dma01 0 1 015 7 061112345678HACC执行前10HACC执行后C

27、 C01H 01H0406H 0406H12345678HACC执行前0FF0HACC执行后C C0FFH 0FFH0300H 0300H0300H 0300HAR2 AR22H 2HARP ARP例 3、LACC #0F000h,1 ;(SXM=1)符号位扩展。LACL操作码:LACL dma直接寻址。LACL ind,ARn间接寻址。LACL #k 短立即数寻址。执行:PC+1PC;Events: Addressing mode:0ACC(31:16) Direct or indirect(data-emory address)ACC(15:0)0ACC(31:8) Short immed

28、iatekACC(7:0)影响状态位:This instruction is not affected by SXM.例 1、LACL 1 ;(DP=6:0300h037Fh)例 2、LACL *-,AR4 12345678HACC 0FFFFE000HACCC C0 1 1 0 NAR11 0 0 115 7 0611 23ARU4N0 1 1 0 dma01 0 0 115 7 06111 0 1 1 k1 0 0 115 7 06117FFFFFFFHACC执行前0HACC执行后C C0H 0H0301H 0301H7FFFFFFFHACC执行前0FFHACC执行后C C0FFH 0FF

29、H0401H 0401H0401H 0400HAR0 AR00H 4HARP ARP执行前 执行后例 3、LACL #10h LACT操作码:LACT dma 直接寻址。LACT ind,shift,ARn间接寻址。执行:PC+1PC;(data-emory address)2(TREG(3:0) ACCIf SXM = 1: Then (data-memory address) is sign extended.If SXM = 0: Then (data-memory address) is not sign extended.影响状态位:Affected by: SXM例 1、LACT

30、1 ;(DP=6:0300h037Fh) , SXM=0例 2、LACT *-,AR3 ;SXM=1NEG操作码:NEG 执行:PC+1PC;(ACC)-1ACC7FFFFFFFHACC 10HACCC C执行前 执行后0 1 1 0 NAR11 0 1 115 7 0611 23ARU4N0 1 1 0 dma01 0 1 115 7 061198F7EC83HACC执行前13760HACC执行后C C1376H 1376H0301H 0301H98F7EC83HACC执行前0FFFFFE00HACC执行后C C0FF00H 0FF00H0310H 0310H310H 30FHAR1 AR0

31、1H 3HARP ARP14H 14HTREG TREG11H 11HTREG TREG1 0 1 1 0 0 0 0 0 1 001 1 1 015 7 0611影响状态位:Affected by: Affects:OVM C and OV例 1、NEG ;(OVM=X) , 转换-3544 到+3544例 2、NEG ;(OVM=0) 例 3、NEG ;(OVM=1) NORM操作码:NORM ind 执行:PC+1PC;If (ACC) = 0: Then TC1;Else, if (ACC(31) XOR (ACC(30) = 0:Then TC0,(ACC)2ACCModify (c

32、urrent AR) as specified;Else TC1.影响状态位:Affects: TC0FFFFF228HACC 0DD8HACC 0C COV OV执行前 执行后80000000HACC 80000000HACC 0C COV OV执行前 执行后180000000HACC 7FFFFFFFHACC 0C COV OV执行前 执行后11 0 1 0 NAR10 0 0 015 7 0611 23ARU4N例 1、NORM *+ 例 2、31-Bit 格式化MAR *,AR1 ;Use AR1 to store the exponent.LAR AR1,#0h ;Clear out

33、 exponent counter.LOOP NORM *+ ;One bit is normalized.BCND LOOP,NTC ;If TC = 0, magnitude not found yet.例 2、15-Bit 格式化MAR *,AR1 ;Use AR1 to store the exponent.LAR AR1,#0Fh ;Initialize exponent counter.RPT #14 ;15-bit normalization specified (yielding;a 4-bit exponent and 16-bit mantissa).NORM *- ;NO

34、RM automatically stops shifting when first;significant magnitude bit is found,;performing NOPs for the remainder of the;repeat loops.The method used in Example 2 normalizes a 32-bit number and yields a 5-bit exponent magnitude. The method used in Example 3 normalizes a 16-bit number and yields a 4-b

35、it magnitude. If the number requires only a small amount of normalization, the Example 2 method may be preferable to the Example 3 method because the loop in Example 2 runs only until normalization is complete. Example 3 always executes all 15 cycles of the repeat loop. Specifically, Example 2 is mo

36、re efficient if the number requires three or fewer shifts. If the number requires six or more shifts, Example 3 is more efficient.OR操作码:OR dma 直接寻址。OR ind ,ARn间接寻址。OR #lk ,shift 长立即数寻址。OR #lk ,16 16 位移位的长立即数寻址。0FFFFF001HACC执行前0FFFE002HACC执行后C C2H 2HARP ARP00H 01HAR2 AR2TC TC00 1 1 0 NAR11 1 0 115 7

37、0611 23ARU4N0 1 1 0 dma01 1 0 115 7 06111 0 1 1 shift1 1 1 115 7 011 341 1 0 0lk1 0 1 1 0 0 1 01 1 1 015 7 011 341 1 0 0lk执行:PC+1PC;Event(s): Addressing mode:(ACC(15:0) OR (data-memory address) ACC(15:0) Direct or indirect(ACC(31:16)ACC(31:16)(ACC) OR lk2shiftACC Long immediate(ACC) OR lk216ACC Long

38、 immediatewith left shift of 16影响状态位:NoneThis instruction is not affected by SXM.例 1、OR DAT8 ;(DP=8:0400h047Fh) 例 2、OR *,AR0 例 3、OR #8111h,8 ROL操作码:ROL执行:PC+1PC;CACC(0)(ACC(31) C100002HACC执行前10F002HACC执行后C C0F000H 0F000H0408h 0408h222HACC执行前1333HACC执行后C C1111H 1111H0300h 0300h300HAR1 300HAR11H 0HARP

39、 ARP100002HACC 911102HACCC C0F000H 0F000H0408h 0408h1 0 1 1 0 0 0 1 1 0 001 1 1 015 7 0611执行前 执行后(ACC(30:0) ACC(31:1)影响状态位:Affects: CThis instruction is not affected by SXM.例 1、ROLROR操作码:ROR执行:PC+1PC;CACC(31)(ACC(0)C(ACC(31:1) ACC(30:0)影响状态位:Affects: CThis instruction is not affected by SXM.例 1、RORS

40、ACH操作码:SACH dma,shift 直接寻址。SACH ind,shift,ARn间接寻址。执行:PC+1PC;16 MSBs of (ACC)2shift2 )data-memory address影响状态位:This instruction is not affected by SXMB0001234HACC 60002468HACCC C执行前 执行后0 11 0 1 1 0 0 0 1 1 0 101 1 1 015 7 0611B0001235HACC 5800091AHACCC C执行前 执行后0 11 0 0 1 dma0shift215 7 061111 0 0 1 N

41、AR1Shift215 7 0611 23ARU4N1例 1、SACH DAT10,1 ;(DP=4:0200h027Fh) ,左移 1 位 例 2、SACH *+,0,AR2 ;不移位 SACL操作码:SACL dma,shift 直接寻址。SACL ind,shift,ARn间接寻址。执行:PC+1PC;16 LSBs of (ACC)2shift2 )data-memory address影响状态位:This instruction is not affected by SXM例 1、SACL DAT11,1 ;(DP=4:0200h027Fh) ,左移 1 位 例 2、SACL *,0

42、,AR7 ;不移位 SFL操作码:SFL4208001HACC执行前4208001HACC执行后C C0H 8410H020Ah 020Ah4208001HACC执行前4208001HACC执行后C C0H 0420H0300h 0300h1HARP 2HARP300H 301HAR1 AR11 0 0 1 dma0shift215 7 061101 0 0 1 NAR1Shift215 7 0611 23ARU4N07C63 8421HACC执行前7C63 8421HACC执行后C C05H 0842H020Bh 020Bh00FF 8421HACC执行前00FF 8421HACC执行后C

43、C05H 8421H0300h 0300h6HARP 7HARP300H 301HAR6 AR61 0 1 1 0 0 0 1 0 0 101 1 1 015 7 0611执行:PC+1PC;ACC(31) CACC(30:0)(ACC(31:1) 0(ACC(0) 影响状态位:Affects: CThis instruction is not affected by SXM.例 1、SFL SFR操作码:SFR执行:PC+1PC;If SXM = 0 Then 0ACC(31).If SXM = 1 Then (ACC(31) ACC(31)(ACC(31:1) ACC(30:0) (ACC

44、(0) C影响状态位:Affected by: Affects:SXM C例 1、SFR ;(SXM = 0: no sign extension)例 2、SFR ;(SXM = 1: sign extend)SUBB000 1234HACC执行前6000 2468HACC执行后C C11 0 1 1 0 0 0 1 0 1 001 1 1 015 7 0611B000 1234HACC 5800 091AHACCC C0执行前 执行后B000 1234HACC D800 091AHACCC C0执行前 执行后操作码:SUB dma,shift 直接寻址。SUB dma,16 左移 16 位,

45、直接寻址。SUB ind,shift,ARn间接寻址。SUB ind,16,ARn左移 16 位,间接寻址。ARU:辅助寄存器更新码,当前辅助寄存器是否和如何更新值;N:下一个辅助寄存器指示,表明是否是指令改变 ARP 的值;NAR:下一个辅助寄存器值,如果 N=1,则装载到 ARP。SUB #k 短立即数寻址。SUB #lk ,shift 长立即数寻址。执行:PC+1PC;Event Addressing mode(ACC) - (data-memory address)2shift )ACC Direct or indirect(ACC) - (data-memory address)21

46、6 )ACC Direct or indirect(shift of 16)(ACC) - kACC Short immediate(ACC) - lk2shiftACC Long immediate影响状态位:Affected by: Affects: Addressing mode:OVM and SXM OV and C Direct or indirectOVM OV and C Short immediateOVM and SXM OV and C Long immediate例 1、SUB DAT80 ;(DP=8:0400h047Fh)0 0 1 1 dma0shift15 7

47、06110 1 1 0 dma00 1 0 115 7 06110 0 1 1 NAR1shift15 7 0611 23ARU4N0 1 1 0 NAR10 1 0 115 7 0611 23ARU4N1 0 1 1 k1 0 1 015 7 0111 0 1 1 shift1 1 1 115 7 011 341 0 1 0lk24HACC执行前13HACC执行后1C C11H 11H0450H 0450H例 2、SUB *- ,1,AR0 ;(左移 1 位,SXM=0)例 3、SUB #8h ;加短立即数例 4、ADD #0FFFh,4 ;左移 4 位,SXM=0SUBB操作码:SUBB dma 直接寻址。SUBB ind,ARn间接寻址。ARU:辅助寄存器更新码,当前辅助寄存器是否和如何更新值;N:下一个辅助寄存器指示,表明是否是指令改变 ARP 的值;NAR:下一个辅助寄存器值,如果 N=1,则装载到 ARP。执行:PC+1PC;(ACC) - (data-memory add

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报