Zhl Blog

充满好奇,保持谦逊,一途一心。

9.建立数据通路(电路篇)

9.建立数据通路(电路篇)

计算机每执行一条指令的大概流程是 获取指令 -> 指令译码 -> 执行指令 这是永不停止的循环。这个循环就是指令周期 在这个循环里是由计算机的不同基础组件完成的,计算机的五大基础组件 控制器,运算器,存储器,输入,输出。其中一个指令周期就涉及到三个基础组件。 指令周期的步骤: 取指令从主内存中读取机器码指令到控制器上 在控制器中指令译码控制器将指令解析成...

8.浮点数

8.浮点数

在开发中有整数有浮点数的计算,对于浮点数计算往往会有些意想不到的结果 1 2 3 //js >0.3+0.6 >0.8999999999999999 这个结果竟然不是0.9,那么为什么会出现这种情况,本文就针对于浮点数计算出现的”异常“进行说明。 浮点数分单精度(32bit)和双精度(64bit),两者基本概念都是一样的,为了方便讲解,就用单精度浮点数来进行说明。 浮点数的...

6.动态链接

6.动态链接

//TODO:….动态链接学的并不好,PIC外部模块函数调用的细节理解不够好,涉及到GOT,PLT之间如何协作工作没有理解,感觉还有些基础要补下,决定先暂时将动态链接放下,后面再补完 动态链接 静态连接中如果有多个目标文件进行连接,需要将链接好的文件分别都装载,拷贝到内存中。再重复占用一次内存空间,对于如果有多个模块来说,是非常浪费空间的。即便现在计算机的内存空间大,也是要避免掉无意义的浪...

5.链接器与静态链接

5.链接器与静态链接

链接器主要是干三件件事:空间地址分配,符号解析,符号重定位,文章也会围绕这三部分来进行展开说明 空间地址分配 对于多个输入文件,链接器需要将其对应的段先进行合并,将符号表中符号引用和符号定义合并称为一张全局符号表,计算输出文件各个段合并后的长度和 位置,并且与VMA(虚拟内存地址)建立关联。 objdump -h xxxx.o 1 2 3 4 5 6 Idx Name ...

4.目标文件格式

4.目标文件格式

目标文件 什么是目标文件 源码经过编译和汇编器后生成的文件是目标文件,目标文件跟最终可执行文件很近似了,只不过是缺少了链接这一步,目标文件中少了些符号地址。 目标文件有三种类型,可执行文件,可重定向文件,共享目标文件。linux中的目标文件是ELF格式。 目标文件格式 目标文件中存有编译后的机器码,数据以及链接所需要一些信息,比如符号表,重定向表等。,目标文件中把这些信息按照不同的属性...

3.连接和编译基本概念

3.连接和编译基本概念

写在前面 在学习计算机组成原理的过程中对连接,装载进行更近一步的扩展学习,参考《程序员的自我修养—连接,装载与库》进行阅读笔记 命令行中输入一行gcc func.c命令,将源代码编译成可运行文件,看似简单的一句话,其实包含了一整套的流程,分别是:预编译,编译,汇编,链接。 func.c -> cpp -> func.i -> cc1 -> func.s -&g...

2.函数调用以及运行栈

2.函数调用以及运行栈

一些有用的基础知识点 寄存器:%rip , %rbp ,%rsp, 指令:push pop call ret 栈结构:栈的结构,栈帧 寄存器 程序计数器 (X86-64中用%rip表示) 用于表示将要执行的下一条指令的内存地址。 堆栈指针 (X86-64中用%rsp表示) 用于指向栈顶。 栈帧指针 (X86-64中用%rbp表示) 用于表示当前栈帧的开...

1.初步了解计算机性能和功耗

1.初步了解计算机性能和功耗

冯诺依曼计算机体系 冯诺依曼计算机体系分五个单元模块:控制器单元,运算器单元,存储单元,输入单元,输出单元。 运算器单元 : 包含算术逻辑单元ALU和 处理器寄存器PR,主要负责各种算数和逻辑的运算。 控制器单元: 包含指令寄存器 IR 和程序计数器PC ,主要负责程序的流程控制和不同条件下的跳转。 处理器单元 和控制器单元 共同组成了CPU。 ...

#2020总结#学习篇

#2020总结#学习篇

写在前面 2020年后半年看了《计算机组成原理》和《TCP/IP协议》,后者还是有笔记进行输出的,但是总感觉有些不理想。 属于个人原因,上班真没事干是个学习的好机会,但是大都时候还是不务正业。 两本书都是属于知识不仅细而且还繁多,除了知道自己暂时不看的篇章,其他的感觉都是重点,分不清主次。 在写《TCP/IP协议》学习笔记的时候,有些概念看懂了,然后就直接把它们的原话或者原图直...

ARP

ARP

ARP基本概念 地址解析协议:仅仅用于IPv4中,提供在IPv4地址和各种网络技术使用的硬件地址间的映射。 地址解析是发现两个地址之间的映射关系的过程,从逻辑Internet地址向对应物理硬件地址进行转换。ARP几乎总是用于32位IPv4地址和以太网的48位MAC地址之间的映射 ARP包格式 硬件类型:数据链路层使用的 类型,对于以太网来说是1。 协议类型:使用的高层协议,...