嵌入式系结构

上传人:仙*** 文档编号:47420173 上传时间:2021-12-20 格式:PPT 页数:200 大小:1.46MB
返回 下载 相关 举报
嵌入式系结构_第1页
第1页 / 共200页
嵌入式系结构_第2页
第2页 / 共200页
嵌入式系结构_第3页
第3页 / 共200页
点击查看更多>>
资源描述
主讲教师:主讲教师: 邱铁邱铁 E_mail: Tel: 87571521 参考教材:参考教材: 1.嵌入式系统开发与应用,田泽北京航空航天大学出版社 2.嵌入式系系结构与编程,杜春蕾. 清华大学出版社2TM第四讲ARM指令集 本讲将详细介绍各本讲将详细介绍各ARM指令,并给指令,并给出一些典型的出一些典型的ARM功能代码段。功能代码段。3TM3本讲主要内容有本讲主要内容有 4.1ARM指令集4.2一些基本的ARM指令功能段4.3Thumb指令简介4TM44.1ARM指令集指令集 4.1.1 跳转指令跳转指令4.1.2 数据处理指令数据处理指令4.1.3 乘法指令乘法指令4.1.4 杂类的算术指令杂类的算术指令4.1.5 状态寄存器访问指令状态寄存器访问指令4.1.6 Load/Store内存访问指令内存访问指令4.1.7 批量批量Load/Store内存访问指令内存访问指令4.1.8 信号量操作指令信号量操作指令4.1.9 异常中断产生指令异常中断产生指令4.1.10ARM协处理器指令协处理器指令5TM54.1.1跳转指令在在ARM中有两种方式可以实现程序的跳转:一中有两种方式可以实现程序的跳转:一种是跳转指令;另一种是直接向寄存器(种是跳转指令;另一种是直接向寄存器(R15)中写入目标地址值。中写入目标地址值。通过直接向通过直接向PC寄存器中写入目标地址值可以实寄存器中写入目标地址值可以实现在现在4GB的地址空间中任意跳转,这种跳转指令的地址空间中任意跳转,这种跳转指令又成为长跳转。如果在长跳转指令之前使用又成为长跳转。如果在长跳转指令之前使用MOV LR,PC等指令,可以保存将来返回的地址等指令,可以保存将来返回的地址值,就实现了在值,就实现了在4GB的地址空间中的子程序调用的地址空间中的子程序调用。6TM6 跳转指令ARM的跳转指令可以从当前指令向前或向后的的跳转指令可以从当前指令向前或向后的32MB的的地址空间跳转。这类跳转指令有以下地址空间跳转。这类跳转指令有以下4种:种:B 跳转指令跳转指令BL 带返回的跳转指令带返回的跳转指令BLX 带返回和状态切换的跳转指令带返回和状态切换的跳转指令BX 带状态切换的跳转指令带状态切换的跳转指令7TM71. B(跳转指令)及BL(带返回的跳转指令)B指令和指令和BL指令均可以跳转到指令中的目标地址,这两指令均可以跳转到指令中的目标地址,这两个指令和目标地址处的指令都属于个指令和目标地址处的指令都属于ARM指令集。二者也指令集。二者也都可以根据都可以根据CPSR中条件标志位的值与指令中的执行条中条件标志位的值与指令中的执行条件决定是否执行跳转操作。件决定是否执行跳转操作。二者的不同之处在于,二者的不同之处在于,B指令仅仅执行跳转操作;指令仅仅执行跳转操作;BL指指令同时还将令同时还将PC寄存器的值保存到寄存器的值保存到LR寄存器中。寄存器中。 8TM8B(跳转指令)及BL(带返回的跳转指令) n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nBL 9TM9B(跳转指令)及BL(带返回的跳转指令) n其中:其中:n L决定是否保存返回地址。当有决定是否保存返回地址。当有L时,当时,当PC寄存器的值寄存器的值将保存到将保存到LR寄存器中;当无寄存器中;当无L时,指令仅执行跳转,当前时,指令仅执行跳转,当前PC寄存器的值将不会保存到寄存器的值将不会保存到LR寄存器中。寄存器中。n 为指令执行的条件码。为指令执行的条件码。n 为指令跳转的目标地址。这个目标为指令跳转的目标地址。这个目标地址的计算方法是:将指令中的地址的计算方法是:将指令中的24位带符号的补码立即数扩位带符号的补码立即数扩展为展为32位;将此位;将此32位数左移两位将得到的值增加到位数左移两位将得到的值增加到PC寄存寄存器中,即得到跳转的目标地址。跳转的范围大致为器中,即得到跳转的目标地址。跳转的范围大致为-32MB+32MB。10TM10 跳转指令指令的使用指令的使用BL指令用于实现子程序调用。子程序的返回可以通过将指令用于实现子程序调用。子程序的返回可以通过将LR寄存器中的值复制到寄存器中的值复制到PC寄存器中来实现。通常有寄存器中来实现。通常有3种种方法实现这种复制:方法实现这种复制:BX R14MOV PC, R14当子程序入口中使用了当子程序入口中使用了 STMFD R13!,R14时,时, 可以用指令可以用指令LDMFD R13!,PC返回返回11TM11B(跳转指令)及BL(带返回的跳转指令) 示例解析示例解析12TM122. BLX(1)第一种格式的第一种格式的BLX指令记作指令记作BLX(1)。 BLX(1)指令从指令从ARM指令集跳转到指令中指定的目标地址,并将程序状指令集跳转到指令中指定的目标地址,并将程序状态切换为态切换为Thumb状态,该指令同时将状态,该指令同时将PC寄存器中的内寄存器中的内容复制到容复制到LR寄存器中。寄存器中。本指令属于无条件执行的指令(即条件码为本指令属于无条件执行的指令(即条件码为AL)13TM13BLX(1) n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nBLX n其中:其中:的用法与的用法与B及及BL指令中的用法相同。指令中的用法相同。n位加到目标地址的第一位位加到目标地址的第一位( (为为1 1时半字操作时半字操作) )14TM14 BLX(1)指令的使用:指令的使用: 当子程序为当子程序为Thumb指令集,而调用者为指令集,而调用者为ARM指令集指令集时,可以通过时,可以通过BLX指令实现子程序调用和程序状态的切指令实现子程序调用和程序状态的切换。换。子程序的返回可以通过将子程序的返回可以通过将LR寄存器(寄存器(R14)的值复制到)的值复制到PC寄存器中来实现。寄存器中来实现。BX R14当子程序入口中使用了当子程序入口中使用了PUSH ,R14时,可时,可以用指令以用指令POP,PC15TM153. BLX(2)第一种格式的第一种格式的BLX指令记作指令记作BLX(2)。 BLX(2)指令从指令从ARM指令集跳转到指令中指定的目标地址,目标地址的指令集跳转到指令中指定的目标地址,目标地址的指令可以是指令可以是ARM指令,也可以是指令,也可以是Thumb指令。目标地址指令。目标地址放在指令中的寄存器放在指令中的寄存器中,该地址的中,该地址的bit0值为值为0,目标地址出的指令类型由目标地址出的指令类型由CPSR中的中的T位决定。该指令同位决定。该指令同时将时将PC寄存器的内容复制到寄存器的内容复制到LR寄存器中。寄存器中。16TM16BLX(2) n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nBLX 17TM17 BLX(2)其中:其中:p 为指令执行的条件码。当为指令执行的条件码。当忽略时指令忽略时指令为无条件执行。为无条件执行。p 该寄存器中为跳转的目标地址。当该寄存器中为跳转的目标地址。当寄存寄存器的器的bit0值为值为0时,目标地址处的指令为时,目标地址处的指令为ARM指令;当指令;当寄存器的寄存器的bit0值为值为1时,目标地址处的指令为时,目标地址处的指令为Thumb指令。当指令。当寄存器为寄存器为R15时,会产生不可预时,会产生不可预知的结果知的结果18TM18 BLX(2)指令的使用指令的使用: 当当Rm1:0=0b10时,由于时,由于ARM指令是字对齐的,这指令是字对齐的,这时会产生不可预料的结果时会产生不可预料的结果19TM194. BX指令BX指令跳转到指令中指定的目标地址,目标地址处的指指令跳转到指令中指定的目标地址,目标地址处的指令可以是令可以是ARM指令,也可以是指令,也可以是Thumb指令。目标地址值指令。目标地址值为指令的值和为指令的值和0 xFFFFFFFE做与操作的结果,目标地址做与操作的结果,目标地址处的指令类型由寄存器处的指令类型由寄存器的的bit0决定。决定。n指令的编码格式:指令的编码格式:20TM20 BX指令指令的语法格式指令的语法格式:BX 其中:其中: 为指令执行的条件码。当为指令执行的条件码。当忽略时指令忽略时指令为无条件执行。为无条件执行。n 该寄存器中为跳转的目标地址。当该寄存器中为跳转的目标地址。当寄存寄存器的器的bit0值为值为0时,目标地址处的指令为时,目标地址处的指令为ARM指令;当指令;当寄存器的寄存器的bit0值为值为1时,目标地址处的指令为时,目标地址处的指令为Thumb指令。指令。21TM21 BX指令指令的使用:指令的使用:当当Rm1:0=0b10时,由于时,由于ARM指令是字对齐的,这时指令是字对齐的,这时会产生不可预料的结果。会产生不可预料的结果。当当为为PC寄存器时,即指令寄存器时,即指令BX PC将程序跳转到当将程序跳转到当前指令下面第前指令下面第2条指令处执行,在这种情况下推荐使用条指令处执行,在这种情况下推荐使用MOV PC,PC及指令及指令ADD PC , PC,#0来实现这种功能。来实现这种功能。22TM224.1.2数据处理指令数据处理指令大致分为数据处理指令大致分为3类:数据传送指令、算类:数据传送指令、算术逻辑运算指令、比较指令。术逻辑运算指令、比较指令。数据传送指令用于向寄存器中传入一个常数。该数据传送指令用于向寄存器中传入一个常数。该指令包括一个目标寄存器和一个操作数。指令包括一个目标寄存器和一个操作数。算术逻辑运算指令通常包括一个目标寄存器和两算术逻辑运算指令通常包括一个目标寄存器和两个源操作数。算术逻辑运算指令将运算结果存入个源操作数。算术逻辑运算指令将运算结果存入目标寄存器,同时更新目标寄存器,同时更新CPSR中相应的条件标志中相应的条件标志位。位。比较指令不保存运算结果,只更新比较指令不保存运算结果,只更新CPSR中相应中相应的条件标志位。的条件标志位。23TM23 数据处理指令数据处理指令包括:数据处理指令包括:MOV 数据传送指令数据传送指令MVN 数据反求传送指令数据反求传送指令CMP 比较指令比较指令CMN 基于相反数的比较基于相反数的比较指令指令TST 位测试指令位测试指令TEQ 相等测试指令相等测试指令ADD 加法指令加法指令SUB 减法指令减法指令RSB 逆向减法指令逆向减法指令ADC 带位加法指令带位加法指令SBC 带位减法指令带位减法指令RSC 带位逆向减法指令带位逆向减法指令AND 逻辑与操作指令逻辑与操作指令BIC 为清除指令为清除指令EOR 逻辑异或操作指令逻辑异或操作指令ORR 逻辑或操作指令逻辑或操作指令24TM241. MOV传送指令MOV指令将指令将表示的数据传送到目标表示的数据传送到目标寄存器寄存器中,并根据操作的结果更新中,并根据操作的结果更新CPSR中相应的中相应的条件标志位。条件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:MOV S ,25TM25 MOV传送指令其中:其中: 为指令执行的条件码。当为指令执行的条件码。当忽略时指令忽略时指令为无条件执行。为无条件执行。n S决定指令的操作是否影响决定指令的操作是否影响CPSR中条件标志位的值。中条件标志位的值。当没有当没有S时指令不更新时指令不更新CPSR中条件标志位的值;当有中条件标志位的值;当有S时指令更新时指令更新CPSR中条件标志位的值。当有中条件标志位的值。当有S时有两种情时有两种情况:若指令中的目标寄存器况:若指令中的目标寄存器为为R15,则当前处理器,则当前处理器模式对应的模式对应的SPSR的值被复制到的值被复制到CPSR寄存器中,对于用寄存器中,对于用户模式和系统模式,指令执行的结果将不可预料户模式和系统模式,指令执行的结果将不可预料; 26TM26 MOV传送指令 若指令中的目标寄存器若指令中的目标寄存器不为不为R15,指令根据传送,指令根据传送的数值设置的数值设置CPSR中的中的N位和位和Z位,并根据移位器的进位位,并根据移位器的进位值值carryout设置设置CPSR的的C位,位, CPSR中的其他位不受影中的其他位不受影响响 寄存器为目标寄存器。寄存器为目标寄存器。 为向目标寄存器传送的数据。为向目标寄存器传送的数据。 27TM27 MOV传送指令指令的使用指令的使用:将数据从一个寄存器传送到另一个寄存中将数据从一个寄存器传送到另一个寄存中将一个常数传送到一个寄存器中。将一个常数传送到一个寄存器中。实现单纯的移位操作。实现单纯的移位操作。当当PC寄存器作为目标寄存器时可以实现程序跳转。寄存器作为目标寄存器时可以实现程序跳转。当当PC寄存器作为目标寄存器且指令中寄存器作为目标寄存器且指令中S位被设置时,指位被设置时,指令在执行跳转操作的同时,将当前处理器模式的令在执行跳转操作的同时,将当前处理器模式的SPSR寄存器内容复制到寄存器内容复制到CPSR中。中。28TM282. MVN传送指令MVN指令将指令将表示的数据的反码传送表示的数据的反码传送到目标寄存器到目标寄存器中,并根据操作的结果更新中,并根据操作的结果更新CPSR中中相应的条件标志位。相应的条件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:MVN S ,其中,各参数的用法与其中,各参数的用法与MOV传送指令相同。传送指令相同。29TM29 MVN传送指令指令的使用指令的使用:向寄存器中传送一个负数。向寄存器中传送一个负数。求一个数的反码。求一个数的反码。示例解析示例解析30TM303. ADD加法指令ADD指令将指令将表示的数据与寄存器表示的数据与寄存器中的值相加,并把结果传送到目标寄存器中的值相加,并把结果传送到目标寄存器中中,并根据操作的结果更新,并根据操作的结果更新CPSR中相应的条件标志位。中相应的条件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:ADD S ,31TM31 ADD加法指令其中:其中: 、S和和Rd的用法与的用法与MOV传送指令相同。传送指令相同。 寄存器为第寄存器为第1个源操作数所在的寄存器。个源操作数所在的寄存器。 为第为第2个操作数。个操作数。 32TM32 ADD加法指令指令的使用指令的使用:实现两个操作数相加实现两个操作数相加示例解析示例解析33TM334. ADC带位加法指令ADC指令将指令将表示的数据与寄存器表示的数据与寄存器中的值相加,再加上中的值相加,再加上CPSR中的中的C条件标志位的值条件标志位的值,并把结果传送到目标寄存器,并把结果传送到目标寄存器中,并根据操作的结中,并根据操作的结果更新果更新CPSR中相应的条件标志位。中相应的条件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:ADC S ,其中,各参数用法与其中,各参数用法与ADD传送指令相同。传送指令相同。34TM34 ADC带位加法指令指令的使用指令的使用ADC 指令和指令和ADD指令联合使用可以实现两个指令联合使用可以实现两个64位的操位的操作数相加。如果寄存器作数相加。如果寄存器R0和和R1中放置一个中放置一个64位的源操位的源操作数,其中作数,其中R0中放置低中放置低32位数值;寄存器位数值;寄存器R2和和R3中放中放置另一个置另一个64位的源操作数,其中位的源操作数,其中R2中放置低中放置低32位数值。位数值。示例解析示例解析35TM355. SUB减法指令SUB指令从寄存器指令从寄存器中减去中减去表示表示的数值,并把结果传送到目标寄存器的数值,并把结果传送到目标寄存器中,并根据操中,并根据操作的结果更新作的结果更新CPSR中相应的条件标志位。中相应的条件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:SUB S ,其中,各参数用法与其中,各参数用法与ADD传送指令相同。传送指令相同。36TM36 SUB减法指令指令的使用指令的使用:n SUB指令实现两个操作数相减。指令实现两个操作数相减。示例解析示例解析37TM376. SBC带位减法指令SBCSBC指令从寄存器指令从寄存器中减去中减去表示的表示的数值,再减去寄存器数值,再减去寄存器CPSRCPSR中中C C条件标志位的反码,并把结条件标志位的反码,并把结果传送到目标寄存器果传送到目标寄存器中,并根据操作的结果更新中,并根据操作的结果更新CPSRCPSR中相应的条件标志位。中相应的条件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:SBC S ,其中,各参数用法与其中,各参数用法与ADDADD传送指令相同。传送指令相同。38TM38 SBC带位减法指令指令的使用指令的使用:SBC指令和指令和SUBS指令联合使用可以实现两个指令联合使用可以实现两个64位的操位的操作数相减。如果寄存器作数相减。如果寄存器R0和和R1中放置一个中放置一个64位的源操位的源操作数,其中作数,其中R0中放置低中放置低32位数值;寄存器位数值;寄存器R2和和R3中放中放置另一个置另一个64位的源操作数,其中位的源操作数,其中R2中放置低中放置低32位数值。位数值。示例解析示例解析39TM397. RSB逆向减法指令RSB指令从中指令从中表示的数值中减去寄表示的数值中减去寄存器存器 值,并把结果传送到目标寄存器值,并把结果传送到目标寄存器中,并中,并根据操作的结果更新根据操作的结果更新CPSR中相应的条件标志位。中相应的条件标志位。n指令的编码格式:指令的编码格式:40TM40 RSB逆向减法指令指令的语法格式:指令的语法格式: RSB S ,其中:其中: 寄存器为第寄存器为第2个操作数所在的寄存器个操作数所在的寄存器 为第为第1个操作数。个操作数。 其他参数用法与其他参数用法与ADD传送指令相同。传送指令相同。41TM41 RSB逆向减法指令指令的使用指令的使用:nRSB指令实现两个操作数相减。指令实现两个操作数相减。示例解析示例解析42TM428. RSC带位逆向减法指令RSC指令从中指令从中表示的数值中减去寄表示的数值中减去寄存器存器 值,再减去寄存器值,再减去寄存器CPSR中中 C条件标志位的反条件标志位的反码,并把结果传送到目标寄存器码,并把结果传送到目标寄存器中,并根据操作的中,并根据操作的结果更新结果更新CPSR中相应的条件标志位。中相应的条件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:RSC S ,其中,各参数用法与其中,各参数用法与RSB逆向减法指令相同。逆向减法指令相同。43TM43 RSC带位逆向减法指令指令的使用指令的使用:RSC指令和指令和RSBC指令联合使用可以求一个指令联合使用可以求一个64位数值的位数值的负数。负数。如果寄存器如果寄存器R0和和R1中放置一个中放置一个64位数,其中位数,其中R0中放置中放置低低32位数值;寄存器位数值;寄存器R2和和R3中放置其负数,其中中放置其负数,其中R2中中放置低放置低32位数值。位数值。示例解析示例解析44TM449. AND逻辑与操作指令AND指令将指令将表示的数值与寄存器表示的数值与寄存器 的值按位做逻辑与操作,并把结果保存到目标寄的值按位做逻辑与操作,并把结果保存到目标寄存器存器中,并根据操作的结果更新中,并根据操作的结果更新CPSR中相应的条中相应的条件标志位。件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:AND S ,45TM45 AND逻辑与操作指令其中:其中: 寄存器为第寄存器为第1 1个操作数所在的寄存器个操作数所在的寄存器 为第为第2 2个操作数。个操作数。 其他参数用法与其他参数用法与MOVMOV传送指令相同。传送指令相同。46TM46 ANDAND逻辑与操作指令逻辑与操作指令指令的使用指令的使用: AND指令可用于提取寄存器中某些位的值。具体作指令可用于提取寄存器中某些位的值。具体作法是设置一个掩码值,将该值中对应于寄存器中欲提取法是设置一个掩码值,将该值中对应于寄存器中欲提取的位设为的位设为1,其他的位设置成,其他的位设置成0。将寄存器的值与该掩码。将寄存器的值与该掩码值作与操作即可得到想提取的位的值。值作与操作即可得到想提取的位的值。47TM4710. ORR逻辑或操作指令ORR指令将指令将表示的数值与寄存器表示的数值与寄存器 的值按位做逻辑或操作,并把结果保存到目标寄的值按位做逻辑或操作,并把结果保存到目标寄存器存器中,并根据操作的结果更新中,并根据操作的结果更新CPSR中相应的条中相应的条件标志位。件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:ORR S ,其中,各参数用法与其中,各参数用法与AND指令相同指令相同。48TM48 ORR逻辑或操作指令指令的使用指令的使用ORR指令可用于将寄存器中某些位的值设置成指令可用于将寄存器中某些位的值设置成1。具体。具体作法是设置一个掩码值,将该值中对应于寄存器中欲提作法是设置一个掩码值,将该值中对应于寄存器中欲提取的位设为取的位设为0,其他的位设置成,其他的位设置成1。将寄存器的值与该掩。将寄存器的值与该掩码值做逻辑或操作即可得到想提取的位的值。码值做逻辑或操作即可得到想提取的位的值。示例解析示例解析49TM4911. EOR逻辑异或操作指令EOR指令将指令将表示的数值与寄存器表示的数值与寄存器 的值按位做逻辑异或操作,并把结果保存到目标的值按位做逻辑异或操作,并把结果保存到目标寄存器寄存器中,并根据操作的结果更新中,并根据操作的结果更新CPSR中相应的中相应的条件标志位。条件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:EOR S ,其中,各参数用法与其中,各参数用法与AND指令相同。指令相同。50TM50 EOR逻辑异或操作指令指令的使用指令的使用:n EOR指令可用于将寄存器中某些位的值取反。将某一指令可用于将寄存器中某些位的值取反。将某一位与位与0做逻辑异或操作,该位值不变:将某一位与做逻辑异或操作,该位值不变:将某一位与1做逻做逻辑异或操作,该位置将被求反。辑异或操作,该位置将被求反。51TM5112. BIC位清除指令BIC指令将指令将 寄存器的值与寄存器的值与表示表示的数值的反码按位做逻辑与操作,并把结果保存到目标的数值的反码按位做逻辑与操作,并把结果保存到目标寄存器寄存器中,并根据操作的结果更新中,并根据操作的结果更新CPSR中相应的中相应的条件标志位。条件标志位。n指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:BIC S ,其中,各参数用法与其中,各参数用法与AND指令相同。指令相同。52TM52 BIC位清除指令指令的使用指令的使用n BIC指令可用于将寄存器中某些位的值设置成指令可用于将寄存器中某些位的值设置成0。将某。将某一位与一位与1做做BIC操作,该位值被设置成操作,该位值被设置成0;将某一位与;将某一位与0做做BIC操作,该位值不变。操作,该位值不变。53TM5313. CMP比较指令CMP指令从寄存器指令从寄存器 中减去中减去表表示的数值,根据操作的结果更新示的数值,根据操作的结果更新CPSR中相应的条件标中相应的条件标志位,后面的指令就可以根据志位,后面的指令就可以根据CPSR中相应的条件标志中相应的条件标志位来判断是否执行。位来判断是否执行。指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:CMP ,54TM54 CMP比较指令其中:其中: 寄存器为第寄存器为第1个操作数所在的寄存器个操作数所在的寄存器 为第为第2个操作数。个操作数。 为指令执行的条件码。当为指令执行的条件码。当忽略时指令忽略时指令为无条件执行。为无条件执行。指令的使用:指令的使用: CMP指令与指令与SUBS指令的区别在于指令的区别在于CMP指令不保存操指令不保存操作结果。作结果。55TM5514. CMN求和比较指令CMN指令将寄存器指令将寄存器 中的值加上中的值加上表示的数值,根据操作的结果更新表示的数值,根据操作的结果更新CPSR中相应的条件标志位,后面的指令就可以根据中相应的条件标志位,后面的指令就可以根据CPSR中相应的条件标志位来判断是否执行。中相应的条件标志位来判断是否执行。指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式: CMN , 其中,各参数用法与其中,各参数用法与CMP指令相同指令相同56TM56 CMN求和比较指令指令的使用指令的使用n CMN指令将寄存器指令将寄存器 中的值加上中的值加上表示的数值,根据加法操作的结果表示的数值,根据加法操作的结果设置设置CPSR中相应的条件标志位。中相应的条件标志位。57TM5715. TST位测试指令TST指令将指令将表示的数值与寄存器表示的数值与寄存器 中的值做逻辑与操作,根据操作的结果更新中的值做逻辑与操作,根据操作的结果更新CPSR中相应的条件标志位。中相应的条件标志位。指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:TST ,其中,各参数用法与其中,各参数用法与CMP比较指令相同比较指令相同58TM58 TST位测试指令指令的使用指令的使用n TST指令通常用于测试寄存器中某个(些)位是指令通常用于测试寄存器中某个(些)位是1还还是是0。59TM5916. TEQ相等测试指令TEQ指令将指令将表示的数值与寄存器表示的数值与寄存器 中的值做逻辑异或操作,根据操作的结果更新中的值做逻辑异或操作,根据操作的结果更新CPSR中相应的条件标志位。中相应的条件标志位。指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:TEQ ,其中,各参数用法与其中,各参数用法与CMP比较指令相同比较指令相同60TM60 TEQ相等测试指令指令的使用指令的使用TEQ指令通常用于比较两个数是否相等,这种比较操作指令通常用于比较两个数是否相等,这种比较操作通常不影响通常不影响CPSR寄存器的寄存器的V位和位和C位。位。TEQ指令也可用于比较两个操作数符号是否相同,该指指令也可用于比较两个操作数符号是否相同,该指令执行后,令执行后,CPSR寄存器中的寄存器中的N位为两个操作数符号位作位为两个操作数符号位作异或操作的结果。异或操作的结果。61TM614.1.3乘法指令ARM有两类乘法指令:有两类乘法指令: 一类为一类为32位的乘法指令,即乘法操作的结果为位的乘法指令,即乘法操作的结果为32位;位; 另一类为另一类为64位的乘法指令,即乘法操作的结果为位的乘法指令,即乘法操作的结果为64位。位。MUL 32位乘法指令。位乘法指令。MLA 32位带加数的乘法指令。位带加数的乘法指令。SMULL 64位有符号数乘法指令。位有符号数乘法指令。SMLAL 64位带加数的有符号数乘法指令位带加数的有符号数乘法指令UMULL 64位无符号数乘法指令。位无符号数乘法指令。UMLAL 64位带加数的无符号数乘法指令位带加数的无符号数乘法指令62TM621. MUL乘(32位结果)MUL指令实现两个指令实现两个32位的数(可以为无符号数,也可为位的数(可以为无符号数,也可为有符号数)的乘积并将结果存放到一个有符号数)的乘积并将结果存放到一个32位的寄存器中位的寄存器中,同时根据运算结果设置,同时根据运算结果设置CPSR寄存器中相应的条件标寄存器中相应的条件标志位。志位。指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:MUL S , , 功能:Rd (Rm*Rs)31:063TM63MUL 乘(32位结果)其中:其中:n 为指令执行的条件码。当为指令执行的条件码。当忽略时指令忽略时指令为无条件执行。为无条件执行。n S决定指令的操作是否影响决定指令的操作是否影响CPSR中条件标志位中条件标志位N位和位和Z位的值。当没有位的值。当没有S时指令不更新时指令不更新CPSR中条件标志位的中条件标志位的值;当有值;当有S时指令更新时指令更新CPSR中条件标志位的值。中条件标志位的值。n 寄存器为目标寄存器。寄存器为目标寄存器。n 寄存器为第寄存器为第1个乘数所在的寄存器。个乘数所在的寄存器。n 为第为第2个乘数所在的寄存器。个乘数所在的寄存器。 64TM64MUL乘(32位结果)指令的使用指令的使用由于两个由于两个32的数相乘结果为的数相乘结果为64位,而位,而MUL指令仅仅保存指令仅仅保存了了64位结果低位结果低32位,所以对于带符号的和无符号的操作位,所以对于带符号的和无符号的操作数来说数来说MUL指令执行的结果相同。指令执行的结果相同。寄存器寄存器 为为R15时,指令执行的结果不时,指令执行的结果不可预测。可预测。示例解析示例解析 65TM652. MLA 乘-累加(32位结果)MLA指令实现两个指令实现两个32位的数(可以为无符号数,也可为位的数(可以为无符号数,也可为有符号数)的乘积,再将乘积加上第有符号数)的乘积,再将乘积加上第3个操作数,并将结个操作数,并将结果存放到一个果存放到一个32位的寄存器中,同时根据运算结果设置位的寄存器中,同时根据运算结果设置CPSR寄存器中相应的条件标志位。寄存器中相应的条件标志位。指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:MLA S , , ,功能:功能:Rd (Rm*Rs+Rn)31:066TM66 MLA乘-累加(32位结果)其中:其中: 为指令执行的条件码。当为指令执行的条件码。当忽略时指令忽略时指令为无条件执行。为无条件执行。n S决定指令的操作是否影响决定指令的操作是否影响CPSR中条件标志位中条件标志位N位和位和Z位的值。当没有位的值。当没有S时指令不更新时指令不更新CPSR中条件标志位的中条件标志位的值;当有值;当有S时指令更新时指令更新CPSR中条件标志位的值。中条件标志位的值。n 寄存器为目标寄存器。寄存器为目标寄存器。n 寄存器为第寄存器为第1个乘数所在的寄存器。个乘数所在的寄存器。n 为第为第2个乘数所在的寄存器。个乘数所在的寄存器。n 为第为第3个操作数所在的寄存器个操作数所在的寄存器,该操作数是一个加该操作数是一个加数数 67TM67 MLA乘-累加(32位结果)指令的使用指令的使用由于两个由于两个32的数相乘结果为的数相乘结果为64位,而位,而MLA指令仅仅保存指令仅仅保存了了64位结果低位结果低32位,所以对于带符号的和无符号的操作位,所以对于带符号的和无符号的操作数来说数来说MUL指令执行的果相同。指令执行的果相同。寄存器寄存器 为为R15时,指令执行的结果不时,指令执行的结果不可预测。可预测。示例解析示例解析68TM683. SMULL 有符号数长乘(64位)SMULL指令实现两个指令实现两个32位有符号数的乘积,乘积结果的位有符号数的乘积,乘积结果的高高32位存放到一个位存放到一个32位的寄存器的位的寄存器的,乘积结果,乘积结果的低的低32位存放到另一个位存放到另一个32位的寄存器的位的寄存器的,同时,同时根据运算结果设置根据运算结果设置CPSR寄存器中相应的条件标志位。寄存器中相应的条件标志位。指令的编码格式:指令的编码格式:69TM69SMULL 有符号数长乘(64位)指令的语法格式:指令的语法格式:SMULL S , , 功能:功能:RdHi:RdLo Rm*Rs其中:其中:n 寄存器存放乘积结果的高寄存器存放乘积结果的高32位数据。位数据。n 寄存器存放乘积结果的低寄存器存放乘积结果的低32位数据。位数据。n 其他参数用法参见其他参数用法参见MUL指令。指令。 70TM70SMULL 有符号数长乘(64位)指令的使用:指令的使用:n 寄存器寄存器 为为R15时,指令时,指令执行的结果不可预测。执行的结果不可预测。示例解析示例解析 71TM714. SMLAL 有符号数长乘-累加(64位)SMLAL指令将两个指令将两个32位有符号数的位有符号数的64位乘积结果与位乘积结果与 和和 中的中的64位数相加,加法结果的高位数相加,加法结果的高32位存放到一个位存放到一个32位的寄存器位的寄存器中,乘积结果的低中,乘积结果的低32位存放到另一个位存放到另一个32位的寄存器的位的寄存器的,同时根据,同时根据运算结果设置运算结果设置CPSR寄存器中相应的条件标志位。寄存器中相应的条件标志位。指令的编码格式:指令的编码格式:72TM72SMLAL 有符号数长乘-累加(64位)指令的语法格式:指令的语法格式:SMLAL S , , 功能:功能:RdHi:RdLo Rm*Rs+RdHi:RdLo其中:其中:n 寄存器在指令执行前存放寄存器在指令执行前存放64位加数的高位加数的高32位,位,指令执行后存放结果的高指令执行后存放结果的高32位数据。位数据。n 寄存器在指令执行前存放寄存器在指令执行前存放64位加数的低位加数的低32位,位,指令执行后存放结果的低指令执行后存放结果的低32位数据。位数据。n 其他参数用法参见其他参数用法参见MUL指令。指令。 73TM73SMLAL 有符号数长乘-累加(64位)n指令的使用:指令的使用:n 寄存器寄存器 为为R15时,指令时,指令执行的结果不可预测。执行的结果不可预测。示例解析示例解析 74TM745. UMULL 无符号数长乘(64位)UMULL指令实现两个指令实现两个32位有符号数的乘积,乘积结果的位有符号数的乘积,乘积结果的高高32位存放到一个位存放到一个32位的寄存器的位的寄存器的,乘积结果,乘积结果的低的低32位存放到另一个位存放到另一个32位的寄存器的位的寄存器的,同时,同时根据运算结果设置根据运算结果设置CPSR寄存器中相应的条件标志位。寄存器中相应的条件标志位。指令的编码格式:指令的编码格式:指令的语法格式:指令的语法格式:UMULL S , , 功能:功能:RdHi:RdLo Rm*Rs其中,各参数用法参见其中,各参数用法参见SMULL指令。指令。75TM75UMULL 无符号数长乘(64位)指令的使用:指令的使用:n 寄存器寄存器 为为R15时,指令时,指令执行的结果不可预测。执行的结果不可预测。示例解析示例解析 76TM766. UMLAL 无符号数长乘累加(64位)UMLAL指令将两个指令将两个32位无符号数的位无符号数的64位乘积结果与位乘积结果与 和和 中的中的64位无符号数相加,加法结果位无符号数相加,加法结果的高的高32位存放到一个位存放到一个32位的寄存器中,乘积结果的低位的寄存器中,乘积结果的低32位存放到另一个位存放到另一个32位的寄存器的位的寄存器的,同时根据运,同时根据运算结果设置算结果设置CPSR寄存器中相应的条件标志位。寄存器中相应的条件标志位。指令的编码格式:指令的编码格式:77TM77UMLAL 无符号数长乘累加(64位)指令的语法格式:指令的语法格式:UMLAL S , , 功能:功能:RdHi:RdLo Rm*Rs+RdHi:RdLo其中:其中:n 寄存器在指令执行前存放寄存器在指令执行前存放64位加数的高位加数的高32位位,指令执行后存放结果的高,指令执行后存放结果的高32位数据。位数据。n 寄存器在指令执行前存放寄存器在指令执行前存放64位加数的低位加数的低32位位,指令执行后存放结果的低,指令执行后存放结果的低32位数据。位数据。n 其他参数用法参见其他参数用法参见MUL指令。指令。 78TM78UMLAL 无符号数长乘累加(64位)指令的使用:指令的使用:n 寄存器寄存器 为为R15时,指令时,指令执行的结果不可预测。执行的结果不可预测。示例解析示例解析 79TM794.1.4Load/Store内存访问指令 Load指令用于从内存中读取数据放入寄存器中;指令用于从内存中读取数据放入寄存器中;Store指令用于将寄存器中的数据保存到内存。指令用于将寄存器中的数据保存到内存。ARM有有两大类的两大类的Load/Store指令:一类用于操作指令:一类用于操作32位的字类型位的字类型数据以及数据以及8位无符号的字节类型;另一类用于操作位无符号的字节类型;另一类用于操作16位位半字类型的数据以及半字类型的数据以及8位的有符号字节类型的数据。位的有符号字节类型的数据。80TM80 Load/Store内存访问指令LDR 字数据读取指令字数据读取指令LDRB 字节数据读取指令字节数据读取指令LDRBT 用户模式的字节数据读取指令用户模式的字节数据读取指令LDRH 半字数据读取指令半字数据读取指令LDRSB 有符号的字节数据读取指令有符号的字节数据读取指令LDRSH 有符号的半字数据读取指令有符号的半字数据读取指令LDRT 用户模式的字数据读取指令用户模式的字数据读取指令STR 字数据写入指令字数据写入指令STRB 字节数据写入指令字节数据写入指令STRBT 用户模式字节数据写入指令用户模式字节数据写入指令STRH 半字数据写入指令半字数据写入指令STRT 用户模式字节数据写入指令用户模式字节数据写入指令81TM811. LDR 字数据读取指令LDRLDR指令用于从内存中将一个指令用于从内存中将一个32位的字数据读取到指令位的字数据读取到指令中的目标寄存器中。中的目标寄存器中。对于对于little-endian内存模式,指令第一次想要读取的字节内存模式,指令第一次想要读取的字节数据存放在目标寄存器的低数据存放在目标寄存器的低8位;对于位;对于big-endian的内存的内存模式,指令第一次想要读取的字节数据存放在目标寄存模式,指令第一次想要读取的字节数据存放在目标寄存器的器的bits31:2482TM82LDR 字数据读取指令n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nLDR , nI:0立即数;立即数;1移位寄存器移位寄存器nP:前:前/后变址后变址 nU:加:加/减减 ;W:回写:回写nL:读取:读取/存储存储83TM83LDR 字数据读取指令其中:其中:n 为指令执行的条件码。当为指令执行的条件码。当忽略时指令忽略时指令为无条件执行。为无条件执行。n 寄存器为目标寄存器。寄存器为目标寄存器。n 为指令的寻址方式。为指令的寻址方式。 84TM84LDR 字数据读取指令指令的使用指令的使用用于从内存中读取用于从内存中读取32位字数据到通用寄存器中,然后可位字数据到通用寄存器中,然后可以在该寄存器中对数据进行一定的操作。以在该寄存器中对数据进行一定的操作。当当PC作为指令中的目标寄存器时,指令可以实现程序跳作为指令中的目标寄存器时,指令可以实现程序跳转的功能。转的功能。示例解析示例解析85TM852.LDRB 字节数据读取指令 n LDRB指令用于从内存中将一个指令用于从内存中将一个8位的字节数据读取到位的字节数据读取到指令中的目标寄存器中。并将寄存器的高指令中的目标寄存器中。并将寄存器的高24位清零。位清零。n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nLDRB , n各参数用法参见各参数用法参见LDR指令。指令。86TM86 LDRB 字节数据读取指令 指令的使用指令的使用用于从内存中读取用于从内存中读取8位字节数据到通用寄存器中,然后可位字节数据到通用寄存器中,然后可以在该寄存器中对数据进行一定的操作。以在该寄存器中对数据进行一定的操作。当当PC作为指令中的目标寄存器时,指令可以实现程序跳作为指令中的目标寄存器时,指令可以实现程序跳转的功能。转的功能。87TM873.LDRBT 用户模式的字节数据读取指令 nLDRBT指令用于从内存中将一个指令用于从内存中将一个8位的字节数据读取到指位的字节数据读取到指令中的目标寄存器中。并将寄存器的高令中的目标寄存器中。并将寄存器的高24位清零。当在特位清零。当在特权级的处理器模式下使用本指令时,内存系统将该操作当权级的处理器模式下使用本指令时,内存系统将该操作当作一般用户模式下的内存访问操作作一般用户模式下的内存访问操作n指令的编码格式:指令的编码格式:n指令的语法格式指令的语法格式(只进行后变址回写寻址方式)(只进行后变址回写寻址方式)LDRBT , n各参数用法参见各参数用法参见LDR指令。指令。88TM88 LDRBT 用户模式的字节数据读取指令 指令的使用指令的使用n 异常中断程序是在特权级的处理器模式下异常中断程序是在特权级的处理器模式下执行的,这时如果需要按照用户模式的权限访问执行的,这时如果需要按照用户模式的权限访问内存,可以使用内存,可以使用LDRBT指令。指令。89TM894.LDRH(无符号半字数据读取指令)n LDRH指令用于从内存中将一个指令用于从内存中将一个16位的无符号半字节数据位的无符号半字节数据读取到指令中的目标寄存器中。并将寄存器的高读取到指令中的目标寄存器中。并将寄存器的高16位清零。位清零。如果指令中的内存地址不是半字对齐的,指令会产生不可预如果指令中的内存地址不是半字对齐的,指令会产生不可预知的结果。知的结果。n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nLDRH , n各参数用法参见各参数用法参见LDR指令。指令。n22:0寄存器;寄存器;1立即数立即数90TM90 LDRH(半字数据读取指令)指令的使用:指令的使用: LDRH指令通常的用法有以下两种:指令通常的用法有以下两种:用于从内存中读取用于从内存中读取16位半字数据到通用寄存器中,然后位半字数据到通用寄存器中,然后可以在该寄存器中对数据进行一定的操作。可以在该寄存器中对数据进行一定的操作。当当PC作为指令中的目标寄存器时,指令可以实现程序跳作为指令中的目标寄存器时,指令可以实现程序跳转的功能。转的功能。示例解析示例解析91TM915.LDRSB(有符号的字节数据读取指令)n LDRSB指令用于从内存中将一个指令用于从内存中将一个8位的字节数据读取位的字节数据读取到指令中的目标寄存器中。并将寄存器的高到指令中的目标寄存器中。并将寄存器的高24位设置成该字位设置成该字节数据的符号位。节数据的符号位。n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nLDRSB , n各参数用法参见各参数用法参见LDR指令。指令。92TM92 LDRSB(有符号的字节数据读取指令)指令的使用指令的使用用于从内存中读取用于从内存中读取8位有符号字节数据到通用寄存器中,位有符号字节数据到通用寄存器中,然后可以在该寄存器中对数据进行一定的操作。然后可以在该寄存器中对数据进行一定的操作。当当PC作为指令中的目标寄存器时,指令可以实现程序跳作为指令中的目标寄存器时,指令可以实现程序跳转的功能。转的功能。93TM936.LDRSH(有符号的半字数据读取指令)n LDRSH指令用于从内存中将一个指令用于从内存中将一个16位的半字数据读取位的半字数据读取到指令中的目标寄存器中。并将寄存器的高到指令中的目标寄存器中。并将寄存器的高16位设置成该半位设置成该半字数据的符号位的值。字数据的符号位的值。n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nLDRSH , n其中,各参数用法参见其中,各参数用法参见LDR指令。指令。94TM94 LDRSH(有符号的半字数据读取指令)指令的使用指令的使用用于从内存中读取用于从内存中读取16位有符号半字数据到通用寄存器中位有符号半字数据到通用寄存器中,然后可以在该寄存器中对数据进行一定的操作。,然后可以在该寄存器中对数据进行一定的操作。当当PC作为指令中的目标寄存器时,指令可以实现程序跳作为指令中的目标寄存器时,指令可以实现程序跳转的功能。转的功能。95TM957. LDRT(用户模式的字数据读取指令)LDRT指令用于从内存中将一个指令用于从内存中将一个32位的字数据读取到指令位的字数据读取到指令中的目标寄存器中。对于中的目标寄存器中。对于little-endian内存模式,指令第内存模式,指令第一次想要读取的字节数据存放在目标寄存器的低一次想要读取的字节数据存放在目标寄存器的低8位;对位;对于于big-endian的内存模式,指令第一次想要读取的字节的内存模式,指令第一次想要读取的字节数据存放在目标寄存器的数据存放在目标寄存器的bits31:24。当在特权极的处理器模式下使用本指令时,内存系统将当在特权极的处理器模式下使用本指令时,内存系统将该操作当作一般用户模式下的内存访问操作该操作当作一般用户模式下的内存访问操作96TM96 LDRT(用户模式的字数据读取指令)n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nLDRT , n其中,各参数用法参见其中,各参数用法参见LDR指令。指令。97TM97 LDRT(用户模式的字数据读取指令)指令的使用:指令的使用: 异常中断程序是在特权级的处理器模式下执行的异常中断程序是在特权级的处理器模式下执行的,这时如果需要按照用户模式的权限访问内存,可以使,这时如果需要按照用户模式的权限访问内存,可以使用用LDRT指令。指令。98TM98LDRSB/SH/T指令 示例解析示例解析99TM998. STR(字数据写入指令)n STR指令用于将一个指令用于将一个32位的字数据写入到指令中指定位的字数据写入到指令中指定的内存单元。的内存单元。n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nSTR , 100TM100 STR(字数据写入指令)其中:其中:n 为指令执行的条件码。当为指令执行的条件码。当忽略时指令忽略时指令为无条件执行。为无条件执行。n 寄存器为目标寄存器。寄存器为目标寄存器。n 为指令的寻址方式。为指令的寻址方式。n指令的使用指令的使用n STR指令用于将一个指令用于将一个32位的字数据写入到指令中指定位的字数据写入到指令中指定的内存单元。的内存单元。 101TM1019. STRB(字节数据写入指令)n STRB指令用于将一个指令用于将一个8位的字节数据写入到指令中指位的字节数据写入到指令中指定的内存单元,该字节数据为指令中存放源操作数的寄存器定的内存单元,该字节数据为指令中存放源操作数的寄存器的低的低8位。位。n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nSTRB , n其中,各参数用法参见其中,各参数用法参见LDR指令。指令。102TM102 STRB(字节数据写入指令)n指令的使用:指令的使用: STRB指令用于将寄存器中低指令用于将寄存器中低8位的字节数据写入到位的字节数据写入到指令中指定的内存单元。指令中指定的内存单元。 103TM10310. STRH(无符号半字数据写入指令)n STRH指令用于将一个指令用于将一个16位的半字数据写入到指令中位的半字数据写入到指令中指定的内存单元,该半字数据为指令中存放源操作数的寄存指定的内存单元,该半字数据为指令中存放源操作数的寄存器的低器的低16位。如果指令中的内存地址不是半字对齐的,指令位。如果指令中的内存地址不是半字对齐的,指令会产生不可预知的结果。会产生不可预知的结果。n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nSTRH , n其中,各参数用法参见其中,各参数用法参见LDR指令。指令。104TM104 STRH(半字数据写入指令)n指令的使用:指令的使用:n STRH指令用于将寄存器中低指令用于将寄存器中低16位的半字数据写入到位的半字数据写入到指令中指定的内存单元。指令中指定的内存单元。 105TM10511. STRT(用户模式的字数据写入指令)n STRT指令用于将一个指令用于将一个32位的字数据写入到指令中指位的字数据写入到指令中指定的内存单元。当在特权极的处理器模式下使用本指令时,定的内存单元。当在特权极的处理器模式下使用本指令时,内存系统将该操作当作一般用户模式下的内存访问操作内存系统将该操作当作一般用户模式下的内存访问操作n指令的编码格式:指令的编码格式:n指令的语法格式:指令的语法格式:nSTRT , n其中,各参数用法参见其中,各参数用法参见LDR指令。指令。106TM106 STRT(用户模式的字数据写入指令)
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!