专升本每日必背 | 计算机基础知识点汇总
1、指令是指示计算机执行某种操作的命令,包括操作码和地址码两部分。
2、目前常见的指令系统有复杂指令系统(CISC)和精简指令系统(RISC)。
3、计算机的工作过程:取指令、分析指令、执行指令。
4、未配置任何软件的计算机叫裸机,注意不是指安装过操作系统的计算机。
5、计算机硬件系统的五大组成部分:运算器、控制器、存储器、输入设备和输出设备。
(1)常用的输入设备:鼠标器、键盘、扫描仪、数字化仪、数码摄像机、条形码阅读器、数码相机、A/D转换器等。
(2)运算器:对信息进行加工和运算。运算器和控制器合称为CPU。
(3)控制器整个计算机系统的控制中心,它指挥计算机各部分协调工作。
(4)存储器分为内存和存。内存包括ROM、RAM和Cache;外存包括磁盘、光盘、闪存和磁带等。
注意:外存用来存储大量的暂时不参加运算或处理的数据和程序,不能和CPU 直接交换数据。
(5)常用的输出设备:显示器、打印机和音箱,还有绘图仪、各种数模转换器(D/A)等。磁盘驱动器和磁带机既可以看作输入设备,又可以看作输出设备。
6、输入计算机的信息有两类:数据和程序。
7、计算机软件分为系统软件和应用软件。
(1)系统软件包括操作系统、语言处理程序、系统支撑和服务程序、数据库管理系统。
(2)应用软件包括Microsoft office、Adobe Photoshop、QQ、3DMax等。
8、操作系统是用户和计算机硬件系统之间的接口。
9、语言处理程序包括汇编程序、编译程序和解释程序等。汇编语言源程序做翻译称为汇编;对高级语言源程序翻译称为编译或解释。
10、数据管理系统:FoxPro、 FoxBASE+、Access和大型数据库管理系统如Oracle、DB2、Sybase、SQL Server等。
11、程序=算法+数据结构
(1)算法可以看作是由有限个步骤组成的用来解决问题的具体过程。算法的性质:有穷性、确定性和可行性。
(2)典型的数据结构包括线性表、堆栈和队列。
12、程序设计语言包括机器语言、汇编语言和高级语言。
(1)机器语言是计算机唯一能够识别的;汇编语言是机器语言的符号化;高级语言是最接近人类表达问题方式的语言。
(2)机器语言和汇编语言都称为低级语言。
13、高级语言处理程序有两类:解释型和编译型。解释型边翻译边执行,不产生目标程序;编译型产生目标程序。
14、掌握微机的主要性能指标
(1)主频:计算机CPU在单位时间内发出的脉冲数,它在很大程度上决定了计算机的运算速度,主频的单位是赫兹(Hz) 1.60GHz。
(2)字长:计算机的运算部件能同时处理的二进制数据的位数,是衡量计算机性能的主要指标。
(3)内存容量指的是RAM的容量。
(4)运算速度的单位MIPS(每秒106条指令)、BIPS(每秒109)
(5)了解其他性能指标:平均无故障工作时间(MTBF)、平均修复时间(MTTR)等。
15、光存储器:只读光盘(CD-ROM、DVD)、追记型光盘(CD-R、WORM)和可改写型光盘(CD-RW、MO)等。
16、显示器的主要性能指标:点距、分辨率、扫描频率和刷新速度(Hz)。
17、打印机的分类:点阵式(针式)打印机、喷墨打印机和激光打印机。
18、模数(A/D)转换是对音频信号的采样、量化和编码的过程。采样精度越高数字声音越逼真。
19、采样频率是指每秒钟对音频信号的采样次数,采样频率只要达到信号最高频率的两倍,就能精确描述被采样的信号。
20、人耳的听力范围在20Hz到20kHz之间,采样频率到少要达到40kHz,大多数声卡的采样频率都已达到44.1kHz或48kHz。
21、操作系统的主要功能:处理机管理、存储管理、设备管理、文件管理和作业管理。其中处理机管理、存储管理、设备管理属于硬件资源;文件管理和作业管理属于软件资源管理。
22、操作系统一般分为三种基本类型:批处理系统、分时系统和实时系统。后来又出现嵌入式操作系统、个人操作系统、网络操作系统、分布式操作系统等。
23、操作系统的主要特征:并发性、共享性、异步性和虚拟性。其中并发性和共享性是操作系统两个最基本的特征。
24、各种操作系统的特点
(1)批处理操作系统:系统操作员将许多用户的作业组成一批作业,启动操作系统,系统自动、依次执行每个作业,最后由操作员将作业结果交给用户。
(2)分时操作系统:一台主机连接了多个终端,各终端交互式地向系统提出请求,系统采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。
(3)实时操作系统:计算机在规定的时间内响应并处理外部事件的请求
(4)嵌入式操作系统:运行在嵌入式系统环境中
25、根据同一时间使用计算机用户的多少,操作系统分为单用户操作系统和多用户操作系统。
根据同一时间运行程序的多少,操作系统分为单任务操作系统和多任务操作系统。
26、DOS操作系统是单用户单任务操作系统,Windows XP则是单用户多任务操作系统,Windows 7则是多用户多任务操作系统。
27、常用操作系统简介
(1)Windwos操作系统是为个人电脑和服务器用户设计的操作系统。
(2)UNIX是多用户、多任务操作系统。从操作系统分类上,属于分时操作系统。
(3)Linux是多用户、多任务,支持多线程、多CPU的操作系统。Linux继承了UNIX以网络为核心的设计思想,它还是一种嵌入式操作系统。
(4)IOS是由苹果公司开发的手持设备操作系统。
(5)Android是一种基于Linux的自由及开放源代码的操作系统,主要用于移动设备(如智能手机和平板电脑)。
(6)Mac OS是苹果机专用系统,是基于UNIX内核的图形化操作系统。相对于Windows系统,Mac的架构很少受到病毒的袭击。
28、Windows 7操作系统的6个版本:Windows 7 starter(初级版)、Windows 7 homebasic(家庭普通版)、Windows 7 home premium(家庭高级版)、Windows 7 professional(专业版)、Windows 7enterprise(企业版)、Windows 7 ultimate(旗舰版)。
29、安装Win7系统的硬件配置要求。CPU 1GHz 内存 1GB(32位) 2GB(64位)显示器 1024*768 硬盘可用空间 16GB 安装Win7系统的硬盘分区必须采用NTFS文件系统。
30、打开的多个程序或窗口间的切换快捷键:Alt+Tab/Win+Tab/Alt+ESC
关闭当前应用程序或窗口的快捷键:Alt+F4
01程序编译过程分析,预处理,编译,汇编,链接
前言
我们大多数开发人员在编写完程序之后都会通过相应的IDE执行编译的操作,将所编写的源代码转换成计算机可以识别并执行的文件。这个从源代码转换成可执行文件的过程有相应的IDE帮助我们完成,很多朋友对于这个过程都不太熟悉,今天我们就一起探讨下可执行文件的生成过程,这个过程又叫做程序的编译与链接。
一:hello word由浅入深
对于程序员开发者来说,hello world程序的编写,大家闭上眼睛都能写出来,今天我们就以hello world为例来探讨一下可执行文件的生成过程,废话不多说,下面就是hello word的源码
上面代码的功能就是输出hello,word。然而计算机不可能直接执行hello world.c下面我们用一张图来讲一下hello world.c是如何被被执行。
从上面的图中,我们大致可以看到,hello.c要想变成计算机可以执行的hello(可执行目标文件)需要经过预处理,编译,汇编,链接等步骤,这些步骤主要是干什么的,有各自有什么作用,我们下面一一进行分析。
二:预处理
首先我们先来看一下预处理的执行命令
– $gcc –E hello.c –o hello.i
– $cpp hello.c > hello.i
预处理执行的功能:
- 删除“#define”并展开所定义的宏
- 处理所有条件预编译指令,如“#if”,“#ifdef”, “#endif”等
- 插入头文件到“#include”处,可以递归方式进行处理
- 删除所有的注释“//”和“/* */”
- 添加行号和文件名标识,以便编译时编译器产生调试用的行号信息
- 保留所有#pragma编译指令(编译器需要用)
经过预编译处理后,得到的是预处理文件(如,hello.i) ,它还是一个可读的文本文件 ,但不包含任何宏定义,上面所说的第3条插入头文件到“include”处,可以理解为将头文件里面的内容进行展开,下面用一张图来进行描述
三:编译
编译过程就是将预处理后得到的预处理文件(如 hello.i)进行词法分析、语法分析、语义分析、优化后,生成汇编代码文件。用来进行编译处理的程序称为编译程序(编译器,Compiler)
编译命令
– $gcc –S hello.i –o hello.s
– $gcc –S hello.c –o hello.s
– $/user/lib/gcc/i486-linux-gnu/4.1/cc1 hello.c
上面3条编译指令表明,我们可以通过.i文件输出汇编文件.s同时也可以直接将.c文件编译成.s文件。第3条指令则是通过编译器直接执行,与前两条执行效果一样。gcc命令实际上是具体程序(如ccp、cc1、as等)的包装命令,用户通过gcc命令来使用具体的预处理程序ccp、编译程序cc1和汇编程序as等
经过编译后,得到的汇编代码文件(如 hello.s)还是可读的文本文件,CPU无法理解和执行它,不要着急,我们接下来看下一步汇编命令的执行过程
四:汇编
首先我们先了解下汇编代码文件(由汇编指令构成)称为汇编语言源程序,其实就是上面编译过程结束之后生成的.s文件,这个文件就是汇编代码文件,改文件是有一条条汇编指令构成,汇编的作用就是讲这一条条汇编指令转换成对应的机器执行。
• 汇编程序(汇编器)用来将汇编语言源程序转换为机器指令序列(机器语言程序)
• 汇编指令和机器指令一一对应,前者是后者的符号表示,它们都属于机器级指令,所构成的程序称为机器级代码,汇编的过程比较简单,只需要将相应的汇编指令翻译成对应的机器指令即可,没有什么复杂的变化。
汇编命令
– $gcc –c hello.s –o hello.o
– $gcc –c hello.c –o hello.o
– $as hello.s -o hello.o (as是一个汇编程序)
汇编结果是一个可重定位目标文件(如,hello.o),其中包含的是不可读的二进制代码,必须用相应的工具软件来查看其内容
五:链接
哇,经过了上面一系列的流程,终于到了最后一步,我们的hello world 终于要完成了,下面我们就来看下最后一步链接的处理吧。
预处理、编译和汇编三个阶段针对一个模块(一个*.c文件)进行处理,得到对应的一个可重定位目标文件(一个*.o文件),但是在程序的编写过程中,我们都是多个.c文件的,这样经过上面的预处理,编译汇编的过程之后我们得到的也是多个.o(可重定位目标文件),但是我们在最终执行的时候是只有一个可执行文件的,这个过程就是连接的目的了。
链接过程将多个可重定位目标文件合并以生成可执行目标文件,大家可以看下最初时候的图,在最后一步连接的过程中,我们不只是要hell.o而且还需要printf.o(代码中含有printf函数),链接就是将这连个.o合并为一个生成可执行目标文件
链接命令
– $gcc –static –o myproc main.o test.o
– $ld –static –o myproc main.o test.o
–static 表示静态链接,如果不指定-o选项,则可执行文件名为“a.out”
一步步教你编写汇编程序
欢迎关注我,学习更多计算机知识!
什么是机器语言?
机器语言就是由二进制数字构成的程序,CPU 可以直接对其解释、执行。
汇编语言、C 语言、Java、BASIC 等编程语言编写的程序,也都需要先转换成机器语言才能被执行。机器语言有时也叫作“原生代码”(Native Code)。
本篇文章我们就来学习一下如何编写汇编语言,汇编语言是低级语言,所以它是最接近机器语言的编程语言。
学习汇编语言,能让你更深刻的理解计算机的运行机制和原理,使你犹如拨云见日, 找到长期困惑着自己的问题的答案,不仅能因“我能看懂程序了”而获得成就感,更能因发现“计算机原来很简单啊”而信心倍增。
使用汇编语言编写一段程序然后让计算机运行你编写的程序,你就知道计算机是如何把汇编语言转换成机器语言执行的。
你可能会问,我们为什么不直接使用机器语言编写程序呢?原因就是机器语言是一堆的0和1的组合,但是每个组合都是有特定的含义的指令或数据,所以对人来说,如果只看0和1的话很难判断出各个组合都表示什么。
简单地说,就是机器语言不适合人类书写和阅读。
于是就有人发明了汇编语言,可以用一些英文单词或者英文简写来表示指令功能,这种类似的英语单词叫作“助记符”,使用助记符的编程语言叫作“汇编语言”。
无论是使用机器语言还是汇编语言,所实现的功能都是一样的, 区别只在于程序是用数字表示,还是用助记符表示。
也就是说,如果理解了汇编语言,也就理解了机器语言,更进一步也就理解了计算机 的原始的工作方式。
汇编语言的语法十分简单,以至于语法只有一个,即把“标签” “操作码(指令)”和“操作数(指令的对象)”并排写在一行上,仅此而已。
如下是一段汇编语言:
标签的作用是为该行代码对应的内存地址起一个名字。
编程时如果总要考虑这一行的内存地址是什么?就会很不方便,所以在汇编语言中用标签来代替地址。用汇编语言编程时可以在任何需要标签的地方贴上名称任意的标签。
在上述代码程序中,使用了名称为“LOOP:”的标签,操作码就是表示“做什么”的指令。
因为用助记符表示的指令是英语单词的缩写,比如 LD 是 Load(加载)的缩写,所以多多少少能猜出其中的含义。汇编语言中提供了多少种助记符,CPU 就有多少种功能。
比如Z80 CPU 的指令全部加起来有 70 条左右。
CPU 的寄存器、内存地址、I/O 地址或者直接给出的数字都可以作为操作数。
如果某条指令需要多个操作数,那么它们之间就要用逗号分割。操作数的个数取决于指令的种类。也有不需要操作数的指令,比如用于停止 CPU 运转的 HALT 指令。
汇编语言的语法和英语祈使句的语法很像。对比英语的祈使句 Give me money 和汇编语言的语句,就可以看出在英语的祈使句中,一 开头放置了一个表示“做什么”的动词,这个动词就相当于汇编语言中的操作码。
在动词后面放置了一个表示“动作作用到什么上”的宾语, 这个宾语就相当于汇编语言中的操作数。
因为程序的作用是向 CPU 发出指令,而且编程语言又是由说英语的人发明的,所以编程语言与英语祈使句类似也就不足为奇了。
构成机器语言的是二进制数,而在汇编语言中,则使用十进制数和十六进制数记录数据。若仅仅写出123这样的数字,表示的就是十进制数;而像123H这样在数字末尾加上了一个H(H 表示 Hexadecimal, 即十六进制数),表示的就是十六进制数。
这里先把主要的指令列在如下表中,请大家粗略地浏览一下。
在浏览的过程中请注意这些指令的分类,按功能这些指令可以分成运算、与内存的输入输出和 与 I/O 的输入输出三类。
这是因为计算机能做的事也只有输入、运算、输出这三种了。 操作数表示的是指令执行的对象。
欢迎关注我,学习更多计算机知识!
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。