Wesley13 Wesley13
3年前
STM32 HAL库 IIC 协议库函数
/\第1个参数为I2C操作句柄第2个参数为从机设备地址第3个参数为从机寄存器地址第4个参数为从机寄存器地址长度第5个参数为发送的数据的起始地址第6个参数为传输数据的大小第7个参数为操作超时时间\/HAL\_I2C\_Mem\_Write(&hi2c2,salve\_add,0,0,PA\_BUFF,sizeo
代码还原的技术: Unidbg调试浮点数运算(一)
一、目标在做代码还原的时候,经常能看到一些奇怪的寄存器和奇怪的指令:vldrs15,可以看出两个区别,一个是寄存器不一样,普通运算使用的寄存器是R0Rx,浮点数运算使用的是D0Dx(其实还有S0Sx),另一个是指令不一样,普通运算是MOV、MUL,而浮点数运算使用的是VMOV,VMUL,感觉就是普通运算的VIP版。第一个知识点就出来了,V开头的指令
Stella981 Stella981
3年前
Linux性能分析之上下文切换
而在每个任务运行前,CPU都需要知道任务从哪里加载、又从哪里开始运行,也就是说,需要系统事先帮它设置好CPU寄存器和程序计数器CPU寄存器,是CPU内置的容量小、但速度极快的内存。而程序计数器,则是用来存储CPU正在执行的指令位置、或者即将执行的下一条指令位置。它们都是CPU在运行任何任务前,必须的依赖环境,因此也被叫做C
Wesley13 Wesley13
3年前
1 汇编实现简单的算数运算
1汇编实现简单的四则运算1.1加法inta\30;intb\20;intc;//cab;asm("mov%1,%0\\n\\t"//mov操作数写入寄存器"add%2,%0"//a
Stella981 Stella981
3年前
NVMe协议笔记分享
NVMe概述NVMe是一个针对基于PCIe的固态硬盘的高性能的、可扩展的主机控制器接口。NVMe的显著特征是提供多个队列来处理I/O命令。单个NVMe设备支持多达64K个I/O队列,每个I/O队列可以管理多达64K个命令。当主机发出一个I/O命令的时候,主机系统将命令放置到提交队列(SQ),然后使用门铃寄存器(DB)通知NVMe设
Wesley13 Wesley13
3年前
8086汇编中的标识寄存器详解
每天都在学习。写点笔记。remark。8086汇编中的标识寄存器叫flag。16位每一位都标识不一样的含义,1514131211(OF)10(DF)9(IF)8(TF)7(SF)6(ZF)54(AF)32(PF)10(CF
Stella981 Stella981
3年前
JVM运行机制(非原创)
文章大纲1.JVM基本概念2.JVM的体系结构3.JVM启动流程一、JVM基本概念1.Java虚拟机(JVM)是可运行Java代码的假想计算机2.Java虚拟机包括类加载器、一组寄存器、方法区、一个垃圾回收堆、直接内存、一个栈、和一个存储方法域、PC寄存器等3.Java编译、运行流程如
Stella981 Stella981
3年前
JVM 的基本结构
一 基本结构   !(https://static.oschina.net/uploads/space/2018/0127/110055_rYaE_3218528.png)二 程序计数器(PC)  PC寄存器是每个线程的私有空间,JAVA虚拟机会为每一个JAVA线程创建PC寄存器。任意时刻,一个JAVA
Wesley13 Wesley13
3年前
C语言内存优化——继续含泪总结
之前分析了基本数据类型的优化,现在开始涉及全局和局部变量的优化,话说这个东西我从没想过还能这样优化的喂!全局变量/Globalvariables全局变量不会被分配在寄存器上,修改全局变量需要通过指针或者调用函数的方式间接进行。所以编译器不会将全局变量存储在寄存器中,那样会带来额外的、不必要的负担和存储空间。所以在比较关键的循环中,我们要
ISA-L库调研
SIMD(singleinstructionmultipledata)单指令多数据流,能够复制多个操作数,并把它们打包在大型寄存器的一组指令集。以同步方式,在同一时间内执行同一条指令。