![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入理解计算机系统
文章平均质量分 95
吾爱豆
这个作者很懒,什么都没留下…
展开
-
吾读 - 《深入理解计算机系统》第三章 程序的机器级表示 (二) 跳转和循环
上一篇我们初步认识了寄存器,学会了几个简单的汇编指令,例如mov,以及几种寻址模式。寻址模式不仅在mov指令中有用,各种指令都是通过这种方式来读取或写入内存中的值。一个程序有各种函数,一个函数中也可能有复杂的结构,判断、循环等等,这些东西在汇编中又是什么样的呢?if-else, for, while, switch这些常见的结构会被翻译成怎样的汇编代码呢?3.5 算术和逻辑操作本节要接触多更多汇编操作指令,主要以算术及逻辑操作为主,分为四类,参见下图:加减乘,没有除,这是为什么呢?因为除法比.原创 2020-09-08 22:22:02 · 535 阅读 · 0 评论 -
吾读 - 《深入理解计算机系统》 第三章 程序的机器级表示 (一) 寄存器初步认识
3.2 程序编码第一章已经介绍过代码如何编译成可执行程序的几个步骤,最终的可执行程序是二进制的,那么系统是怎么读这些二进制的呢?3.2.1 机器级代码能够理解汇编代码以及它是如何与原始的C代码相对应的,是理解计算机如何执行程序的关键一步。基本概念:程序计数器 成为%eip,表示将要执行的下一条指令在存储器中的地址。整数寄存器有8个,可以存储32位的值。条件码寄存器保存着最近执行的算术指令的状态信息,用来实现条件控制。浮点寄存器也有8个。到了汇编这一层,已经不区分有符号和无符号,各种数据原创 2020-09-06 18:54:12 · 540 阅读 · 0 评论 -
吾读 - 《深入理解计算机系统》第二章 信息的表示与处理 (二)浮点
浮点数绝对是计算机系统里最神秘的一种数值。在不了解它之前,很难想象同样是32位数值,int只能表示最大2的31次方,而浮点的表示范围却是-126到正的127次方。以及浮点还能表示无穷大,NaN等特殊值。我们也被教育浮点数计算的一些计算规则,例如很大的浮点跟小的浮点计算的时候,要先算小的。例如判断浮点跟0时,时常使用 if (fval <= 0.00001f) 这种表达式来判断数值是不是可以被当做0了。今天我们就来一起走近神奇的浮点数。2.4 浮点浮点数对形如V=x∗2yV = x*2.原创 2020-09-04 22:01:51 · 1650 阅读 · 0 评论 -
吾读 -《深入理解计算机系统》第二章 信息的表示和处理一 整数
第二章 信息的表示和处理2.1 信息存储三种最重要的数字编码:无符号:基于传统的二进制表示法,表示大于等于0的数字二进制补码是便是有符号整数的最常见方式。浮点数是表示实数的科学计数法的以二为基数的版本。由于表示的精度有限,浮点数运算时不可结合的。计算顺序会影响到结果。2.1.2. 字节大多数计算机使用8位的块,也叫做字节,用来作为最小的可寻址的存储器单位。在脑海中记住A,C,F对应的十进制和二进制数值,其他的BDE就可以通过跟前面的相对关系来得到。A 10 1010,原创 2020-08-30 22:45:45 · 365 阅读 · 0 评论 -
吾读 -《深入理解计算机系统》第一章计算机系统漫游
第一章 计算机系统漫游1. 编译源程序 -》预处理器 -》被修改的源程序 -》编译器 -》汇编程序-》汇编器 -》.o文件,可重定位的目标程序 -》 连接器 -》可执行程序。预处理阶段 预处理器(cpp)处理include,宏等,得到.i中间文本文件编译阶段 编译器(ccl)将.i文件翻译成汇编程序,得到.s文本文件汇编阶段 汇编器(as)将.s文件翻译成机器语言指令,得到.o二进制文件链接阶段 链接器(ld)链接其他需要的.o文件,得到可执行目标二进制文件gcc -原创 2020-08-30 16:05:35 · 226 阅读 · 0 评论