版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Assemble Language of ARM13.3 ARM指令集o ARM指令集的六大类指令进行详细的描述n 跳转指令跳转指令n 数据处理指令数据处理指令n Load/store指令指令n 程序状态寄存器传输指令程序状态寄存器传输指令n 协处理器指令协处理器指令n 异常中断产生指令异常中断产生指令 Assemble Language of ARM2Assemble Language of ARM3o ARM指令具有以下特点:nARM指令集含有十分多的未定义指令;nARM指令代码域最高4位31:28是条件码域;nARM指令一般把位27:20作为指令码域;n位19:0包含立即数、寄存器和偏移
2、量等信息;nARM指令集为寄存器寻址安排4位代码,4位可寻址16个寄存器;n大多数情况下,目标寄存器Rd的寄存器编号存放在15:12位域;n位20是条件标志S存放位。Assemble Language of ARM4o ARM指令代码一般可以分为5个域:n 条件码域31:28 ,4位条件码共有16种组合;n 指令代码域27:20,除指令编码外、还包含几个很重要的指令特征位和可选后缀的编码;n 地址基址Rn域19:16,4位可编码R0-R15共16个寄存器;n 目标或源寄存器Rd域15:12,4位可编码R0-R15共16个寄存器;n 地址偏移或操作寄存器、操作数域11:0。Assemble La
3、nguage of ARM5指令可选后缀 S后缀oS后缀的含义:n使用S后缀时,指令执行后程序状态寄存器的条件标志位将刷新;如:ADDS R3,R5,R8n不使用S后缀时,指令执行后程序状态寄存器的条件标志位将不发生变化。如:ADD R3,R5,R8oS后缀的使用范围:n有些指令不需要加S后缀,在执行时同样可以刷新条件标志位;如:CMP, TEQ, TST等。n有些指令不会引起条件标志位的变化,如:STR R5, R7oS后缀的使用目的:n在需要的时候,对条件进行测试。o在书写时,S后缀紧跟在指令助记符后面。Assemble Language of ARM6指令可选后缀 !后缀o !后缀的含义
4、:n在指令的地址表达式中含有!后缀时,指令执行后,基址寄存器中的地址将发生变化,变化的结果如下:o 基址寄存器中的地址值(指令执行后)指令执行前的值地址偏移量n如果指令不含!后缀,则地址值不会发生变化。o !后缀的位置和范围:n!后缀必须紧跟在表达地址的表达式后面,而地址表达式要有明确的地址偏移量;n!后缀不能用在R15的后面;n当使用在单个地址寄存器后面时,必须确信这个寄存器有隐性的偏移量,如:STMDB R1!, R3,R14 Assemble Language of ARM7指令可选后缀 B后缀/ H后缀o B后缀的含义:n 指令所涉及的数据是一字节,不是一字或半字。如:LDRB R0,
5、 R1,#4o B后缀的位置:n B后缀紧跟在指令助记符后面。Assemble Language of ARM8指令可选后缀 T后缀o T后缀的含义:n 指令在特权模式下对存储器的访问,将被存储器看成是用户模式的访问。o T后缀的限制:n 一般只用在字传送和无符号字节传送中;n 在用户模式下不可选用,选用是没有意义的;n 不能与事先更新寻址一起使用。Assemble Language of ARM9指令可选后缀 条件后缀o条件后缀的定义:n如果满足后缀条件,则执行本条指令;否则不执行本条指令。o条件后缀只是影响指令的是否执行,不影响指令的内容。o条件后缀的说明:n条件后缀的含义为满足则执行,不
6、满足则不执行;n被测试条件位有Z、C、N和V;n条件后缀共有15种,其编码称条件码,为4位代码;n在指令代码中,条件码排列在最高4位31:28;n在汇编语言中,条件码助记符紧接在指令助记符后面;n无条件后缀AL应该省略不用。o条件后缀和S后缀的关系:n如果既选条件后缀也选S后缀,则书写中“S”排列在后面;n条件后缀是要测试条件标志位,而S后缀是要刷新条件标志位;n条件后缀要测试的是指令执行前的标志位,而S后缀是依据指令执行的结果改变条件标志。Assemble Language of ARM10o 3.3.1 跳转指令 跳转指令用于实现程序流程的跳转,在ARM程序中有两种方法可以实现程序流程的跳
7、转:n使用专门的跳转指令。使用专门的跳转指令。n直接向程序计数器直接向程序计数器PC写入跳转地址值。写入跳转地址值。 通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前结合使用 MOV LR,PC等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性地址空间的子程序调用。Assemble Language of ARM11o ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以下4条指令:n B 跳转指令跳转指令n BL 带返回的跳转指令带返回的跳转指令n BLX 带返回和状态切换的跳转指令带返回和状态切换的跳转指
8、令(ARM7不支持不支持)n BX 带状态切换的跳转指令带状态切换的跳转指令Assemble Language of ARM12跳转指令的编码o处理器把偏移量左移两位,进行符号扩展后再与PC相加 n跳转范围: 32 Mbyte (225)n如何执行如何执行长跳转长跳转?2831240Cond101L偏移量条件码区域条件码区域Linkbit0=Branch1=Branchwithlink232527直接向程序计数器直接向程序计数器PC写入跳转地址值(长跳转)写入跳转地址值(长跳转)Assemble Language of ARM13o 1、 B指令nB指令的格式为: B条件条件 目标地址目标地址
9、nB指令是最简单的跳转指令。一旦遇到一个 B 指令,ARM 处理器将立即跳转到给定的目标地址,从那里继续执行。o 注意存储在跳转指令中的实际值是相对当前注意存储在跳转指令中的实际值是相对当前PC值的一个值的一个偏移量,而不是一个绝对地址,它的值由汇编器来计算偏移量,而不是一个绝对地址,它的值由汇编器来计算(参考寻址方式中的相对寻址)。它是 24 位有符号数,有符号扩展为 32 位后左移两位,表示的有效偏移为 26 位(前后32MB的地址空间)。Assemble Language of ARM14oB指令的例子:nB Label;程序无条件跳转到标号Label处执行nCMP R1,0;当CPSR
10、寄存器中的Z条件码置位时,程序跳转到标号Label处执行BEQ Label o指令操作的伪代码:Assemble Language of ARM15o 2、 BL指令n BL指令的格式为:BL条件条件 目标地址目标地址nBL 是另一个跳转指令,但跳转之前,会在寄存器但跳转之前,会在寄存器R14中中保存保存PC的当前内容的当前内容,因此,可以通过将R14 的内容重新加载到PC中,来返回到跳转指令之后的那个指令处执行。n以下指令: BL Label;当程序无条件跳转到标号Label处执行时,同时将当前的PC值保存到R14中。该指令是实现子程序调用该指令是实现子程序调用的一个基本而常用的手段的一个基
11、本而常用的手段Assemble Language of ARM16条件跳转Assemble Language of ARM17o 3、 BLX指令nBLX指令的格式为: BLX 目标地址目标地址nBLX 目标地址指令从ARM指令集跳转到指令中所指定的目标地址,并将处理器的工作状态有ARM状态切换到Thumb状态,该指令同时将PC的当前内容保存到寄存器R14中。n因此,当子程序使用Thumb指令集,而调用者使用ARM指令集时,可以通过BLX指令实现子程序的调用和处理器工作状态的切换。同时,子程序的返回可以通过将寄存器R14值复制到PC中来完成。n本指令属于无条件执行的指令。本指令属于无条件执行的
12、指令。n从从ARM到到Thumb的状态切换,并可以通过的状态切换,并可以通过BX R14返回。返回。Assemble Language of ARM18n指令操作的伪代码:n指令编码中的bit24被作为目标地址的bit1Assemble Language of ARM19n BLX指令的格式为: BLX条件条件 nBLX条件 指令跳转到指令中所指定的目标地址,目标地址处的指令既可以是ARM指令,也可以是Thumb指令。目标地址处的指令类型由寄存器的bit0决定。n从从ARM到到ARM或或Thumb的状态切换。的状态切换。n指令操作的伪代码:Assemble Language of ARM20o
13、 4、 BX指令nBX指令的格式为:BX条件 nBX指令跳转到指令中所指定的目标地址,目标地址处的指令既可以是ARM指令,也可以是Thumb指令。n目标地址处的指令类型由寄存器的bit0决定。n指令操作的伪代码:Assemble Language of ARM21o三种子程序的返回方法:nBX R14nMOV PC, R14n当子程序入口中使用了STMFD R13!, ,R14时,可以用指令LDMFD R13!, ,PCAssemble Language of ARM22o3.3.2 数据处理指令数据处理指令可分为数据传送指令、算术逻辑运算指令和比较指令等。n 数据传送指令用于在寄存器和第二个
14、操作数之间进行数据的传输。n 算术逻辑运算指令完成常用的算术与逻辑的运算,该类指令不但将运算结果保存在目的寄存器中,同时更新CPSR中的相应条件标志位。n 比较指令不保存运算结果,只更新CPSR中相应的条件标志位。Shifter_operandRdRnsopcode001cond 31 28 27 25 24 21 20 19 16 15 12 11 8 7 0Assemble Language of ARM23o包括:n算术指令:ADDADCSUBSBCRSBRSCn逻辑指令:ANDORREORBICn比较指令:CMPCMNTSTTEQn数据搬移:MOVMVNo上述指令只能对寄存器操作,不能
15、针对存储器。上述指令只能对寄存器操作,不能针对存储器。o语法:S Rd, Rn, Operand2o比较指令影响标志位 -不指定Rdo数据搬移不指定Rno第二个操作数通过桶型移位器送到第二个操作数通过桶型移位器送到ALU中。中。Assemble Language of ARM24Assemble Language of ARM25桶型移位器LSL:LogicalLeftShiftASR:ArithmeticRightShiftDestinationCF0(无符号数)乘2DestinationCF除2,并保留符号位LSR:LogicalShiftRightROR:RotateRightDesti
16、nationCF.0(无符号数)除2DestinationCF位循环RRX:RotateRightExtended位轮换,从CF到MSB都参与操作DestinationCFAssemble Language of ARM26桶型移位器: 第二个操作数 寄存器, 可选择是否增加移位操作.n移位值可以是:o 5 bit 无符号整数o放在另一个寄存器的低字节(8bits)n用于常数乘法结果结果操作数操作数1BarrelShifter操作数操作数2ALU 立即数n8 bit ,大小范围0-255。o右移偶数位n允许直接加载32-bit 常数到寄存器中。Assemble Language of ARM2
17、7o 1、 MOV指令nMOV指令的格式为:MOV条件S 目的寄存器,源操作数nMOV指令可完成从另一个寄存器、被移位的寄存器或将一个立即数加载到目的寄存器。o 其中S选项决定指令的操作是否影响CPSR中条件标志位的值,当没有S时指令不更新CPSR中条件标志位的值。n当当PC作为目标寄存器且指令中作为目标寄存器且指令中S位被置位时,指令在执行位被置位时,指令在执行跳转操作的同时,将当前处理器模式的跳转操作的同时,将当前处理器模式的SPSR内容复制到内容复制到CPSR中。中。参见教材参见教材P.63伪代码伪代码MOVSPC,LR可以实现可以实现从某些异常中断中返回从某些异常中断中返回Assemb
18、le Language of ARM28n指令操作的伪代码:n指令示例: MOV R1,R0;将寄存器R0的值传送到寄存器R1 MOV PC,R14;将寄存器R14的值传送到PC,常用于子程序返回 MOV R1,R0,LSL3 ;将寄存器R0的值左移3位后传送到R1 MOV R1,123 ;将立即数123传送到R1Assemble Language of ARM29o 2、 MVN指令nMVN指令的格式为:MVN条件S 目的寄存器,源操作数nMVN指令可完成从另一个寄存器、被移位的寄存器、或将一个立即数加载到目的寄存器。n与MOV指令不同之处是在传送之前按位被取反按位被取反了,即把一个被取反的
19、值传送到目的寄存器中。o 其中S决定指令的操作是否影响CPSR中条件标志位的值,当没有S时指令不更新CPSR中条件标志位的值。Assemble Language of ARM30n指令示例:MVN R0,0;将立即数0取反传送到寄存器R0中,完成后?n指令操作的伪代码:R0=-1Assemble Language of ARM31o 3、 CMP指令nCMP指令的格式为:CMP条件 操作数1,操作数2nCMP指令用于把一个寄存器的内容和另一个寄存器的内容或立即数进行比较,同时更新CPSR中条件标志位的值。n该指令进行一次减法减法运算,但不存储结果,只更改条件标志位。标志位表示的是操作数1与操作
20、数2的关系(大、小、相等),例如,当操作数1大于操作操作数2,则此后的有GT 后缀的指令将可以执行。CMP指令与指令与SUBS指令的区别指令的区别在于在于CMP指令不保存操作结果指令不保存操作结果Assemble Language of ARM32n指令示例: CMP R1,R0;将寄存器R1的值与寄存器R0的值相减,并根据结果设置CPSR的标志位 CMP R1,100;将寄存器R1的值与立即数100相减,并根据结果设置CPSR的标志位n指令操作的伪代码:Assemble Language of ARM33o 4、 CMN指令nCMN指令的格式为:CMN条件 操作数1,操作数2nCMN指令用于
21、把一个寄存器的内容和另一个寄存器的内容或立即数取反后进行比较,同时更新CPSR中条件标志位的值。n该指令实际完成操作数1和操作数2相加相加,并根据结果更改条件标志位。Assemble Language of ARM34n指令示例: CMN R1,R0 ;将寄存器R1的值与寄存器R0的值相加,并根据结果设置CPSR的标志位 CMN R1,100;将寄存器R1的值与立即数100相加,并根据结果设置CPSR的标志位n指令操作的伪代码:Assemble Language of ARM35o 5、 TST指令nTST指令的格式为:TST条件 操作数1,操作数2nTST指令用于把一个寄存器的内容和另一个寄
22、存器的内容或立即数进行按位与运算按位与运算,并根据运算结果更新CPSR中条件标志位的值。n操作数1是要测试的数据,而操作数2是一个位掩码,该指令一般用来检测是否设置了特定的位。TST指令用于测试寄存器指令用于测试寄存器中某些位是中某些位是1还是还是0Assemble Language of ARM36n指令示例: TST R1,1;用于测试在寄存器R1中是否设置了最低位(表示二进制数) TST R1,0 xffe;将寄存器R1的值与立即数0 xffe按位与,并根据结果设置CPSR的标志位n指令操作的伪代码:Assemble Language of ARM37o 6、 TEQ指令nTEQ指令的格
23、式为:TEQ条件 操作数1,操作数2nTEQ指令用于把一个寄存器的内容和另一个寄存器的内容或立即数进行按位异或运算按位异或运算,并根据运算结果更新CPSR中条件标志位的值。TEQ指令通常用于比较操指令通常用于比较操作数作数1和操作数和操作数2是否相等是否相等Assemble Language of ARM38n指令示例:TEQ R1,R2;将寄存器R1的值与寄存器R2的值按位异或,并根据结果设置CPSR的标志位n指令操作的伪代码:Assemble Language of ARM39o 7、 ADD指令nADD指令的格式为:ADD条件S 目的寄存器,操作数1,操作数2nADD指令用于把两个操作数
24、相加,并将结果存放到目的寄存器中。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。Assemble Language of ARM40n指令示例: ADD R0,R1,R2 ; R0 = R1 + R2 ADD R0,R1,#256 ; R0 = R1 + 256 ADDS R0,R2,R3,LSL#1 ; R0 = R2 + (R3 1)n指令操作的伪代码:Assemble Language of ARM41o 8、 ADC指令nADC指令的格式为:ADC条件S 目的寄存器,操作数1,操作数2nADC指令用于把两个操作数相加,再加上CPSR中的C条件标志位的
25、值,并将结果存放到目的寄存器中。n它使用一个进位标志位,这样就可以做比它使用一个进位标志位,这样就可以做比32位大的数的加位大的数的加法,注意不要忘记设置法,注意不要忘记设置S后缀来更改进位标志后缀来更改进位标志。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。ADC指令和指令和ADD指令指令联合使用可以实现联合使用可以实现64位、位、128位的加法操作位的加法操作Assemble Language of ARM42n以下指令序列完成两个128位数的加法,第一个数由高到低存放在寄存器R7R4,第二个数由高到低存放在寄存器R11R8,运算结果由高到低存放在寄存器
26、R3R0:n指令操作的伪代码:ADDSR0,R4,R8;加低端的字ADCSR1,R5,R9;加第二个字,带进位ADCSR2,R6,R10;加第三个字,带进位ADCR3,R7,R11;加第四个字,带进位Assemble Language of ARM43o 9、 SUB指令nSUB指令的格式为:SUB条件S 目的寄存器,操作数1,操作数2nSUB指令用于把操作数1减去操作数2,并将结果存放到目的寄存器中。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。n该指令可用于有符号数或无符号数的减法运算。Assemble Language of ARM44n指令示例: S
27、UB R0,R1,R2 ; R0 = R1 - R2 SUB R0,R1,#256 ; R0 = R1 - 256 SUBS R0,R2,R3,LSL#1; R0 = R2 - (R3 1)n指令操作的伪代码:Assemble Language of ARM45o 10、SBC指令nSBC指令的格式为:SBC条件S 目的寄存器,操作数1,操作数2nSBC指令用于把操作数1减去操作数2,再减去CPSR中的C条件标志位的反码条件标志位的反码,并将结果存放到目的寄存器中。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。n该指令使用进位标志来表示借位,这样就可以做大于
28、该指令使用进位标志来表示借位,这样就可以做大于32位位的减法,注意不要忘记设置的减法,注意不要忘记设置S后缀来更改进位标志。后缀来更改进位标志。n该指令可用于有符号数或无符号数的减法运算。SBC指令和指令和SUB指令联合使指令联合使用可以实现用可以实现64位、位、128位的位的减法操作减法操作?Assemble Language of ARM46n指令示例: SBC R0,R1,R2 ;R0 = R1 - R2 - !C,并根据结果设置CPSR的进位标志位n指令操作的伪代码:Assemble Language of ARM47o 11、RSB指令nRSB指令的格式为:RSB条件S 目的寄存器,
29、操作数1,操作数2nRSB指令称为逆向减法指令,用于把操作数2减去操作数1,并将结果存放到目的寄存器中。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。n该指令可用于有符号数或无符号数的减法运算。Assemble Language of ARM48n指令示例: RSB R0,R1,R2 ; R0 = R2 R1 RSB R0,R1,#256 ; R0 = 256 R1 RSBS R0,R2,R3,LSL#1 ; R0 = (R3 1) - R2n指令操作的伪代码:Assemble Language of ARM49o 12、RSC指令nRSC指令的格式为:RS
30、C条件S 目的寄存器,操作数1,操作数2nRSC指令用于把操作数2减去操作数1,再减去CPSR中的C条件标志位的反码条件标志位的反码,并将结果存放到目的寄存器中。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。n该指令使用进位标志来表示借位,这样就可以做大于该指令使用进位标志来表示借位,这样就可以做大于32位位的减法,注意不要忘记设置的减法,注意不要忘记设置S后缀来更改进位标志。后缀来更改进位标志。n该指令可用于有符号数或无符号数的减法运算。RSC指令和指令和RSB指令联合指令联合使用可以实现使用可以实现64位、位、128位位的减法操作的减法操作Assembl
31、e Language of ARM50n指令示例:RSC R0,R1,R2 ; R0 = R2 R1 - !Cn指令操作的伪代码:Assemble Language of ARM51o 13、AND指令nAND指令的格式为:AND条件S 目的寄存器,操作数1,操作数2nAND指令用于在两个操作数上进行逻辑与运算逻辑与运算,并把结果放置到目的寄存器中。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。n该指令常用于屏蔽操作数该指令常用于屏蔽操作数1的某些位。的某些位。设置一个掩码值,设置一个掩码值,AND指令指令可以提取寄存器中某些位的可以提取寄存器中某些位的值值
32、Assemble Language of ARM52n指令示例:AND R0,R0,3 ; 该指令保持R0的0、1位,其余位清零。n指令操作的伪代码:Assemble Language of ARM53o 14、ORR指令nORR指令的格式为:ORR条件S 目的寄存器,操作数1,操作数2nORR指令用于在两个操作数上进行逻辑或运算逻辑或运算,并把结果放置到目的寄存器中。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。n该指令常用于设置操作数该指令常用于设置操作数1的某些位。的某些位。设置一个掩码值,设置一个掩码值,ORR指令指令可以设置寄存器中某些位的可以设置
33、寄存器中某些位的值为值为1Assemble Language of ARM54n指令示例: ORR R0,R0,3; 该指令设置R0的0、1位,其余位保持不变。n指令操作的伪代码:Assemble Language of ARM55o 15、EOR指令nEOR指令的格式为:EOR条件S 目的寄存器,操作数1,操作数2nEOR指令用于在两个操作数上进行逻辑异或运算逻辑异或运算,并把结果放置到目的寄存器中。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。n该指令常用于反转操作数该指令常用于反转操作数1的某些位。的某些位。设置一个掩码值,设置一个掩码值,EOR指令指
34、令可以将寄存器中某些位的值可以将寄存器中某些位的值取反取反Assemble Language of ARM56n指令示例: EOR R0,R0,3 ; 该指令反转R0的0、1位,其余位保持不变。n指令操作的伪代码:Assemble Language of ARM57o 16、BIC指令nBIC指令的格式为:BIC条件S 目的寄存器,操作数1,操作数2nBIC指令用于清除操作数1的某些位,并把结果放置到目的寄存器中。n操作数1应是一个寄存器,操作数2可以是一个寄存器,被移位的寄存器,或一个立即数。n操作数2为32位的掩码,如果在掩码中设置了某一位,如果在掩码中设置了某一位,则清除这一位则清除这一
35、位,未设置的掩码位保持不变未设置的掩码位保持不变。设置一个掩码值,设置一个掩码值,BIC指令可指令可以将寄存器中某些位的值设以将寄存器中某些位的值设置成置成0p.71 BIC指令的功能说明有误Assemble Language of ARM58n指令示例: BIC R0,R0,1011 ; 该指令清除 R0 中的位 0、1、和 3,其余的位保持不变。n指令操作的伪代码:Assemble Language of ARM59o3.3.3 乘法指令与乘加指令 ARM微处理器支持的乘法指令与乘加指令共有6条,可分为运算结果为32位和运算结果为64位两类,与前面的数据处理指令不同: 指令中的所有操作数、
36、目的寄存器必须为通用寄存器,指令中的所有操作数、目的寄存器必须为通用寄存器,不能对操作数使用立即数或被移位的寄存器不能对操作数使用立即数或被移位的寄存器; 同时,目的寄存器和操作数同时,目的寄存器和操作数1必须是不同的寄存器必须是不同的寄存器。 o乘法指令与乘加指令共有以下6条:nMUL 32位乘法指令nMLA 32位乘加指令nSMULL 64位有符号数乘法指令nSMLAL 64位有符号数乘加指令nUMULL 64位无符号数乘法指令nUMLAL 64位无符号数乘加指令Assemble Language of ARM60o 1、 MUL指令nMUL指令的格式为:MUL条件S 目的寄存器,操作数1
37、,操作数2nMUL指令完成将操作数1与操作数2的乘法运算,并把结果放置到目的寄存器中,同时可以根据运算结果设置CPSR中相应的条件标志位。o 其中,操作数1和操作数2均为32位的有符号数或无符号数。结果仅保存了结果仅保存了64位的低位的低32位位Assemble Language of ARM61n指令示例: MUL R0,R1,R2;R0 = R1 R2 MULS R0,R1,R2;R0 = R1 R2,同时设置CPSR中的相关条件标志位n指令操作的伪代码:Assemble Language of ARM62o 2、 MLA指令nMLA指令的格式为:MLA条件S 目的寄存器, 操作数1,操作
38、数2,操作数3nMLA指令完成将操作数1与操作数2的乘法运算,再将乘积加上操作数3,并把结果放置到目的寄存器中,同时可以根据运算结果设置CPSR中相应的条件标志位。o 其中,操作数1和操作数2均为32位的有符号数或无符号数。Assemble Language of ARM63n指令示例: MLA R0,R1,R2,R3 ;R0 = R1 R2 + R3 MLAS R0,R1,R2,R3 ;R0 = R1 R2 + R3,同时设置CPSR中的相关条件标志位n指令操作的伪代码:Assemble Language of ARM64o 3、 SMULL指令nSMULL指令的格式为:SMULL条件S 目的寄存器Low,目的寄存器低High,操作数1,操作数2nSMULL指令完成将操作数1与操作数2的乘法运算,并把结果的低32位放置到目的寄存器Low中,结果的高32位放置到目的寄存器High中,同时可以根据运算结果设置CPSR中相应的条件标志位。o 其中,操作数1和操作数2均为32位的有符号数。Assemble Language of ARM65n指令示例: SMULL R0,R1,R2,R3 ;R0 = (R2 R3)的低32位 ;R1 = (R2 R3)的高32位 n指令操作的伪代码:Assemble Language of ARM66o 4、 SMLAL指令nS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字化转型下H银行法人理财业务营销策略的创新与突破
- 2025 奇妙的空气动力实验作文课件
- 数字化赋能:中小企业工程预算管理系统的设计与实践探索
- 数字化赋能与动态更新:永泰县城区土地级别与基准地价的创新探索
- 数字化浪潮下海运电子物流系统的创新设计与实践应用
- 数字化浪潮下广告交易平台的创新设计与实践实现
- 数字化浪潮下北京工业大学通州分校游泳馆管理系统的创新构建与实践应用
- 数字化浪潮下中国元素在数字产品设计中的创新与传承
- 2025 一次旅行作文课件
- 2025年前台退房真题集
- 校园活动应急预案模板策划
- 2023年华南师范大学教师招聘考试历年真题库
- 课本剧《刘姥姥进大观园》剧本
- 长春版小学一年级语文上册写字表虚宫格写法教学提纲教学课件
- 湖南国际会展中心项目屋盖张弦梁施工技术交流
- 【教案】伴性遗传第1课时教学设计2022-2023学年高一下学期生物人教版必修2
- DL-T 807-2019 火力发电厂水处理用 201×7 强碱性阴离子交换树脂报废技术导则
- 简化的WHOQOL表WHOQOL-BREF-生活质量量表
- 语言学纲要(新)课件
- 经济责任审计的程序与方法
- 打靶归来 课件
评论
0/150
提交评论