- 博客(6)
- 收藏
- 关注
原创 Makefile详解
1. Makfile总述1.1. make如何解析makefile文件GUN make 的执行过程分为两个阶段。第一阶段:读取所有的 makefile 文件(包括 MAKIFILES 变量指定的、指示符 include 指定的、以及命令行选项 -f(--file) 指定的 makefile 文件),内建所有的变量、明确规则和隐含规则,并建立所有目标和依赖之间的依赖关系结构链表。第二阶段:根据第一阶段已经建立的依赖关系结构链表决定哪些目标需要更新,并使用对应的规则来重建这些目标。在 make 执
2021-04-18 11:23:10
2590
原创 bash引号和转义 - 单引号、双引号的区别
以下两条命令虽然执行结果相同,但是处理过程却不同,读了本文再思考它们哪里不同。无引号"\" 可以使所有字符失去特殊含义。比如 "\*" 、 "\$" 被转义为 "*" 、 "$"。需注意 "\t" 、"\n" 会被转义为 "t" 和 "n" ,而不是制表符和换行符。由于换行符(回车)在无引号模式,会导致命令直接执行,所以也可以说是一个特殊字符。因此 "\回车符" 也会失去特殊含义。 转义前表示 \* \$ ...
2021-04-11 09:37:10
802
2
原创 git内部原理—换个角度看本质
Git的常见命令虽然不多,但是,想要更加深刻理解这些命令,掌控每条命令的具体操作,了解Git的内部原理还是很有必要。首先,我们需要知道一个事物的表现形式可能有很多种,但是,它们的形式可以互相转换,其实质是一种东西。比如,一个普通的文件和一个压缩后的文件其实质是一样的。数据对象和树对象对于Git而言,存入库中的文件和文件夹的另一种形式就是数据对象(blob)和树对象(tree)。数据对象就是将文件压缩,同时计算它的hash摘要,从而对它进行索引。树对象就是文件名、权限等和文件(hash摘要).
2021-03-10 23:03:14
231
原创 关于gdtr和cr3地址类型的理解
结论:1.cr3里保存页目录表的基址的地址类型为物理地址,页目录表里的每一项也是页表的物理地址。2.gdtr里保存的地址类型为线性地址。原因:由于段表并不能保证页表存在或开启,所以它的机制,完全建立在无页表存在的情况。体现在gdtr上,就是gdtr的地址和gdt里的描述符里的地址类型一样,都为线性地址,当开启分页机制后有可能会和物理地址不同。而且,当想要更换段页式的时候,必
2018-01-09 14:52:48
3831
1
原创 关于实模式下汇编伪指令assume的个人理解
作用:用于标识默认段前缀解释:assume 并不能改变ds等段寄存器的值,但他能改变编译器产生的汇编代码。比如:assume ss:stackstack segmentx :db 0stack ends如果程序需要mov ax,[x],那么程序如何定位[x]呢?我们知道x只是一个偏移地址0,所以此时assume就相当于告诉编译器stack段的所有标号都与ss相关联,所以此时
2017-10-05 12:43:10
1532
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人