搜索结果
查询Tags标签: rax,共有 33条记录-
《高级C/C++编译技术》01
Linux程序内存布局:启动程序的默认加载点是在链接阶段才添加的,通常放在程序内存映射的起始处(这是可执行文件和动态库之间的唯一区别)。启动代码有两种不同方式:crt0:“纯粹”的入口点,这是程序代码的第一部分,在内核控制下执行 crt1:更现代化的启动例程,可以在…
2022/9/11 14:31:30 人评论 次浏览 -
x86_64汇编基础:Basics
参考https://cs61.seas.harvard.edu/site/2018/Asm1/正文 Registers Registers are the fastest kind of memory available in the machine. x86-64 has 14 general-purpose registers and several special-purpose registers. This table gives all the basic registers,…
2022/8/20 14:24:37 人评论 次浏览 -
021 指针思考
/* 目录:一 C原理二 汇编原理 */一 C原理void change(int** p2) {printf("p2 = 0x%x, *p2 = 0x%x\n", p2, *p2);printf("*p2 = 0x%x, *8p2 = %d\n", *p2, **p2); }int main() {int i = 3;printf("&i = 0x%x, i = %d\n", &i, i);int…
2022/6/29 6:20:06 人评论 次浏览 -
C++虚函数调用简单分析
C++代码如下: class parent_parent { public:virtual int print() const{return 1;} };class sub : public parent_parent { public:int print() const override{return 0;} };int main() {parent_parent* p = new sub;p->print();delete p;return 0; }通过使用反汇编…
2022/2/23 9:21:41 人评论 次浏览 -
《深入理解计算机系统》——如何分析汇编指令
汇编指令的相关基础知识文章目录 汇编指令的相关基础知识前言一、寄存器种类及其功能二、常用汇编指令解析1.mov指令2.add指令3.sub指令4.push指令5.pop指令6.jmp指令7.call指令8.ret指令9.cmp指令10.jg指令 三、寻址方式1.立即数寻址2.直接寻址3.间接寻址4.变址寻址5.BIS…
2022/2/22 22:26:40 人评论 次浏览 -
Redis之Rax
Rax全称redis tree,是一个有序字典树,可以根据key进行排序,支持快速定位、插入与删除,与hash/zset不同在于hash不具备排序功能,zset则根据score进行排序。【trie简介】在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符…
2022/1/20 19:14:27 人评论 次浏览 -
Redis之Rax
Rax全称redis tree,是一个有序字典树,可以根据key进行排序,支持快速定位、插入与删除,与hash/zset不同在于hash不具备排序功能,zset则根据score进行排序。【trie简介】在计算机科学中,trie,又称前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符…
2022/1/20 19:14:27 人评论 次浏览 -
深入分析redis之rax底层原理,前缀树?
文章目录 前言一、Radix Tree 是什么?二、Radix Tree 数据结构1. 结构2. 非压缩节点3. 压缩节点4. 图解Radix Tree 三、基本操作1. 查询2. 插入3. 删除4. 遍历 总结前言 本文参考源码版本为 redis6.2 前缀树是字符串查找时,经常使用的一种数据结构,能够在一个字符串集合…
2022/1/16 19:06:24 人评论 次浏览 -
深入分析redis之rax底层原理,前缀树?
文章目录 前言一、Radix Tree 是什么?二、Radix Tree 数据结构1. 结构2. 非压缩节点3. 压缩节点4. 图解Radix Tree 三、基本操作1. 查询2. 插入3. 删除4. 遍历 总结前言 本文参考源码版本为 redis6.2 前缀树是字符串查找时,经常使用的一种数据结构,能够在一个字符串集合…
2022/1/16 19:06:24 人评论 次浏览 -
Linux:ftrace: 为什么有些函数没有在available_filter_functions
文章目录 例如:__run_hrtimer汇编例如:__run_hrtimer 这个函数其实有被用到,在函数__hrtimer_run_queues 中,有调用__run_hrtimer 但是在available_filter_functions 文件中就是没有 <sbc2048-fwp-a:root>/sys/kernel/debug/tracing: # grep __run_hrtimer av* …
2022/1/5 7:06:04 人评论 次浏览 -
Linux:ftrace: 为什么有些函数没有在available_filter_functions
文章目录 例如:__run_hrtimer汇编例如:__run_hrtimer 这个函数其实有被用到,在函数__hrtimer_run_queues 中,有调用__run_hrtimer 但是在available_filter_functions 文件中就是没有 <sbc2048-fwp-a:root>/sys/kernel/debug/tracing: # grep __run_hrtimer av* …
2022/1/5 7:06:04 人评论 次浏览 -
程序的机器级表示(二)
注:以下所有内容均来自开源学习组织DataWhale 程序的机器级表示(二) 1 加载有效地址 **leaq S, D →\rightarrow→ Load Effective Address ** 注:x86-64位处理器地址长度都是64,因此都是leaq 例如如下指令: leaq 7(%rdx, %rdx, 4), %rax:表示把有效地址复制到寄存…
2021/12/23 1:19:40 人评论 次浏览 -
程序的机器级表示(二)
注:以下所有内容均来自开源学习组织DataWhale 程序的机器级表示(二) 1 加载有效地址 **leaq S, D →\rightarrow→ Load Effective Address ** 注:x86-64位处理器地址长度都是64,因此都是leaq 例如如下指令: leaq 7(%rdx, %rdx, 4), %rax:表示把有效地址复制到寄存…
2021/12/23 1:19:40 人评论 次浏览 -
图解CPU执行一段程序
程序执行 从打印出 Hello World 开始,程序如何运行起来,大家都很清楚。那么底层如何执行的呢,让我们一探究竟。 long main(){long a = 1;long b = 2;return a + b; }来一段 C 语言作为例子, gcc -S 生成汇编代码,简化如下。 pushq %rbp movq %rsp, %rbp movq …
2021/12/20 14:49:45 人评论 次浏览 -
图解CPU执行一段程序
程序执行 从打印出 Hello World 开始,程序如何运行起来,大家都很清楚。那么底层如何执行的呢,让我们一探究竟。 long main(){long a = 1;long b = 2;return a + b; }来一段 C 语言作为例子, gcc -S 生成汇编代码,简化如下。 pushq %rbp movq %rsp, %rbp movq …
2021/12/20 14:49:45 人评论 次浏览