计算机是怎样跑起来的
- Hz(赫兹)是CPU频率单位,1秒发出1次时钟信号就是1Hz。100MHz=100*100万=1亿次/秒
- IC是继承电路(Integrated Circuit)的简称
- CPU的频率就是‘时钟信号’的电信号,可用来衡量CPU的速度
- 程序的流程:顺序执行、条件分支、循环
- 事件驱动:用户的操作等产生事件后,由事件决定程序的流程
- OOP 继承、封装、多态
- LAN 是Local Area Network 局域网
- MAC地址就是计算机网卡中在出厂时被分配的不可更改的MAC地址(硬件的自己懂的话还是可以改的)
- IP地址到MAC地址的转换就是ARP 地址解析协议
程序是怎样跑起来的
- CPU是由寄存器、控制器、运算器和时钟组成的
寄存器
用来暂存指令、数据等处理对象、可看做内存的一部分控制器
负责把内存上的指令等读入寄存器,并根据指令的执行结果来控制整个计算机运算器
负责运算从内存读入寄存器的数据时钟
负责发出CPU开始计时的时钟信号
- 每个字节(1字节=8位)
- 每个CPU大概有20-100个寄存器,主要分为:
每个CPU中包含 | 名称 | 作用 |
---|---|---|
1个 | 累加寄存器 | 存储执行运算的数据和运算后的数据 |
1个 | 标志寄存器 | 存储运算处理后的CPU状态 |
1个 | 程序计数器 | 存储下一条指令所在内存的地址 |
n个 | 基址寄存器 | 存储数据内存的起始地址 |
n个 | 变址寄存器 | 存储基址寄存器的相对地址 |
n个 | 通用寄存器 | 存储任意数据 |
1个 | 指令寄存器 | 存储指令 |
1个 | 栈寄存器 | 存储栈区域的起始地址 |
- 函数的调用机制
- call指令会把调用函数后要执行的指令地址存储在名为栈的主存内
- return命令的功能是吧保存在栈内的地址设定到程序的计数器中
- 通过地址和索引实现数组
- 通过基址寄存器和变址寄存器对主存区域进行划分
- CPU会把基址寄存器+变址寄存器的值解释为实际查看的内存地址
- 变址寄存器的值就相当于高级变成语言程序中数组的索引功能
- 机器语言指令的主要类型和功能:
类型 | 功能 |
---|---|
数据转送指令 | 寄存器和内存、内存和内存、寄存器和外围设备之间的数据读取操作 |
运算指令 | 用累加寄存器执行算数运算、逻辑运算、比较运算和移位运算 |
跳转指令 | 实现条件分支、循环、强制跳转等 |
call/return指令 | 函数的调用/返回调用前的地址 |
- 8位二进制数称为一个字节
- 移位运算和乘除运算的关系
- 左移一位就是对二进制数乘2
- 右移一位就是对二进制数除2
- 二进制数中正负的表示:
- 把最高位作为符号来使用,最高位就是符号位。
- 符号位是0表示正数,符号位是1表示负数
- 补数就是用正数来表示负数
- 原始二进制数转化其补数:所有位取反,然后加1
1的二进制数是00000001,取反后是11111110,加1后是11111111
- 逻辑右移和算数右移
- 逻辑右移是右移后前面空出来的高位用0补充
- 算数右移是右移后前面空出来的高位用右移前符号位的值来补足
- 浮点数是用符号、尾数、基数和指数来表示的小数
- 内存物理机制
- DRAM
- SRAM
- ROM
- 磁盘缓存加快了磁盘的访问速度,指把从磁盘中读出的数据存储到内存空间中的方式
- 虚拟内存是指把磁盘的一部分作为假象的内存来使用
- 节约内存的编程方法
- DLL文件是在程序运行时可以动态加载的文件
- 通过调用_stdcall来减小文件的大小
栈清理
- 磁盘的物理结构
- 扇区方式
- 把磁盘表面分成若干同心圆的空间就是磁道
- 把磁道按固定大小划分成的空间就是扇区
- 可变长方式
- 扇区方式
- BIOS和引导