摘要:
ELF文件格式第三讲,节头(section header) 一丶节头 1.1 概念简介 段(segment) 和 节(section)是有区别的。 节不是段。 段是程序执行的必要组成部分。 在每个段中会有代码或者数据被划分为不同的节。 而 节头表 则是对这些节的位置和大小的描述,主要是用于链接和 阅读全文
摘要:
Elf第二讲,ELF程序头 一丶简介 1.1 简介 ELF 程序头是对二进制文件中段的描述,是程序装载必须的一部分。段(segment) 是在内核装载时被解析的。主要作用就是描述磁盘上可执行文件的内存布局以及如何映射到内存中。可以通过引用原始的ELF头中名为: **e_phoff**(程序头表的偏移 阅读全文
摘要:
Elf文件格式 ELF32or64 前言 本文参考链接: https://segmentfault.com/a/1190000007103522?utm_source=tuicool&utm_medium=referral 非原创。 在学习ELF的过程中记录自己学习的历程。 参考数据: LINUX二 阅读全文
摘要:
Linux gdb调试 一丶GDB 1.1 简介 GDB是一个在UNIX(LINUX)环境下的命令行调试工具。如果调试C/C程序可以在gcc/g 编译生成的时候加上-g选项。 参考资料来自于: vim+GDB 某博客作者 二丶命令介绍 2.1 GDB调试程序 2.1.1 GDB调试 GDB调试一 阅读全文
摘要:
Arm入门第八讲,ARM中的寻址方式。 一丶寻址方式 1.1 什么是寻址 寻址方式就是处理器根据指令中给出的地址信息来寻找物理地址的方式。ARM指令系统支持如下几种常见的寻址方式。 1.2 寻址方式 立即寻址 立即寻址,也称为立即数寻址,这是一种特殊的寻址方式,操作数本身就在指令中给出,只要取出 阅读全文
摘要:
Arm入门第七讲,Thumb 与ARM子程序。 一丶Thumb 1.1 什么是Thumb Thumb 指令集是16bit指令集,是为了兼容数据总线宽度为16位的应用系统,Arm体系结构除了支持执行效率很高的32位Arm指令集以外,同时也支持16位的Thumb指令集。可以说Thumb是Arm指令集的一 阅读全文
摘要:
Arm入门第六讲 伪指令与Load/Store架构 ARM 汇编器支持ARM伪指令,这些伪指令在汇编阶段被翻译成ARM或者Thumb(or Thumb-2)指令(或者指令序列) ARM伪指令不是ARM指令集中的指令,只是为了编程方便,编译器定义了伪指令。 使用的时候可以像其它的ARM指令一样使用,但 阅读全文
摘要:
Arm入门学习第五讲,乘丶除丶跳转丶中断丶交换指令 一丶乘法 1.1 乘法指令简介 ARM微处理器支持的乘法指令与乘加指令共有六条,可分为运算结果为32位和运算结果位64位 的两类,与数据处理指令不同,指令中所有的操作数丶目的寄存器必须为 通用寄存器 不能对操作数使用立即数 或被移位的寄存器 同 阅读全文
摘要:
Arm入门第四讲 Arm指令集学习上 一丶Arm汇编指令学习 1.1 Arm的加减汇编指令 Arm的加减汇编指令分为如下: ADD 加法指令 ADC 带进位加法指令 SUB 减法指令 SBC 带借位的减法指令 RSB 逆向减法指令 RSC 带借位的逆向减法指令 ADD加法指令 ADD 指令,是用于把 阅读全文
摘要:
Arm入门第三讲 Arm指令集学习 一丶Arm指令集 1.1 Arm指令集特点 1.所有指令都是定长的: 4个字节以内 x86指令是变长的可以很长很长. 2.大部分指令都可以在一个时钟周期内完成.这比x86好多了 x86为了优化指令周期才会进行代码优化 3.每一条指令都可以有条件执行. (ADD, 阅读全文