计算机指令

一、计算机网络概论

别说谁变了你拦得住时间么 提交于 2019-11-30 07:38:27
1.计算机硬件基本组成(考点较少,了解基本组成即可,功能熟悉就行) (1)基本概述 计算机系统由硬件和软件组成。硬件由 运算器,控制器,存储器,输入输出设备 5大部件组成,这是由冯·诺依曼提出的经典计算机结构模型。 其中, 运算器和控制器 被集成在一起成为 中央处理单元-CPU 。CUP是 硬件 系统的核心,用于 数据加工处理 ,能完成各种 算数逻辑运算及控制 功能。 (2)各部件的作用如下:  控制器 :整机的指挥中心,它使计算机的各个部件自动协调工作。 运算器 :对数据信息进行处理的部件,用来进行算术运算和逻辑运算。 存储器 :存放程序和数据,是计算机实现“存储程序控制”的基础。  输入设备 :将人们熟悉的信息形式转换成计算机可以接受并识别的信息形式的设备。 输出设备 :将计算机处理的结果(二进制信息)转换成人类或其它设备可以接收和识别的信息形式的设备. (3)中央处理单元-CPU 包括运算器,控制器,寄存器组合内部总线。 1)、控制器 一般包括指令控制逻辑,时序控制逻辑,总线控制逻辑和中断控制逻辑等。 功能 (1)取指令 (2)分析指令 (3)执行指令,发出各种操作命令 (4)控制程序输入及结果输出 (5)总线管理 (6)处理异常和特殊请求 2)、运算器的功能 由算数逻辑单元、累加寄存器、数据缓冲寄存器和状态条件寄存器等组成,实现算术运算和逻辑运算

游戏编程模式--字节码

馋奶兔 提交于 2019-11-30 06:35:40
  ”通过将行为编码成虚拟机指令,而使其具备数据的灵活性。” 动机   制作游戏很有趣,但制作游戏却不易,特别是现在的游戏。现代游戏随着硬件技术的发展,游戏内容和玩法变得越来越丰富多样,在以前可能代码就几千行,但现代游戏的代码往往能达到几十万甚至几百万行。这么大的代码量,如果我们选择了c++这样的重量级语言(对于性能的追求,往往会让我们选择c或c++),编译的时间就不得不考虑了。游戏一个独有的苛刻的要求:有趣。玩家需要既新奇又具有平衡性的体验。这就需要持续迭代,但假如我们每一次修改都要工程师改底层的代码,然后等待漫长的重新编译,那么整个游戏的创作流程就被毁了。比如我们当前流行的moba类游戏,对于每个英雄的技能效果,设计都需要反复的修改才能在整体上达到一个平衡,如果不能提供一种修改后快速反馈结果的方式,相信没有那个设计师能坚持下去。   很明显,我们的编程语言不适合解决这个问题,我们需要另一种方式把这些经常需要修改的部分转移到安全沙箱中,同时让它们易于加载且在物理上于游戏的可执行文件分离。其实这些特性就优点像“数据”了,我们在运行的时候把它加载到内存中,然后按某种方式执行。也就是说我们使用“数据”来定义行为,然后执行这些数据。那有什么方法能让我们实现这种功能呢?其中一个是解释器模式,一个就是我们本节要讲的字节码模式。   首先我们简单来了解一下解释器模式

编程语言分类

a 夏天 提交于 2019-11-30 06:26:08
编程语言分类 一、机器语言 只要是谈到计算机基础,有一个东西是我们无法避免的,那就是编程到底是什么?我只放图,其他的你们自己YY。 现在来想象这样一个场景,如果奴隶来自不同的国家,作为尊贵而又穷逼买不起管家的奴隶主的我们,如果需要控制奴隶,则需要和奴隶有一定的沟通才能控制努力。 如果把奴隶换成计算机,由于计算机以二进制的形式存储数据,如果我们要奴役计算机,则需要使用二进制编写程序。也就是说,如果我们需要和计算机沟通,那我们必须得会二进制代码编程。而这个二进制代码编程则是使用机器语言编程,直接操作硬件。它的优缺点如下: 优点:执行效率高(还能在快吗?有的话,马都累死了…) 缺点:开发的效率低(有本事你把下图的代码翻译翻译) 1.1 机器语言编程 由于计算机内部只能接受二进制代码,因此,用二进制代码0和1描述的指令称为机器指令,全部机器指令的集合构成计算机的机器语言,用机器语言编程的程序称为目标程序。只有目标程序才能被计算机直接识别和执行。但是机器语言编写的程序无明显特征,难以记忆,不便阅读和书写,且依赖于具体机种,局限性很大,机器语言属于低级语言。 用机器语言编写程序,编程人员要首先熟记所用计算机的全部指令代码和代码的涵义。手编程序时,程序员得自己处理每条指令和每一数据的存储分配和输入输出,还得记住编程过程中每步所使用的工作单元处在何种状态。这是一件十分繁琐的工作

专接本微型计算机基础(三)8086、8088CPU的内部结构和外引线(掌握)

