上海正规网站建设,成立一个公司需要哪些流程,免费1级做爰片在线观看 历史网站,域名到期查询文章目录《计算机系统基础》——计算机系统导论计算机的基本组成程序开发与执行过程机器语言汇编语言高级语言程序的转换处理程序的数据流动计算机系统层次结构早期计算机系统1GL2GL现代计算机系统3GL4GL指令集体系结构《计算机系统基础》——计算机系统导论
#x1f680;接下…
文章目录《计算机系统基础》——计算机系统导论计算机的基本组成程序开发与执行过程机器语言汇编语言高级语言程序的转换处理程序的数据流动计算机系统层次结构早期计算机系统1GL2GL现代计算机系统3GL4GL指令集体系结构《计算机系统基础》——计算机系统导论
接下来我们要开始学习计算机系统基础并且会以此开设一整个系列感兴趣的同学可以订阅本专栏后期会不断地更行这个系列。本系列所使用的教材是《深入理解计算机系统》这本书也叫做SCAPP然后配套课程是南京大学袁春风老师的课程。好了关于本专栏的介绍就到这里了让我们开始学习吧。
计算机的基本组成
对于计算机的基本组成我在计算机组成原理专栏进行了详细的介绍不清楚的同学可以先去看一下以前下的文章二计算机组成原理——计算机的基本组成_花园宝宝小点点的博客-CSDN博客。在这里我对其进行一个简单的复习希望能帮助大家去理解。
首先我们看到下面这个现代计算机结构模型接下来我们会以此为例子来对计算机结构进行一个简短的介绍。在此之前我们先对图中各个部位进行一个简单的说明。 CPU中央处理器。PC程序计数器。MAR存储器地址寄存器 。MDR存储器数据寄存器 。ALU算术逻辑部件。IR指令寄存器。GPRs通用寄存器组。 接下来我们举个例子来介绍计算机的工作原理这个例子是关于厨师做饭的故事。不过在这之前我们需要树立一些概念。 首先CPU就是我们的厨房一切的工作都在此运行然后控制器就是我们的厨师GPRS就是盘ALU就是厨房的厨具存储器就相当于厨房外的架子原材料和菜谱都放在这。 首先我们从一号架子上面取下菜谱根据PC取指令。看菜谱指令译码。从架上或盘中取原材料取操作数。洗、切、炒等具体操作指令执行。装盘或直接送桌回写结果。算出下一菜谱所在架子号211修改PC的值。
程序开发与执行过程
接下来我们介绍一下程序开发的发展过程以及其执行过程。
机器语言
我们最原始的开发方式就是使用机器语言去编程也就是在纸片上打孔来表示0和1但是这样不够灵活并且书写与阅读起来比较的困难所以人们就创造了汇编语言来开发程序了。
汇编语言
汇编语言就是用助记符和标号来表示的指令与机器指令一一对应它使用助记符表示操作码 用标号表示位置用助记符表示寄存器……因为这样的话就不会增减指令而需要修改其他指令并且不需记忆指令编码编写方便可读性比机器语言强。 指令包含操作码和操作数或其地址码机器指令用二进制表示汇编指令用符号表示 只能描述以下三个方面。 取或存一个数 。两个数加或减、乘、除、与、或等 。根据运算结果判断是否转移执行。 assume cs:codesg
codesg segmentmov ax,0123Hmov bx,0456Hadd ax,bxadd ax,axmov ax,4c00Hint 21h
codesg ends
end虽然方便了开发人员但是这样机器就不认识我们的代码了这下怎么办呢所以我们就需要使用汇编程序去将汇编代码转换成机器语言。但是随着技术的发展我们发现汇编语言还是太麻烦了于是我们逐渐使用高级语言去开发。
高级语言 此处的高级语言为C语言肯定有很多人觉得C语言不算高级语言但是在面对汇编以及机器语言的时候他还是能叫做“高级语言”。 随着技术的发展我们开始进入了高级语言的世界它们与具体机器结构无关 直接面向算法描述比机器级语言描述能力强得多。
并且有“面向过程”和“面向对象”的语言之分还有两种转换方式“编译”和“解释”。
编译程序(Complier)将高级语言源程序转换为机器级目标程序执行时只要启动目标程序即可。解释程序(Interpreter )将高级语言语句逐条翻译成机器指令并立即执行不生成目标文件。
程序的转换处理
接下来我们就以我们的hello.c程序来介绍一下程序的转换处理过程。
#include stdio.h
int main()
{printf(hello, world\n);
}首先我们的代码都是通过ASCII码保存在文件里面的之后通过cpp 的预处理得到一个.i文件再经过编译获得我们的汇编语言程序也就是以.s结尾的程序再经过汇编程序去把汇编语言转变为.o的可重定位目标 程序 (二进制)最后加上链接的printf.o文件就能生成可执行目标程序 (二进制)。 程序的数据流动
接下来我们来介绍一下在这个过程中我们程序的数据是如何流动的。 shell命令行处理将字符逐一读入寄存器再把它放到内存中。可执行文件加载利用DMA技术数据直接从磁盘到达主存。hello程序执行过程一旦目标文件hello中的代码和数据被加载到主存处理器就开始执行hello 程序的main程序中的机器语言指令。这些指令将“hello, world\n” 字符串中的字节从主存复制到寄存器文件再从寄存器文件中复制到显示设备最终显示在屏幕上。 支撑程序开发和运行的环境由系统软件提供最重要的系统软件是操作系统和语言处理系统 语言处理系统运行在操作系统之上操作系统利用指令管理硬件。 计算机系统层次结构
接下来我们需要介绍的就是计算机系统层次结构。
早期计算机系统
1GL
机器语言称为第一代程序设计语言 First generation programming language 1GL 。 2GL
汇编语言称为第二代程序设计语言 Second generation programming language 2GL 现代计算机系统
3GL
第三代程序设计语言3GL为过程式 语言编码时需要描述实现过程即“ 如何做”。 4GL
四代程序设计语言4GL 为非过程化语言编码时只需说明“做什么” 不需要描述具体的算法实现细节。 语言处理系统包括各种语言处理程序如编译、汇编、链接、运行时系统如库函数调试、优化等功能。 操作系统包括人机交互界面、 提供服务功能的内核例程。 指令集体系结构 ISA指Instruction Set Architecture即指令集体系结构有时简称为指令系统它规定了如何使用硬件。 可执行的指令的集合包括指令格式、操作种类以及每种操作对应的操作数的相应规定指令可以接受的操作数的类型操作数所能存放的寄存器组的结构包括每个寄存器的名称、编号、 长度和用途操作数所能存放的存储空间的大小和编址方式操作数在存储空间存放时按照大端还是小端方式存放指令获取操作数的方式即寻址方式指令执行过程的控制方式包括程序计数器PC、条件码定义等。 ISA是计算机组成的抽象。