1.模块及功能
- CPU:整个计算机内部的核心
- 内存 MM :任何程序在运行之前首先要被装到内存中
- 硬盘:典型的外设,一个输入输出设备。
2. 情景
1.双击文件计算机内部执行过程
假设要双击打开某个 .exe文件 , 看到的是有窗口显示,点击右上角叉窗口关闭,请问计算机内部是怎么实现的
- 首先双击,windows操作系统收到消息并运行,
- windows运行过程:
- 首先在内存中分配一部分特定空间(不能与其他空间重叠),其他空间包括os、别的应用程序等,
- 对于分配的空间划分成段(包括代码段,数据段和堆栈段等),将程序装入内存,
- CPU (不断取指并执行指令)有一个寄存器(PC(总是指向CPU即将取出的指令,自动加一),一个指针,存地址),程序装入内存时,PC默认指向代码段中第一条可执行代码,后面CPU不断循环进行取值执行指令,执行完所有代码
2.C语言或汇编语言执行过程
- 程序开始:由第一条可执行代码,程序的入口开始(c语言的main函数作为入口)(汇编语言的start 作为入口)
- 程序自动执行:
- 对于顺序指令:CPU从内存中从程序入口不断的取值执行指令,PC自动加一到邻居,直到返回语句结束程序
- 对于跳转指令(修改PC,PC加一跳转到Jump的next指向的指令位置),仍然是pc不断在内存中读取再执行指令
- 程序结束:由于程序装入的内存空间仍有垃圾值,PC不断对程序取值执行可能出错,程序需要加返回语句(C语言的return库函数,编程语言通过DOS 功能调用,通过 MOV AH,4CH INT 21H返回DOS功能),释放程序段、代码段、堆栈段,返回操作系统,程序结束