图解计算机和程序

计算机是怎样跑起来的

  • 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和引导
Donate comment here