arm nop

MOV R0,R0

这个语句相当于做一次无用功,也就相当于实现了NOP。      
接下去就是怎么修改机器码的部分。先查询手册,查到MOV
的机器码是0xE1A0(此处可能不同,主要看自己IDA反汇编出来的机器码是多少),然后用十六进制编辑器定位到最后一个BL的机器码,可直接用IDA
查看HEX VIEW-A。偏移位为:0x00060598,然后再用十六进制编辑器跳到该位置,将其十六进制改为00 00 A0
E1。(有人可能会问,为什么机器码明明是0xE1A0,改的时候却要变成0xA0E1,原因在于高八位和低八位在文件中是倒置的)。

时间: 2024-11-05 15:15:28

arm nop的相关文章

基于ARM处理器的反汇编器软件简单设计及实现

写在前面 2012年写的,仅供参考 反汇编的目的 缺乏某些必要的说明资料的情况下, 想获得某些软件系统的源代码.设计思想及理念, 以便复制, 改造.移植和发展: 从源码上对软件的可靠性和安全性进行验证,对那些直接与CPU 相关的目标代码进行安全性分析: 涉及的主要内容 分析ARM处理器指令的特点,以及编译以后可执行的二进制文件代码的特征: 将二进制机器代码经过指令和数据分开模块的加工处理: 分解标识出指令代码和数据代码: 然后将指令代码反汇编并加工成易于阅读的汇编指令形式的文件: 下面给出个示例

【嵌入式Linux+ARM】ARM体系结构与编程(ARM汇编指令)

自己的一些简单的总结,也是最常用的ARM汇编指令,之后也会不断的补充完善. 1. 汇编系统预定义的段名 .text    @代码段 .data   @初始化数据段 .bss    @未初始化数据段 需要注意的是,源程序中.bss段应该在.text之前. 2.定义入口点 汇编程序的缺省入口是 start标号,用户也可以在连接脚本文件中用ENTRY标志指明其它入口点. .text .global _start _start: 3 .word用法 word expression就是在当前位置放一个wo

ARM伪指令

ARM 伪指令 在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作.伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成. 在 ARM 的汇编程序中,有如下几种伪指令:符号定义伪指令.数据定义伪指令.汇编控制伪指令.宏指令以及其他伪指令. 符号定义( Symbol Definition )伪指令 符号定义伪指令用于定

ARM汇编- LDR加载指令,LDR伪指令

1,ldr加载指令LDR指令的格式为:LDR{条件}  目的寄存器,<存储器地址>LDR指令用亍从存储器中将一个32位的字数据传送到目的寄存器中.该指令通常用亍从存储器中读取32位的字数据到通用寄存器,然后对数据迕行处理.当程序计数器PC作为目的寄存器时,指令从存储器中读取的字数据被当作目的地址,从而可以实现程序流程的跳转.该指令在程序设计中比较常用,丏寻址方式灵活多样,请读者认真掌握.指令示例: LDR R0,[R1]                                     

ARM指令分类学习

指令分类: 1.算数和逻辑指令 2.比较指令 3.跳转指令 4.移位指令 5.程序状态字访问指令 6.存储器访问指令 ++++++++++++++++++++++++++++++++++++++++++++++++++ 学习指令的资料<arm汇编手册(中文版).chm> ,注:这个资料是 ARM汇编手册,我们用的是GNU的汇编,所以语法 大小写上是有差别的. 使用上一篇文章中的汇编程序来,学习使用每个指令的用法. 一.算数和逻辑指令 1.mov指令 作用.格式.例子 从另一个寄存器.被移位的寄

ARM 汇编指令集

转载,方便查找用. ARM汇编指令集 一. 跳转指令    跳转指令用于实现程序流程的跳转,在ARM程序中有两种方法可以实现程序流程的跳转: Ⅰ.使用专门的跳转指令. Ⅱ.直接向程序计数器PC写入跳转地址值. 通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前结合使用 MOV LR,PC 等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性地址空间的子程序调用. ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以

NOP使用注意事项

在51内核中 C语言可以使用_nop_()延时或者汇编语言NOP.并且一般是要加上 #include <intrins.h> 而在ARM内核中 C语言可以使用__nop()延时或者汇编语言NOP延时. __nop()函数我是在<intrinsics.h>中找到的,但添加到C程序中会错误,直接引用__nop();就没有问题. 不同的内核NOP延时函数不相同.

12.ARM伪指令操作

12.ARM伪指令操作 首先ARM伪指令包括: ARM机器码 定义类伪指令 操作类伪指令 ? ARM机器码: 其实任何一种处理器可以运行的叫机器码,机器码是从汇编程序通过汇编器转换来的.接下来看看机器码的信息.流程:图1-1. 图1-1 在上一节里,建立好了一个简单的汇编工程,在start.S只有三行代码:图1-2: 图1-2 接下来对产生的elf文件来进行反汇编,命令是: arm-linux-objdump -D -S gboot.elf >dump,将反汇编的代码存到dump文件,dump文

arm汇编

(汇编)指令是CPU机器指令的助记符,经过编译后会得到一串10组成的机器码,可以由CPU读取执行.(汇编)伪指令本质上不是指令(只是和指令一起写在代码中),它是编译器环境提供的,目的是用来指导编译过程,经过编译后伪指令最终不会生成机器码. ARM官方的ARM汇编风格:指令一般用大写.Windows中IDE开发环境(如ADS.MDK等)常用.如: LDR R0, [R1] GNU风格的ARM汇编:指令一般用小写字母.linux中常用.如:ldr r0, [r1] ARM采用RISC架构,CPU本身