首页1
发现
标签
搜索
注册
登录
首页
全书
全文
蜘蛛
搜索
注册
登录
搜索
软件工具 SofTool.CN
本次搜索耗时
1.062
秒,为您找到
112
个相关结果.
搜书籍
搜文档
01_开端
3996
2021-02-18
《ARM32 内核是如何启动?》
一切的开端 一切的开端 在经过解压缩、增强,并收到了设备树块(DTB) 之后,程序计数器(pc)被置于符号stext() 的物理地址(即文本段的开始)处,从而调用ARM32内核。 SofTool.CN Notes:DTB = Device Tree Block 这段代码可以参考Linux内核源码:arch/arm/kernel/head.S...
CODE32
3781
2020-12-25
《ARM 汇编》
语法: CODE32 功能: CODE32伪指令通知编译器,其后的指令序列为32位的ARM指令。 若在汇编源程序中同时包含ARM指令和Thumb指令时,可用CODE16伪指令通知编译器其后的指令序列为16位的Thumb指令,CODE32伪指令 通知编译器其后的指令序列为32位的ARM指令。因此,在使用ARM指令和Thumb指令混合编程的代码里,...
简单编译
3743
2020-12-25
《GCC 基础入门》
示例程序如下: //hello.c #include <stdio.h> int main (void ) { printf ("Hello World!\n" ); return 0 ; } 这个程序,一步到位的编译指令是: gcc hello.c -o hello //补充: //前后顺序可以颠倒,即: gcc...
01_前言
3721
2021-01-02
《ARM汇编基本指令》
前期在学习《逆向工程实战》的过程中学习了ARM汇编(32位)相关基础知识和指令。 在这主要是对实际过程中碰到的一些指令含义的记录,以及对ARM64和ARM32的不同之处的学习,同时在最后的实战部分,将一小段ARM64汇编指令翻译成对应的c语言程序。
05_连续加载及存储
3616
2021-02-16
《ARM Assembly Basics [中文版]》
连续加载/存储 PUSH和POP 连续加载/存储 有时连续加载(存储)会显得更加高效。因为我们可以使用LDM(load multiple)以及STM(store multiple)。这些指令基于起始地址的不同,有不同的形式。下面是我们会在这一节用到的相关代码。在下文中会详细讲解。 .data array_buff: .word 0x000000...
06_页表
3597
2021-02-18
《ARM32 内核是如何启动?》
设置初始页表 ARM32页表格式: Linux页表的术语 设置初始页表 开始在虚拟内存中执行之前,我们必须设置一个MMU转译表,将物理内存映射到虚拟内存。这个表通常称为“页表”,尽管初始的映射使用的是节,而不是页。ARM架构要求页表必须放在物理内存中的偶数16KB边界上。而页表的尺寸也永远是16KB,所以这个要求很合理。 初始页表的位置由一个名...
01_汇编格式
3589
2021-01-22
《GNU ARM 汇编语法指南》
任何Linux汇编行都是如下结构: [<label>:][<instruction or directive or pseudo-instruction>} @comment 注释:: 表示 标号, GNU汇编中,任何以冒号结尾的标识符都被认为是一个标号,而不一定非要在一行的开始instruction 表示 指令directive 表示 伪操作...
CODE16
3580
2020-12-25
《ARM 汇编》
语法: CODE16 功能: CODE16伪指令通知编译器,其后的指令序列为16位的Thumb指令。 若在汇编源程序中同时包含ARM指令和Thumb指令时,可用CODE16伪指令通知编译器其后的指令序列为16位的Thumb指令,CODE32伪指令 通知编译器其后的指令序列为32位的ARM指令。因此,在使用ARM指令和Thumb指令混合编程的代码...
03_执行
3451
2021-02-18
《ARM32 内核是如何启动?》
在哪里执行? 在哪里执行? 我们继续看 arch/arm/kernel/head.S 处的符号 stext() 。 下一步就是处理在未知内存地址处运行的问题。 内核可以加载到任何地方(只要是合理的偶数地址 即可)并执行,所以我们要处理这一点。注意内核代码不是位置无关的,内核经过编译和连接后,必须在特定的地址执行。但我们还不知道这个地址。 内核...
09_重点
3436
2021-02-18
《ARM32 内核是如何启动?》
重点 重点 _mmapswitched 位于文件 arch/arm/kernel/head-common.S 中,会执行一些特殊的事情。 首先是一条异常语句,又是因为原地执行(XIP):尽管内核的 .text 段可以继续在ROM中执行,但无法在 .data 段中保存任何变量。所以首先需要通过将该段复制到RAM中,或者使用某些代码将其解压到RAM中的...
1..
«
4
5
6
7
»
..12