【Android 逆向】【ARM汇编】 arm64部分知识

arm64寄存器更多 X0-X30 SP CPSR PC 64位 W0-W30 32位 PC寄存器的值禁止修改 参数放在 X0-X7/W0-W7 结果放在 X0 函数返回 RET 相当于 bl lr Arm64 没有LR寄存器, lr用X30 栈底用X29 ARM64 取消了ldm/stm push

[转帖]Intel寄存器的艺术

https://www.oschina.net/translate/the-art-of-picking-intel-registers?print 我为一本名为Scene Zine的在线杂志写了这篇文章。 Scene Zine 致力于 Demo Scene,它是一个数字艺术社区,致力于通过音乐,艺

[转帖]CPU、寄存器、内存、磁盘、网络性能分析

介绍 寄存器 最靠近 CPU 的控制单元和逻辑计算单元的存储器,就是寄存器了,它使用的材料速度也是最快的,因此价格也是最贵的,那么数量不能很多。 存储器的数量通常在几十到几百之间,每个寄存器可以用来存储一定的字节(byte)的数据。比如: 32 位 CPU 中大多数寄存器可以存储 4 个字节;64

[转帖]计算机体系结构-寄存器重命名

https://zhuanlan.zhihu.com/p/503257611 在 Tomasulo 一文中曾经提到过“寄存器重命名”这个概念。“寄存器重命名”的目的是消除指令间写后写、读后写这两种假数据冒险,在现代处理器中,“寄存器重命名”往往因为其实现的复杂性而被拿出来单独用一个周期(甚至两个周期

[转帖]一口气看完45个寄存器,CPU核心技术大揭秘

https://www.cnblogs.com/xuanyuan/p/13850548.html 序言 前段时间,我连续写了十来篇CPU底层系列技术故事文章,有不少读者私信我让我写一下CPU的寄存器。 寄存器这个太多太复杂,不适合写故事,拖了很久,总算是写完了,这篇文章就来详细聊聊x86/x64架构

10.1 调试事件读取寄存器

当读者需要获取到特定进程内的寄存器信息时,则需要在上述代码中进行完善,首先需要编写`CREATE_PROCESS_DEBUG_EVENT`事件,程序被首次加载进入内存时会被触发此事件,在该事件内首先我们通过`lpStartAddress`属性获取到当前程序的入口地址,并通过`SuspendThrea...

一文搞懂 ARM 64 系列: 寄存器

ARM 64中包含多种寄存器,下面介绍一些常见的寄存器。 1 通用寄存器 ARM 64包含31个64bit寄存器,记为X0~X30。 每一个通用寄存器,它的低32bit都可以被访问,记为W0~W30。 在这31个通用寄存器中,有2个寄存器比较特殊。 X29寄存器被作为栈帧寄存器,也被称为FP(Fra

10.2 调试事件获取DLL装载

理解了如何通过调试事件输出当前进程中寄存器信息,那么实现加载DLL模块也会变得很容易实现,加载DLL模块主要使用`LOAD_DLL_DEBUG_EVENT`这个通知事件,该事件可检测进程加载的模块信息,一旦有新模块被加载或装入那么则会触发一个通知事件,利用该方法并配合磁盘路径获取函数则可很容易的实现进程模块加载的监控。

C程序函数调用&系统调用

理解程序的执行 我们要知道CPU可以自由地访问寄存器、内存。另外,程序是由操作系统执行的,所以操作系统能够控制程序的所有执行情况,限制程序的行为。 程序地执行过程: 程序是一个二进制文件,包含程序的代码指令、代码中的文本信息等(参考C语言的程序的各种段) 执行一个程序后,会将这个二进制加载到内存中,

LLVM技术在GaussDB等数据库中的应用

数据库引入LLVM之后,可以为具体的查询生成定制化的机器码,并尽可能地将数据存储在CPU的寄存器中进一步加快计算的速度。

[转帖]cpu上下文切换

https://www.jianshu.com/p/280778660ffc cpu上下文切换,就是先把前一个任务的cpu上下文(cpu寄存器和程序计数器)保存起来,然后加载新任务的上下文到这些寄存器和程序计数器,最后跳转到程序计数器所指的新位置,运行新任务。根据任务的不同,cpu上下文切换可以分为

[转帖]ARM64体系结构编程与实践:基础知识

ARM64体系结构编程与实践:基础知识 原创 异步社区 2022-03-30 12:44:16 ©著作权 文章标签 寄存器 体系结构 v8 ARM64体系结构 ARM 文章分类 物联网 阅读数1570 ©著作权归作者所有:来自51CTO博客作者异步社区的原创作品,请联系作者获取转载授权,否则将追究法

FreeRTOS简单内核实现3 任务管理

0、思考与回答 0.1、思考一 对于 Cotex-M4 内核的 MCU 在发生异常/中断时,哪些寄存器会自动入栈,哪些需要手动入栈? 会自动入栈的寄存器如下 R0 - R3:通用寄存器 R12:通用寄存器 LR (Link Register):链接寄存器,保存返回地址 PC (Program Cou

鸿蒙HarmonyOS实战-Stage模型(线程模型)

前言 线程是计算机中的一种执行单元,是操作系统进行调度的最小单位。它是进程中的实际运行单位,每个进程可以包含多个线程。线程可以理解为进程中的一个执行流,它独立运行,拥有独立的栈和寄存器,但共享进程的资源,如内存空间、文件等。线程通过并发执行,将一个进程的任务划分成多个子任务并行处理,以提高程序的

[转帖]存储器系统

https://juejin.cn/post/6844903472341450765 基础概念 存储器容量:取决于寻址方式,16位机能产生16位地址,因此能在2^16=64K个存储器单元中寻址,同理,32位机能使用包含4G个单元的存储器。 MAR(存储器地址寄存器)和 MDR(存储器数据寄存器):通

[转帖]eBPF阅读笔记

https://zhuanlan.zhihu.com/p/264922917 eBPF指令集 eBPF是位于内核的一个解释器, 实现了自己的RISC指令集. 寄存器 * R0 - return value from in-kernel function, and exit value for eBP

[转帖]计算机体系结构-存储指令的加速

https://zhuanlan.zhihu.com/p/507619114 记分牌和Tomasulo算法通过拷贝数据到保留站、广播计算结果和寄存器重命名等方法实现了计算指令的乱序执行,但是这两个算法均不涉及存储指令(load和store)。实际上,在一个乱序核中执行存储指令还需要一套独立的机制/方

[转帖]ARMv8架构概述、相关技术文档以及ARMv8处理器简介

ARMv8架构 文章目录 ARMv8架构参考文档ARMv8架构的概述从32位到64位的变化The changes from 32 bits to 64 bits1,Larger register pool(更大的寄存器池)2,Wider integer registers(具有更宽的整数寄存器)3,

[转帖]SIMD+SSE+AVX

http://home.ustc.edu.cn/~shaojiemike/posts/simd/ SIMD SIMD全称Single Instruction Multiple Data,单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。 通过使用矢量寄存器,指令译码后几个执行

5.9 汇编语言:浮点数操作指令

浮点运算单元是从80486处理器开始才被集成到CPU中的,该运算单元被称为FPU浮点运算模块,FPU不使用CPU中的通用寄存器,其有自己的一套寄存器,被称为浮点数寄存器栈,FPU将浮点数从内存中加载到寄存器栈中,完成计算后在回写到内存中。FPU有8个可独立寻址的80位寄存器,分别名为`R0-R7`他们以堆栈的形式组织在一起,栈顶由FPU状态字中的一个名为TOP的域组成,对寄存器的引用都是相对于栈顶