ARM汇编指令集,ARM程序开发必备文档。详解分类介绍ARM指令。
上传时间: 2016-02-03
上传用户:baitouyu
ARM微处理器的指令系统,arm指令集,各种操作
上传时间: 2016-12-05
上传用户:a6697238
ARM处理器有两种工作状态ARM和Thumb(Jazelle此处先不考虑)。这两种工作状态和运行模式没有任何关系。比如不论是ARM还是Thumb状态的代码都可以运行在用户模式下。这两种工作状态之间最大的差异是指令集,ARM状态的指令长度是32位的,Thumb状态的指令长度是16位的(也可能为32位)。了解如何使用Thumb工作状态对于编写ARM平台的漏洞利用是至关重要的。当我们编写ARM shellcode时,需要使用16 bit的Thumb指令代替32 bit的ARM指令,从而避免在指令中出现’\0’截断。容易引起混淆的是,不同的ARM版本,支持的Thumb指令集并不相同。在某些版本中,ARM引入了扩展的Thumb指令集(也就是Thumb-2),它支持32 bit指令以及条件执行。这在原本的Thumb指令中都是不受支持的。为了在Thumb状态下支持条件执行,“it”指令被引入。然而,可能是为了简化指令集,这个指令在后来的版本中被删除了。我认为这种设计反而增加了兼容的复杂度。不过,当然我认为没必要知道所有ARM版本的ARM/Thumb指令集变体,我建议你也不必在这上面浪费太多时间。你只需要知道目标设备的版本和该版本对Thumb指令有哪些特殊支持,然后调整你的代码就好了。ARM Infocenter可以帮助你了解各个ARM版本的具体细节
上传时间: 2022-02-10
上传用户:
这个PDF的内容是ARM汇编指令和伪操作,还有一些指令示例。
上传时间: 2022-05-20
上传用户:wangshoupeng199
常用ARM7TDMI(-S)指令集及汇编,
上传时间: 2013-06-28
上传用户:jhksyghr
SoC(System On a Chip)又称为片上系统,是指将微处理器、模拟IP核、数字IP核和存储器(或片外存储器接口)集成在单一芯片上。SoC产品不断朝着体积小、功能强的方向发展,芯片内部整合越来越多的功能。ARM架构作为嵌入式系统流行的应用,其应用的扩展面临软件扩充的问题,而X86平台上却有很多软件资源。若将已有的X86软件移植到ARM平台,则可以在一定程度上解决软件扩充的问题。 本论文针对X86指令在ARM中兼容的应用,以智能手机的应用为例,提出了基于ARM嵌入式平台,使用X86指令到ARM指令的二进制翻译模块,达到对X86指令的兼容。主要研究ARM公司的片上总线系统——AMBA AHB和AMBA APB片上总线标准。对Multi-layer总线结构进行研究,分析了Multi-layer AHB系统中使用的Bus Matrix模块的结构,从Bus Matrix模块的内部矩阵结构和系统架构两方面针对系统的特点作出优化。 最后介绍了论文采用的事物级模型与Verilog HDL协同仿真的方法和系统的控制过程,通过仿真结果的比较,验证了利用二进制翻译模块实现X86指令执行的可行性和优化后的架构较适合于X86翻译系统的应用。
上传时间: 2013-06-28
上传用户:钓鳌牧马
·本书从实用的角度出发,全面系统地介绍了ARM硬件体系结构、16/32位指令系统、开发调试、Linux嵌入式设计等开发ARM处理器的基本操作方法和技巧。全书共分11章,主要内容包括: ARM CPU概述、ARM系统结构、ARM指令系统、Thumb指令系统、ARM汇编语言程序设计、ARM高级语言程序设计、ARM嵌入式设计初步、ARM系统开发、ARM系统调试、ARM外围设备设计和ARM嵌入式Linux应
上传时间: 2013-06-24
上传用户:z1191176801
·内容简介 本书从51系列单片机的一般知识出发,将ARM处理器和51系列单片机进行对比,引导读者去理解和学习ARM处理器的知识。内容分为3部分:第1部分是前4章,从大家所熟悉的51系列单片机的基础知识开始,介绍ARM处理器的基本知识,包括ARM和51系列的对比、中断处理系统、寄存器和存储器结构等;第2部分是5~9章,详细比较ARM指令和51系列指令之间
上传时间: 2013-07-21
上传用户:WANGXIAN001
ARM处理器的工作模式 ARM处理器状态 ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:第一种为ARM状态,此时处理器执行32位的字对齐的ARM指令;第二种为Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。在程序的执行过程中,微处理器可以随时在两种工作状态之间切换,并且,处理器工作状态的转变并不影响处理器的工作模式和相应寄存器中的内容。但ARM微处理器在开始执行代码时,应该处于ARM状态。 ARM处理器状态 进入Thumb状态:当操作数寄存器的状态位(位0)为1时,可以采用执行BX指令的方法,使微处理器从ARM状态切换到Thumb状态。此外,当处理器处于Thumb状态时发生异常(如IRQ、FIQ、Undef、Abort、SWI等),则异常处理返回时,自动切换到Thumb状态。 进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令时可以使微处理器从Thumb状态切换到ARM状态。此外,在处理器进行异常处理时,把PC指针放入异常模式链接寄存器中,并从异常向量地址开始执行程序,也可以使处理器切换到ARM状态。ARM处理器模式 ARM微处理器支持7种运行模式,分别为:用户模式(usr):ARM处理器正常的程序执行状态。快速中断模式(fiq):用于高速数据传输或通道处理。外部中断模式(irq):用于通用的中断处理。管理模式(svc):操作系统使用的保护模式。数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。系统模式(sys):运行具有特权的操作系统任务。定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。ARM处理器模式 ARM微处理器的运行模式可以通过软件改变,也可以通过外部中断或异常处理改变。大多数的应用程序运行在用户模式下,当处理器运行在用户模式下时,某些被保护的系统资源是不能被访问的。 除用户模式以外,其余的所有6种模式称之为非用户模式,或特权模式;其中除去用户模式和系统模式以外的5种又称为异常模式,常用于处理中断或异常,以及需要访问受保护的系统资源等情况。ARM寄存器 ARM处理器共有37个寄存器。其中包括:31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。以及6个32位状态寄存器。 关于寄存器这里就不详细介绍了,有兴趣的人可以上网找找,很多这方面的资料。异常处理 当正常的程序执行流程发生暂时的停止时,称之为异常,例如处理一个外部的中断请求。在处理异常之前,当前处理器的状态必须保留,这样当异常处理完成之后,当前程序可以继续执行。处理器允许多个异常同时发生,它们将会按固定的优先级进行处理。当一个异常出现以后,ARM微处理器会执行以下几步操作:进入异常处理的基本步骤:将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。将CPSR复制到相应的SPSR中。根据异常类型,强制设置CPSR的运行模式位。强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时,处理器自动切换到ARM状态。 ARM微处理器对异常的响应过程用伪码可以描述为: R14_ = Return LinkSPSR_= CPSRCPSR[4:0] = Exception Mode NumberCPSR[5] = 0 ;当运行于 ARM 工作状态时If == Reset or FIQ then;当响应 FIQ 异常时,禁止新的 FIQ 异常CPSR[6] = 1PSR[7] = 1PC = Exception Vector Address异常处理完毕之后,ARM微处理器会执行以下几步操作从异常返回:将连接寄存器LR的值减去相应的偏移量后送到PC中。将SPSR复制回CPSR中。若在进入异常处理时设置了中断禁止位,要在此清除。
上传时间: 2013-11-15
上传用户:hanbeidang
arm资料汇编,arm指令汇编
上传时间: 2014-11-03
上传用户:标点符号