本小妞迷上赌 提交于 2019-11-30 03:33:17
一、中央处理器   1.中央处理器:控制计算机自动完成取出指令和执行指令任务的部件。他是计算机的核心部件,通常简称为CPU。   2.CPU的功能     a、指令控制:保证机器按程序规定的顺序取出执行。     b、操作控制:CPU产生每条指令所对应的操作信号,并把各种操作信号送往相应的部件,从而控制这些部件按指令的要求进行动作。     c、时间控制:对各种操作的实施时间进行定时     d、数据加工:对数据进行算数运算和逻辑运算处理   3、CPU的基本组成:主要由运算器和控制器两大部分组成,随着集成电路的发展,目前 CPU芯片上集成了一些其他逻辑功能的部件来扩充CPU功能,比如:Cache等。       a.Cache(高速缓冲存储器),是为了解决CPU和主存储器之间速度匹配的问题而设置的。       b、运算器是数据加工处理部件,所进行的全部操作由控制器的控制信号指挥。           功能:执行所有的算数运算,和逻辑运算,并进行逻辑测试       c、控制器:完成 对整个计算机系统操操作的协调与指挥           功能:1、控制机器从内存中取出一条指令,并指出下一条指令在内存中的位置;              2、对指令进行译码,并产生相应的操作控制信号,送往相应的部件,启动规定的动作 ;              3、指挥并控制CPU、内存与输入

基础知识

こ雲淡風輕ζ 提交于 2019-11-30 02:44:10
机器语言 :计算机工作基于二进制,从根本上说, 计算机只能识别和接受由0和1组成的指令 ,而这种指令称为 机器指令 ;基于二进制表示的语言就是机器语言。 用法 :在机器语言的规则中规定各种机器指令的表示形式以及它的作用。( 人为规定具体机器指令的具体作用 ) 缺点 :机器语言与我们习惯的语言相差太大,难以从容使用,必须记和翻阅指令表才可以。 优点   :机器语言占内存较高级语言少、运行效率也比高级语言高,且能直接操作计算机的各种硬件设备资源。 发展 :为了克服机器语言的缺点,我们创造出了 符号语言 (symbolic language) 符号语言 : 用一些英文字母和数字表示一个指令,例如用ADD代表'加',MOV代表'移动',LD代表'传送'.....(其实就是我们日常说的汇编语言) 用法 :比如 ADD A,B 表示的是A加上B... 缺点 :前面我们说过计算机只能识别和接受0和1,而符号语言必须翻译成机器语言才可被计算机识别。翻译符号语言需要用到一种称为 汇编程序 的软件,把符号语言的指令转换为机器指令。一般,一条符号语言的指令对应转换为一条机器指令。转换的过程或者说是翻译的过程称为'汇编',因此,符号语言又称为 符号汇编语言 或 汇编语言 (assembler language) 。 虽然汇编语言比机器语言简单好记一些,但仍然比较复杂,也需要记忆基本指令集和翻阅指令集

Linux系列(3):入门之正确的关机方法

