




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(完好版)ARM汇编指令英文全称及功能描绘V2.0(完好版)ARM汇编指令英文全称及功能描绘V2.0PAGEPAGE15(完好版)ARM汇编指令英文全称及功能描绘V2.0PAGE
ARM指令英文全称及功能描绘
V2.0
满光明12021年4月9日
转载请支持原创,保留此页信息,否那么将追查责任序言
我在工作前买了一本对于ARM指令的书本,当时出于方便记忆理解的考量,整理了
ARM指令,并且参加了英文的全称。认识了英文的全称,能够好的帮助记忆和理解。百度网盘里分享出来的
ARM指令英文全称我看了一下都是我当年整理的版本,但他们把作者的名字去掉了。几年过去了,ARM技术获得了巨大的进步,ARM以其低功耗、低本钱、高性能的优势抢占了挪动市场。相信在不远的将来,ARM会广泛运转在个人电脑和效力器上。在可穿着、边沿计算等前沿领域ARM拥有无与伦比的优势。作为一个技术控,工作以来我向来从事ARM有关的开发工作,计算机领域需要学习的东西太多,但好多根基知识都是相通的。我也希望能把自己这么多年的技术累积取出来分享给马上走上硬件开发、基层驱动开发的同仁们本篇仍旧以介绍ARM架构以及ARM指令为主,在本来的根基上从头调整了指令次序,第一介绍ARM架构不一样版本的差别,从而引出根本指令构造,最后详尽列出全部指令详表,加强可读性,易于理解。2一、ARM指令集版本历史计算机达成必定的操作经过指令来实现,不一样的指令方式被称为计算机架构,目前计算机主要有两大架构阵营,一是CISC〔ComplexInstructionSetComputers
〕复杂指令集架构,另一种是
RISC〔ReducedInstructionSetComputers
〕精简指令集架构。采纳
CISC架构的代表是
Intel
和AMD的
X86指令集,采纳
RISC架构的代表是
ARM指令集和
PowerPC指令集。ARM架构从出生到今日从V1版本已经升级到了
V8版本,各版本代表的分支型号以下表所示。架构
办理器家族
历史ARMv1ARMv2ARMv3
ARM1ARM2、ARM3ARM6、ARM7
最早由Acorn计算机企业设计,1985年开发出样本。1986年开发出ARM2,32位数据,26位地点空间。1990年设计团队构成新企业AdvancedRISCMachinesLtd.
〔安某国际〕3ARMv4StrongARM、ARM7TDMI、ARM9TDMIARMv5ARM7EJ、ARM9E、ARM10E、XScaleARMv6
ARM11、ARMCortex-MARMv7
ARMCortex-A
、ARMCortex-M
、ARMCortex-RCortex-A35
、Cortex-A50
系列[14]
、Cortex-A72
、ARMv8Cortex-A73从图中能够看出,Cortex-A9架构的CPU采纳的是ARMv7的指令集,目前高性能的64位视频办理,比方Cortex-A72,采纳的是ARMv8指令集。高版本的指令集合向下兼容低版本,在低版本的根基上增添了更多特别用途的指令集,比方浮点运算,CPU加快、数据安全等特别用途的指令集。4二、ARM指令集每种架构的CPU都有一组特别用途的寄存器,用来寄存从储存器读来数据或许指令编码,在ARM中,有一个特别的寄存器CPSR〔currentprogramstatusregister〕,用来寄存目前指令履行的状态。比方寄存数学运算结果的正负、借位、溢出等状况,详尽信息以下表所示。CPSRF(Flagsfieldmaskbyte)S(Statsfieldmaskbyte)X(Extensionfieldmaskbyte)C(controlfieldmaskbyte)fieldCPSR313029282726252423222120191817161514131211109876543210意义NZCVQDNZ(RAZ)系统扩展用IFTM4M3M2M1M05CPSR各位详尽意义
N目前指令运算结果为负时,N=1;结果为非负时,N=0Z运算结果为0,Z=1;否那么Z=0C上溢出、进位C=1;下溢出、借位C=0V加减法V=1表示符号位溢出II=1时,严禁IRQ中止FF=1时,严禁FIQ中止TT=0,ARM指令;T=1,Thumb指令0b10000User0b10001FIQ0b10010IRQM[4:0]0b10011Supervisor0b10111Abort0b11011Undefined0b11111System对于32位的CPU架构,ARM指令由32位机器码构成,依据编码格式,ARM指令固定的格式以下:313029282726252423222120191817161514131211109876543210CondOpcodeSRnRdShift_operand多半ARM指令能够条件履行,履行的结果能够影响CPSR寄存器的Z、N、C或许V等状态标记位。cond域不一样的值所代表不一样的意义。Opcode域代表详细的指令,S为指令的后缀,可加可不加,指令后缀带S表示该指令的结果会影响CPSR寄存器。指令的详尽编码格式以下。313029282726252423222120191817161514131211109876543210CondOpcodeSRnRdShift_operand6Cond指令履行的条件编码,详尽以下所示opcodebit27、26、25〕指令指令操作符编码〔更高版本的指令集操作码包括格式S决定指令的操作能否影响CPSR的值Rd目标寄存器编码Rn包括第一个操作数的寄存器编码Shift_oprand表示第二个操作数Cond域的编码对应的意义以下。31302928Cond域描绘0000EQZ=1Equal0001NEZ=0Notequal,orunordered0010CS/HSC=1Carryset/UnsignedhigherorsameGreatthanorequal,orunordered0011CC/LOC=0Carryclear/UnsignedlowerLessthan0100MIN=1NegativeLessthan0101PLN=0PositiveorzeroGreaterthanorequal,orunordered0110VSV=1OverflowUnordered0111VCV=0NooverflowNotunordered71000HIC=1且Z=0UnsignedhigherGreaterthan,orunordered1001LSC=0或Z=1UnsignedlowerorsameLessthanorequal1010GEN=1且V=1或N=0且V=0SignedgreaterthanorequalGreaterthanorequal1011LTN=1且V=0或N=0且V=1SignedlessthanLessthan,orunordered1100GTZ=0或N=VSignedgreaterthanGreatthan1101LEZ=1或N!=VSignedlessthanorequalLessthanorequal,orunordered1110ALAlways(unconditional)Opcode域的编码对应的意义以下。24232221Opcode域描绘0000ANDLogicalAND0001EORLogicalExclusiveOR0010SUBSubtract0011RSBReverseSubtract0100ADDAdd0101ADCAddwithCarry0110SBCSubtractwithCarry0111RSCReverseSubtractwithCarry81000TSTTest1001TEQTestEquivalence1010CMPCompare1011CMNCompareNegated1100ORRLogicalOR1101MOVMove1110BICBitClear1111MVNMoveNotARM指令及功能描绘详表指令格式:
"{}"中的内容可选。即,能够不带条件只有目的寄存器,或指令{条件}{S}{目的Register},{OP1},{OP2}只有目的寄存器和操作数1,也能够同时包括全部选项。“S〞决定指令的操作能否影响CPSR中条件标记位的值,当没有S时指令不更新CPSR中条件标记位的值助记符英文全称比如、功能BBranchBLabel;程序无条件跳转到标号Label处履行9
跳转指令数据办理
BLBranchwithLinkBLLabel;当程序无条件跳转到标号Label处履行时,同时将目前的PC值保留到R14中BLXBranchwithLinkandexchangeBLXLabel;从ARM指令集跳转到指令中所指定的目标地点,并将办理器的工作状态有ARM状态切换到Thumb状态,该指令同时将PC的目前内容保留到寄存器R14中BXBranchandexchangeBXLabel;跳转到指令中所指定的目标地点,目标地点处的指令既能够是ARM指令,也能够是Thumb指令MOVMoveMOVR1,R0,LSL#3;将寄存器R0的值左移3位后传递到R1MVNMoveNOTMVNR0,#0;将立刻数0取反传递到寄存器R0中,达成后R0=-1CMPCompareCMPR1,R0;将寄存器R1的值与寄存器R0的值相减,并依据结果设置CPSR的标记位CMNComparenegativeCMNR1,R0;将寄存器R1的值与寄存器R0的值相加,并依据结果设置CPSR的标记位TSTTestTSTR1,#0xffe;将寄存器R1的值与立刻数0xffe按位与,并依据结果设置CPSR的标记位TEQTestequivalenceTEQR1,R2;将寄存器R1的值与寄存器R2的值按位异或,并依据结果设置CPSR的标记位ADDAddADDR0,R2,R3,LSL#1;R0=R2+(R3<<1)ADCAddwithcarryADCSR2,R6,R10;R2=R6+R10+!C,且更新CPSR的进位标记位SUBSubtractSUBR0,R1,#256;R0=R1–256SBCSubtractwithcarrySUBSR0,R1,R2;R0=R1-R2-!C,并依据结果设置CPSR的进位标记位乘加指令10PSR接见加载/储存指令数据
RSBReversesubtractRSBR0,R1,R2;R0=R2–R1RSCReversesubtractwithcarryRSCR0,R1,R2;R0=R2–R1-!CANDAndANDR0,R0,#3;该指令保持R0的0、1位,其余位清零。ORRORORRR0,R0,#3;该指令设置R0的0、1位,其余位保持不变。EORExclusiveOREORR0,R0,#3;该指令反转R0的0、1位,其余位保持不变。BICBitclearBICR0,R0,#0b1011;该指令去除R0中的位0、1、和3,其余的位保持不变。CLZCountleftzero计算操作数最高端0的个数MULMultiplyMULR0,R1,R2;R0=R1×R2MLAMultiplyandaccumulateMLASR0,R1,R2,R3;R0=R1×R2+R3,同时设置CPSR中的有关条件标记位SMULLSignedmultiplylongSMULLR0,R1,R2,R3;R0=〔R2×R3〕的低32位R1=〔R2×R3〕的高32位SMLALSignedmullandaccumulatelSMLALR0,R1,R2,R3;R0=〔R2×R3〕的低32位+R0;R1=〔R2×R3〕的高32位+R1UMULLUnsignedmultiplylongUMULLR0,R1,R2,R3;R0=〔R2×R3〕的低32位;R1=〔R2×R3〕的高32位UMLALUnsignedmul&accumulatelonUMLALR0,R1,R2,R3;R0=〔R2×R3〕的低位+R0;R1=〔R2×R3〕的高32位+R1MRSMovePSRtoregisterMRSR0,CPSR;传递CPSR的内容到R0MSRMoveregistertoPSRMSRCPSR_c,R0;传递R0的内容到CPSR,但只是改正CPSR中的控制位域LDRLoadwordLDRR0,[R1,R2]!;将储存器地点为R1+R2的字数据读入R0,并将新地点R1+R2写入R1。LDRBLoadbyteLDRBR0,[R1,#8];将储存器地点为R1+8的字节数据读入R0,并将R0的高24位清零LDRHLoadhalfwordLDRHR0,[R1];将储存器地点为R1的半字数据读入寄存器R0,并将R0的高16位清零LDMLoadmultipleLDMFDR13!,{R0,R4-R12,PC};将货仓内容恢复到寄存器〔R0,R4到R12,LR〕STRStoreSTRR0,[R1],#8;将R0中的字数据写入R1为地点的储存器中,并将新地点R1+8写入R1STRBStorebyteSTRBR0,[R1,#8];将寄存器R0中的字节数据写入以R1+8为地点的储存器中STRHStorehalfwordSTRHR0,[R1,#8];将寄存器R0中的半字数据写入以R1+8为地点的储存器中STMStoremultipleSTMFDR13!,{R0,R4-R12,LR};将寄存器列表中的寄存器〔R0,R4到R12,LR〕存入货仓SWPSwapwordSWPR0,R1,[R2];R2所指的字数据传递到R0,同时R1的数据传递到R2所指的单元互换移位指令协办理器11并行指令前缀批量传输地点模式
SWPBSwapbyteLSLLogicshiftleftASLArithmeticshiftleftLSRLogicshiftrightASRArithmeticshiftrightRORRotaterightRRXRotaterightextendedCDPDataoperationsLDCLoadSTCStoreMCRMovetocoprocfrARMregMRCMtoARMregfrcoprocessorSQSHUUQUHBlockload/storeIAIncrementafterIBIncrementbeforeDADecrementafter
SWPBR0,R1,[R2];R2所指的字节数据传递到R0,R0高24位清零,同时R1低8位送R2所指单元。MOVR0,R1,LSL#2〔ASL#2〕;将R1中的内容左移两位后传递到R0中,低位用0填补MOVR0,R1,LSR#2;将R1中的内容右移两位后传递到R0中,左端用零来填补MOVR0,R1,ASR#2;将R1中的内容右移两位后传递到R0中,左端用第31位的值来填补MOVR0,R1,ROR#2;将R1中的内容循环右移两位后传递到R0中左端用进位标记位C来填补Signedarithmeticmodulo28or216,setsCPSRGEbitSignedsaturatingarithmeticSignedarithmetic,halvingresultsUnsignedarithmeticmodulo28or216,setsCPSRGEbitUnsignedsaturatingarithmeticUnsignedarithmetic,halvingresultsStackpop/pushFDFulldescendingEDEmptydescendingFAFullascendingDBDecrementbeforeEAEmptyascending立刻寻址ADDR0,R0,#0x3fR0←R0+0x3f寄存器寻址ADDR0,R1,R2R0←R1+R2ARM间接寻址ADDR0,R1,[R2]R0←R1+[R2]LDRR0,[R1,#4]R0←[R1+4]指令LDRR0,[R1,#4]!R0←[R1+4]、R1←R1+4寻址变址寻址LDRR0,[R1],#4R0←[R1]、R1←R1+4方式LDRR0,[R1,R2]R0←[R1+R2]多寄存器寻址LDMIAR0,{R1,R2,R3,R4}R1←[R0];R2←[R0+4];R3←[R0+8];R4←[R0+12]伪指令及伪操作GBLA/LCLA定义一个全局/局部的数字变量,并初始化为012GBLL/LCLL定义一个全局/局部的逻辑变量,并初始化为F〔假〕符号/局部的字符串变量,并初始化为空GBLS/LCLS定义一个全局定义SETA/SETL/SETS给一个数学/逻辑/字符串变量赋值RLIST对一个通用寄存器列表定义名称,接见序次为依据寄存器的编号由低到高,与摆列序次没关DCB〔=〕/DCW〔DCWU〕分派一片连续的字节/半字储存单元并用指定的数据初始化DCFS〔DCFSU〕/DCFD〔DCFDU〕后缀U表示分派一片连续的〔单/双精度的浮点数〕字储存单元并用指定的数据初始化不要求对齐DCQ〔DCQU〕/DCD〔DCDU〕用于分派一片以双字/字为单位的连续的储存单元并用指定的数据初始化数据R9的偏移量DCDO分派字内存希望,初始化为标号鉴于静态基址寄存器定义DCI和DCD近似,不一样处在于DCI内存中的数据被表记为指令SPACE〔%〕DataSpaceSPACE100;分派连续100字节的储存单元并初始化为0MAP〔^〕MAP0x100,R0;定义构造化内存表首地点的值为0x100+R0控制指令13
IF、ELSE、ENDIFWHILE、WENDMACRO、MENDMEXITAREAALIGNCODEENTRY
FIELD〔#〕IF表达式指令序列1ELSE指令序列2ENDIFWHILE表达式指令序列WENDMACRO$号宏名$参数1,$参数2,⋯⋯指令序列MENDAREA段名属性1,属性2,⋯⋯AREAInit,CODE,ALIEN=3CODE16、CODE32
AFIELD16;定A的度16字IF、ELSE、ENDIF指令能依据条件的建立与反对定能否行某个指令序列。当IF后边的表达式真,行指令序列1,否行指令序列2。此中,ELSE及指令序列2能够没有,此,当IF后边的表达式真,行指令序列1,否行后边的指
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代理转包合同范例
- 亲人之间借贷合同范例
- 乌鲁木齐店铺转让合同范例
- 交通疏解合同范例
- oem贴牌合同范例
- 人才入住合同范例
- 鲁棒子空间聚类算法及应用研究
- 农村蔬菜销售合同范例
- 指向地理综合思维培养的学科融合教学策略研究
- 几类BCH码的参数研究
- GB/T 44592-2024红树林生态保护修复技术规程
- 传感器技术-武汉大学
- 初中数学建模研究报告
- 人教A版(2019)高中数学选择性必修第二册 《数列的相关概念》教学设计
- 虚劳中医护理方案
- 2024至2030年中国调味品市场前景预测及投资研究报告
- 江苏省南通市通州区通州区育才中学2023-2024学年英语八下期末检测试题含答案
- 【美妆产品的直播带货营销策略探究:以花西子彩妆为例12000字(论文)】
- 静配中心肠外营养液TPN药物配置的操作方法课件
- 2024年浙江省宁波市外事服务中心招聘2人历年(高频重点复习提升训练)共500题附带答案详解
- 废活性炭管理制度范文
评论
0/150
提交评论