深入理解计算机系统
文章平均质量分 54
sp_13230409636
这个作者很懒,什么都没留下…
展开
-
78-C++函数调用过程
1.参数入栈 1.4字节参数入栈,顺序:从右向左入栈(先入最后一个参数),方式:使用寄存器push带入 先将b入栈,同时esp往上走,再将a入栈(从右向左入栈) 2.8字节参数入栈,顺序:从右向左,方式:使用寄存器push带入 先将b._2入栈,然后esp往上移(向低地址移动),然后将b._1入栈,然后esp往上移(向低地址移动),然后将a._2入栈,然后esp往上移(向低地址移动),然后将a._1入栈,然后esp往上移(向低地址移动),方式仍然是从右向左 3.12字节参数入栈,顺序:从右向左,方式原创 2021-11-15 16:51:19 · 1495 阅读 · 0 评论 -
77-C++编译链接过程
磁盘:永久化存储,但是I/O慢 内存:支持程序执行所需要的真实空间 内存分为物理内存和虚拟内存 物理内存:内存条,I/O快 虚拟地址空间:逻辑上给到每个进程的执行空间 虚拟内存:虚拟就是假的,不是内存是磁盘——交换空间,虚拟内存是在磁盘上提前划分了一块空间,当真实物理内存不够用时,将数据暂时置换到虚拟内存上 为什么真实物理内存会不够用? 程序执行时,会给每一个进程划分一个执行空间,在32位系统上,大小是4G(2^32),注意:是逻辑上给了4G的空间,并不是真的给了4G的空间,如果当前进程用不到4G的空间,就原创 2021-11-14 16:20:55 · 1450 阅读 · 2 评论 -
51-《深入理解计算机系统》阅读体会
1.计算机系统是由硬件和系统软件组成的 2.hello程序的生命周期是从一个源程序(或者说源文件)开始的,即程序员通过编辑器创建并保存的文本文件,文件名是hello.c。 3.像hello这样只有ASCII字符构成的文件称为文本文件,所有其他文件都成为二进制文件,系统中所有的信息——包括磁盘文件,内存中的程序,内存中存放的用户数据以及网络上传送的数据,都是二进制文件 4.预处理阶段:预处理器根据以字符#开头的命令,修改原始的C程序。比如hello.c中第一行的#include <stdio.h>原创 2021-10-26 18:23:08 · 206 阅读 · 0 评论