程序是怎么跑起来的学习总结

一、CPU

CPU包括寄存器 控制器 运算器 时钟
内存(主存储器main memory)主要负责存储指令和数据
程序是把寄存器作为对象来描述的,对程序员来说CPU是具有各种功能的寄存器的集合体
程序计数器决定程序的流程
程序的顺序执行、分支执行,循环执行是通过跳转或者改变程序计数器来实现的
函数调用也是改变程序计数器,执行完后在返回原来的位置
通过地址和索引实现数组(基址寄存器和变址寄存器)
实际地址=基址寄存器的值+变址寄存器的值

二、二进制

位bit是最小单位,字节byte是基本单位(8bit)
移位运算 << >>
1的二进制00000001,-1的二进制11111111(1的补码)
做减法运算时实际上内部做加法运算,因此表示负数时就需要使用二进制的补数(全部取反再加一)
将二进制表示的信息作为四则运算的数值处理就是算数,作为单纯的0和1处理就是逻辑
移位运算
逻辑右移(空出的最高位补0)
算数右移(空出的最高位补0或1)
逻辑左移和算数左移均在空出的最低位补0
符号扩充(如把8位二进制扩充为16位二进制)
只需用符号位的值来填充高位即可

逻辑运算
非、与、或、异或

三、小数

小数运算出错的原因是很多小数无法用二进制表示,只能近似
浮点数是指把小数用“符号 尾数x基数的指数次幂”这种形式来表示
正则表达式定义了表示浮点数的规则,即尾数和指数是多少
四、内存
电源、地执信号、数据信号、控制信号
物理上(硬件)逻辑上(软件)
指针也是一种变量,存储着数据的内存的地址
栈、队列、链表、二叉树

五、磁盘

内存利用电流实现存储,磁盘利用磁效应实现存储
程序不读入内存就无法运行
磁盘缓存(disk cache)指把从磁盘中读出的数据存储到内存空间的方式(低速设备的数据保存到高速设备中)
虚拟内存(virtual memory)指把磁盘的一部分作为假想的内存包括分页式和分段式
节约内存的编程方法
静态链接(Static Link)导致内存利用效率下降
动态链接DLL(Dynamic Link Library)是在程序运行时可以动态加载库(函数和数据的集合)的文件,提高内存利用率
调用_stdcall来减小程序文件,即调用函数时进行栈清理处理
磁盘的划分方式有扇区方式和可变长方式
Windows采用扇区方式,一个扇区一般为512字节,扇区的整数倍是簇,所有文件都会占用簇的整数倍的磁盘空间

六、数据压缩

文件以字节为单位进行保存
RLE是把文件用“数据x重复次数”的形式来表示的压缩方法
莫尔斯编码(文本中出现频率高的字符用短编码表示)
哈夫曼算法(文本中出现频率高的字符用短编码表示),压缩比率较高
可逆压缩和非可逆压缩

七、运行环境

运行环境=操作系统+硬件
机器语言的程序称为本地代码,文本文件的程序称为源代码
Windows克服了CPU意外的硬件差异
不同操作系统的API是不同的
虚拟机是可以虚拟运行环境的应用
BIOS会确认硬件是否正常运行,没问题启动引导程序,引导程序吧硬盘的OS加载到内存中运行

八、编译

源代码(源文件)通过编译得到本地代码(二进制.obj目标文件)
把多个目标文件结合生成EXE文件的处理称为链接
.lib库文件指的是把多个目标文件集成保存到一个文件中的形式
Windows中API的目标文件并没有存储在通常的库文件中,而是存储在名为DLL的特殊库文件中
导入库并不存在API函数的实体,而是存有将其引导到存有实体的DLL文件的信息,存有目标文件实体的称为静态链接库
内存中的程序就是由用于变量、函数、栈、堆的4部分内存空间组成的程序加载时会生成栈和堆,栈是由编译器申请管理,堆是程序员申请管理

九、操作系统

监控程序不断发展,最终操作系统是多个程序的集合体
应用程序通过利用OS的功能来控制硬件
操作系统和高级编程语言使硬件抽象化
Windows特征:
通过API函数集来提供系统调用,提供采用了GUI的用户界面,通过时钟分割实现多任务功能,提供网络功能和数据库功能
通过即插即用实现设备驱动的自动设定

十、汇编语言

汇编语言和本地代码是一一对应的
汇编语言是由转换成本地代码的指令和针对汇编器的伪指令构成的,语法是“操作码+操作数”
函数调用是栈发挥大作用的场合
函数的参数是通过栈来传递的,返回值是通过寄存器来返回的

十一、硬件控制方法

通过系统调用的方法实现硬件的控制
IN指令和OUT指令直接控制硬件
I/O控制器用来交换计算机主机同外围设备之间的电流特性
IRQ是中断处理,来暂停当前正在运行的程序,并跳转到其他程序运行的机制,用中断处理来实现实时控制
DMA(Direct Memory Access)指在不通过CPU的情况下外围设备直接和主内存进行数据传输
I/O端口号、IRQ及DMA可以说是识别外围设备的3点组合
显示器中显示的信息一直存储在某一内存(VRAM)中

十二、

程序的目的:
1.作为工具来使用
2.来代替执行人类的思考

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值