《程序是怎么跑起来的》读书笔记

本文是《程序是怎么跑起来的》读书笔记,深入探讨CPU的构造和工作原理,包括寄存器、控制器、运算器和时钟的作用。书中详细介绍了二进制、数据表示、小数运算误差、内存管理、磁盘存储、程序编译和运行环境等关键概念,帮助读者理解程序如何在计算机中运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         好久没有写过这类读书笔记,犹记得上次写还是刚学android那会读《Android群英传》写过一篇,这次应公司远程实习任务的要求,来拜读《程序是怎么跑起来的》这本书,书不厚,三天半就看完了,但读完却是甚觉过瘾,唤醒了记忆里很多即将消逝的东西,回过头来看看现在所学的东西,感觉又深入理解了一次。


第一章什么是CPU

CPU的内部由寄存器、控制器、运算器和时钟四个部分组成;

寄存器用来暂存数据和指令等对象,不同CPU内部有20-几百个;

控制器负责把内存上的指令、数据读入寄存器,并根据指令执行结果来控制整个计算机;

运算器负责运算从内存读入寄存器的数据

时钟负责发出CPU开始计时的信号;

主存:计算机的主存储器,用来存储指令和数据,但关机会清除所有数据。

宏观上讲,程序启动后,根据时钟信号,控制器从内存中读取指令和数据,通过对这些指令加以解释和运行(这里主要用到了各类寄存器),运算器就会对数据进行运算,控制器根据该结果来控制计算机。


CPU可以说是各种功能的寄存器的结合体,程序计数器、累加计数器、标志寄存器、指令寄存器和栈寄存器只有一个,其他有一到多个。


程序的流程分为顺序执行条件分支循环三种,这三种模式是通过对程序计数器的值的设定来实现的(程序计数器是用来存储下一条指令的地址的),条件和循环主要使用比较(在CPU内部做减法)和跳转指令来实现(这些在第十章会讲到)。


机器语言通过callreturn指令来解决函数调用的跳转问题,在将函数的入口地址赋值到程序计数器之前,call指令会将调用函数后要执行的指令地址存储在栈的主存内,函数处理完毕后,通过函数出口执行return命令,其功能就是把保存在栈中的地址赋值给程序计数器。


 

 

第二章:二进制与数据

计算机内部使用二进制处理数据。


OO”的“XX”次幂,OO为基数,二进制位2,十进制为10XX是“数的位数-1”;


二进制左移一位扩大2倍,两位扩大4倍,依次类推,低位补0

对于右移,则是原来的1/2,1/4,1/8,对于高位,则有补0和补1两种情况。

 

二进制表示负数时,会把最高位当做符号位,正为0

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值