孤街浪徒 提交于 2019-11-30 01:32:24
前言:在Windows(非NT主机系统)系统中,由于是单人假多任务的情况,所以即使你计算机关机,对于别人也没有丝毫影响!不过,在Linux下面,由于每个程序(或者服务)都是在在背景下执行,因此,在看不到的屏幕背后其实有相当多的人同时在你的主机上面工作,例如浏览网页、以FTP传送信件呐等等,如果此时直接按下电源来关机时,则其他人的数据可能就此中断!此外,最大的问题是,若不正常关机,则可能造成文件系统的损毁(因为来不及将数据回写到文件中,所以有些服务的文件可能有问题!) 1.Linux下的关机及注意事项 1.关机前注意事项 正常关机需要注意以下几个方面: 下面我们就来了解一下几个与关机、重启相关的指令 1.常用关机、重启指令 注意: 由于Linux系统的关机与重新开机是很重大的系统运行,因此只有root才能够进行例如shutdown、reboot等指令。不过由于在某些Linux版本中,例如我们使用的CentOS系统,它允许你在本机前的tty1~tty7当中(无论文字界面还是图形界面),可以用一般账号来关机或重新开机! tty:来简称各种类型的终端设备。tty是Teletype的缩写。Teletype是最早出现的一种终端 设备,很象电传打字机(或者说就是),是由Teletype公司生产的。设备名放在特殊文件目录/dev/下,终端特殊设备文件一般有以下几种:1.串行端口终端(/dev

Linux系列:入门

只谈情不闲聊 提交于 2019-11-30 00:12:15
Linux常用命令 声明:作者使用的Linux是CentOS7版本。 在Linux系统中,英文大小写是不一样的。举例来说,cd与CD是不同的。 1.指令格式: command [-opations] parameter1 parameter2 ... 上述指令详细说明如下: command为指令的名称,例如变换工作目录的指令为cd等等。 中括号[]表示可选项,并不存在与实际的指令当中,通常选项前会带有-号,例如-h。 parameter1 parameter2 ...为依附在选项后面的参数,或者是command的参数。 注意: 指令、选项、参数之间以空格区分,无论空几格shell都视为空1格;按下[Enter]按键后,该指令就会立刻执行;指令太长时,可以使用反斜线(\),来跳脱[Enter]符号,使指令连续到下一行。 2.常用指令 1.列出自己主文件夹(~)下的所有隐藏文件与相关的文件属性 指令:ls -al ~    ls -a -l ~ 上述两条指令执行的结果一样。 选项-a用途:显示隐藏文件名 选项-l用途:显示文件总数和文件的详细信息,比如文件权限、所属群组等。 2.语系相关命令 1.显示目前支持的语系 指令:locale 2.修改语系为英文语系 指令:LANG=en_US.utf8 3.基础操作指令 1.显示日期与时间 指令:date 上述指令显示的是欧美的日期格式

C++编辑编译链接运行

痴心易碎 提交于 2019-11-29 21:23:52
  从写一个简单的“hello world!”到完成一个大型程序,当程序从编辑完成到执行成功都会经过5个步骤,分别是预处理(Prepressing)、编译(Compilation)、汇编(Assembly)、链接(Linking)和执行(Executing)。了解这五个过程中所做的工作,对我们理解头文件、库文件等在程序中的作用是有帮助的,而且如果能够清楚的了解编译链接过程,在编程时定位错误,纠正错误,以及编程时手动调整编译器以通过调试有很大帮助。 1.预处理 预处理器,进行预处理。预处理过程主要处理那些源代码文件以“#”开始的预编译指令。比如“#include”、“#define”和条件预编译指令,如“#if”、“#ifdef”等。预处理时,将所有的“#define”删除,展开所有的宏定义,并且替换掉“#include”。    (1)宏定义指令 ,如#define a b。对于这种伪指令,预编译所要做的是将程序中的所有a用b替换,还有#undef,则将取消对某个宏的定义,使以后该串的出现不再被替换。    (2)条件编译指令 ,如#ifdef,#ifndef,#else,#elif,#endif等。这些伪指令的引入使得程序员可以通过定义不同的宏来决定编译程序对哪些代码进行处理。预编译程序将根据有关的文件,将那些不必要的代码过滤掉。    (3) 头文件包含指令 ,如

第十二章 Java内存模型与线程

▼魔方 西西 提交于 2019-11-29 19:11:47
概述 并发应用场景:①充分利用计算机处理器的能力;②一个服务端同时为多个客户端提供服务。 衡量一个服务性能的高低好坏,每秒事务处理数是最重要的指标之一。 硬件的效率与一致性 Java内存模型 主内存和工作内存 ①Java内存模型的主要目标是定义程序中各个变量的访问规则 – 虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量(Variables)包括了实例字段、静态字段和构成数组对象的元素,但不包括局部变量与方法参数,因为后者是线程私有的,不会被共享,自然就不会存在竞争问题。 ②Java内存模型并没有限制执行引擎使用处理器的特定寄存器或缓存来和主内存进行交互,也没有限制即时编译器进行调整代码执行顺序这类优化措施。 ③Java内存模型规定了所有的变量都存储在主内存(Main Memory,类比物理内存)。每条线程还有自己的工作内存(Working Memory,类比处理器高速缓存),线程的工作内存中保存了被该线程使用到的变量的主内存副本拷贝。线程对变量的所有操作(读取、赋值等)都必须在工作内存中进行,而不能直接读写主内存中的变量。不同的线程之间也无法直接访问对方工作内存中的变量,线程间变量值的传递均需要通过主内存来完成,线程、主内存、工作内存三者的交互关系如图所示。 内存间相互操作 一个变量如何从主内存拷贝到工作内存、如何从工作内存同步回主内存之类的实现细节

Linux文件压缩与部分指令

风流意气都作罢 提交于 2019-11-29 16:01:43
文件压缩原理 1.计算机系统都使用byte单位来计量,但是最小单位是bit。1byte=8bits,当一个数据不足8bits时,所占用的存储空间也是1byte,这样就占用了多余的空间,压缩技术就是将这些多余的空间释放出来,从而使文件变小。 2.有些数据会连续有很多重复的部分,压缩技术将这些重复的数据进行统计记录,来达到压缩的目的。比如,某数据为‘1111111111…’,那么压缩技术可以记录为n个1,不需要全部存储起来占用空间。 但是数据在使用时,还需要解压,恢复成原本的样子,这样操作系统才可以识别。 解压 Linux环境下,压缩文件的拓展名一般为*.tar, *. tar.gz , *.gz , *.Z, *.bz2 *.Z:compress程序压缩的文件 ** .gz:gzip程序压缩的文件 .bz2:bzip2程序压缩的文件 *.tar:tar程序打包的文件,并没有压缩过 *. tar.gz:ar程序打包的文件,经过gzip的压缩 *. tar.bz2:ar程序打包的文件,经过bzip2的压缩 不同的拓展名用不同的解压命令。 gzip gzip是应用最广的压缩命令。可以解开compress,zip,gzip压缩的文件。 压缩:#gzip -v XXX.config 解压 #gzip -d XXX.config.gz -v:显示出压缩比信息 -d:解压缩的参数 bzip2