计算机指令

处理器体系结构学习记录

笑着哭i 提交于 2020-02-01 01:16:57
重要知识点 指令集体系结构 一个处理器支持的指令和指令的字节级编码称为它的指令集体系结构。 Y86处理器 Y86处理器状态类似于IA32。有8个程序寄存器:%eax,%ecx,%edx,%ebx,%esi,%edi,%esp和%ebp。处理器每个程序寄存器存储一个字。寄存器%esp被入栈、出栈、调用和返回指令作为栈指针。在其他情况中,寄存器没有固定的含义或固定值。有3个一位的条件码:ZF、SF和OF,它们保存最近的算术或逻辑指令所造成影响的相关信息。程序计数器(PC)存放当前正在执行的指令地址。 Y86指令 字节 halt 0 0 nop 1 0 rrmovl rA,rB 2 0 rA rB irmovl V,rB 3 0 F rB V rmmovl rA,D(rB) 4 0 rA rB D mrmovl D(rB),rA 5 0 rA rB D OPl rA,rB 6 fn rA rB jXX Dest 7 fn Dest comvXX rA,rB 2 fn rA rB call Dest 8 0 Dest ret 9 0 pushl rA A 0 rA F popl rA B 0 rA F 注:rA、rB为寄存器标识符,V,D,为常数,Dest为地址。 Y86指令编码 整数操作编码 addl 6 0 subl 6 1 andl 6 2 xorl 6 3 分支操作编码 jmp 7

20155212 2017-2018-1 《信息安全系统设计》第7周学习总结

北城以北 提交于 2020-02-01 01:10:17
20155212 2017-2018-1 《信息安全系统设计》第7周学习总结 教材学习内容总结 Chapter 4 定义一个指令集包括 状态单元 指令集 编码 编程规范 异常事件处理 程序员可见状态:每条指令都会读取或修改处理器状态的某些部分 状态码Stat:表明程序执行的总体状态 执行字级计算的组合电路根据输入字的各个位,用逻辑门来计算输出字的各个位 组合电路从本质上讲,不存储任何信息,只是简单地响应输入信号,产生等于输入的某个函数的输出 处理 取指——PC增加器:从内存读取指令字节,地址为PC的值。从指令中抽取出指令指示符的两个四位部分 icode (指令代码)和 ifun (指令功能) 译码——读端口A和B:从寄存器文件读入最多两个操作数,得到值valA和/和valB 执行——ALU、CC:ALU,要么执行指令指明的操作(根据ifun),计算内存引用的有效地址,要么增加或减少栈指针。该阶段决定分支。 访存——内存:读写数据 写回——两个写端口:最多可以写两个结果到寄存器文件 更新PC——PC:将PC设置成下一条指令的地址 处理器停止的异常:执行halt指令或非法指令、或试图读/写非法地址 除了ALU计算必须根据ifun中编码的具体的指令操作来设定 组织计算原则:从不回读 SEQ阶段实现 取指阶段 译码和写回阶段 执行阶段 访存阶段 更新PC阶段 引入流水线能获得更好的性能

Java并发67问

守給你的承諾、 提交于 2020-01-31 04:00:54
1. 并发和并行 2. 进程和线程 对于操作系统来说,一个任务就是一个进程(Process),比如打开一个浏览器就是启动一个浏览器进程,打开一个记事本就启动了一个记事本进程,打开两个记事本就启动了两个记事本进程,打开一个Word就启动了一个Word进程。 而在多个进程之间切换的时候,需要进行上下文切换。但是上下文切换势必会耗费一些资源。于是人们考虑,能不能在一个进程中增加一些“子任务”,这样减少上下文切换的成本。比如我们使用Word的时候,它可以同时进行打字、拼写检查、字数统计等,这些子任务之间共用同一个进程资源,但是他们之间的切换不需要进行上下文切换。 在一个进程内部,要同时干多件事,就需要同时运行多个“子任务”,我们把进程内的这些“子任务”称为线程。 随着时间的慢慢发展,人们进一步的切分了进程和线程之间的职责。 把进程当做资源分配的基本单元,把线程当做执行的基本单元,同一个进程的多个线程之间共享资源 3. 类变量,成员变量和局部变量 Java中共有三种变量,分别是类变量、成员变量和局部变量。他们分别存放在JVM的方法区、堆内存和栈内存中 public class Variables { /** * 类变量 */ private static int a ; /** * 成员变量 */ private int b ; /** * 局部变量 * @param c */ public

1.2.6 错题整理(组成原理)

我怕爱的太早我们不能终老 提交于 2020-01-31 02:52:21
文章目录 1.冯·诺依曼机的基本工作方式? 2.CPU如何区分指令和数据? 3.存放将要执行的指令的寄存器&存放将要执行的指令地址的寄存器是什么? 4.在运算器中不包含地址寄存器MAR 5.关于编译程序和解释程序? 6.相联存储器? 7.存储程序原理? 8.根据存储程序原理,计算机应具有哪几大功能? 1.冯·诺依曼机的基本工作方式? 控制流(指令流)驱动方式 。即按照指令的执行序列,依次读取指令,然后根据指令所含的控制信息,调用数据进行处理。 2.CPU如何区分指令和数据? 在冯·诺依曼计算机中指令和数据都是以二进制进行存储,CPU区分它们的依据是 指令周期的不同阶段 ,通常在 取指阶段取出的是指令,执行阶段取出的是数据 。 CPU只有在 确定 取出的是指令后,才能将其操作码送去译码,因此不可能依据译码的结果区分指令和数据。 3.存放将要执行的指令的寄存器&存放将要执行的指令地址的寄存器是什么? IR-指令寄存器:存放将要执行的 指令 PC-程序计数器:存放将要执行的指令的 地址 4.在运算器中不包含地址寄存器MAR 地址寄存器 MAR 在 CPU 中,但未集成到 运算器和控制器 中。 5.关于编译程序和解释程序? 编译程序:以高级程序设计语言书写的源程序作为输入,而以 汇编语言 或 机器语言 表示的 目标程序 作为输出。 解释程序:一边解释,一边执行。

汇编,寄存器,内存,mov指令

╄→гoц情女王★ 提交于 2020-01-30 20:56:12
一.代码 和 汇编 和 二进制之间的关系 二.复习一下计算机组成原理的知识 1.寄存器 计算机中有三个存储 32位cpu提供的寄存器有三种类型8位 16位 32位 64位的只是32位的扩展 并且程序大多是32位 以下是32位的8个通用寄存器(有宽度) 2.MOV指令 mov eax ,1(向eax寄存器存1) mov edx , eax(把edx里面的值存到eax ) 例子: EAX:32位通用寄存器 假如FFFFFFFF 一个F(16进制)化为2进制 1111,也就是4位 所以为什么叫32(四个字节) ? 4*8=32 三.内存 1.内存 内存空间和物理内存都不是内存条!物理内存和内存条之间还有一层映射关系。   下面的话其实并不是真正的给每一个进程分了4g的内存条,等进程 真正要去写/读内存的时候就把4g内存映射到物理内存上去。    2.内存地址 内存太多起不了名字 只能用编号。 每一行的内存编号代表一个字节 3.mov指令向内存写数据 与往寄存器里面写是不一样的 内存 eax32位 ax16位 他是自带数据宽度的, 而内存不一样,内存是连起来的一大片 所以 ! 不同点:向内存写的时候必须明确告诉其宽度。 byte = 1字节 word = 2字节 dword = 4字节 <1> 那么就有一个问题,就是一行的内存地址编号是一个字节。 现在村的数据是四个字节,那么可行吗? 可行

《人月神话》读后感*part2

江枫思渺然 提交于 2020-01-30 20:42:30
在做项目的时候,难免有分歧。有的人就觉得自己的好,想要应用自己的东西,画蛇添足,造成混乱。那么如何避免呢? 结构式最好牢记是开发人员承担创造性和发明性的实现责任,所以结构师只能建议,而不能支配;时刻准备着为所指定的说明建议一种实现的方法,同样准备接受其他任何能达到目标的方法;对上述的建议保持低调和平静; 准备放弃坚持所作的改进建议。结构师如何避免画蛇添足——开发第二个系统所引起的后果?是的,他无法跳过二次系统。但他可以有意识关注那些系统的特殊危险,运用特别的自我约束准则,来避免那些功能上的修饰;根据系统基本理念及目的变更,舍弃一些功能。项目经理如何避免画蛇添足?他必须坚持至少拥有两个系统以上开发经验结构师的决定。同时,保持对特殊诱惑的警觉,他可以不断提出正确的问题,确保原则上的概念和目标在详细设计中得到完整的体现。 那么规划了这么多,光说不做是不行的。而且,要展现在书面上,文件中,最好有个项目手册。能让所有人都明白整个的架构和一些细节,都能理解。这和我们的统一建模语言UML课所学的差不多。都是做出能让客户和工程师都能理解并且进行交流的东西。手册、或者书面规格说明,是一个非常必要的工具,尽管光有文档是不够的。手册是产品的外部规格说明,它描述和规定了用户所见的每一个细节;同样的,它也是结构师主要的工作产物。手册不但要描述包括所有界面在内的用户可见的一切

指令

安稳与你 提交于 2020-01-30 12:36:34
微指令 微指令是指微程序在控制的计算机中,同时发出的控制信号所执行的一组微操作。 将一条机器指令编写成一个微程序,然后把这这些微程序放到控制存储器里,用寻找机器指令的方法来寻找每个微程序的微指令,这就是微程序设计思想。 机器指令 机器指令(Machine Instructions)是CPU能直接识别并执行的指令,它的表现形式是二进制编码。机器指令通常由操作码和操作数两部分组成,操作码指出该指令所要完成的操作,即指令的功能,操作数指出参与运算的对象,以及运算结果所存放的位置等。 来源: CSDN 作者: 吃数据的猴子 链接: https://blog.csdn.net/m0_43450897/article/details/103924386

计算机组成:输入输出系统

老子叫甜甜 提交于 2020-01-29 18:22:09
输入输出系统 通道可以看做是DMA的升级版,通道有自己的控制器甚至是存储器、内存 通道可以执行由通道指令编写的程序,由操作系统完成 如果使用通道,就不是连接接口了,而是连接设备管理器 I/O处理机可以使用微处理器甚至直接使用和主处理器相同的处理器来做,当然这就不是家用电脑的范畴了,强大的I/O处理机甚至在没有IO工作时,可以作为主机的处理器来使用 I/O和主机的连接方式 统一编址:将io地址看成内存地址的一部分。这种方式实现了io和内存的统一不需要单独的io指令,CPU指令集相对简单,如果内存空间比较大(eg.64位)可以采用这种方式 单独编址: 串行速度慢,但是适合长距离传输 不便于增删设备 外部设备输出的数据可以先缓存到io接口,进行数据格式的转换等操作再输入主机 便于增删设备、采用标准接口,可移植性强 信息传送的控制方式 CPU直接对IO进行管理 缺点就是广为人知的,浪费CPU DMA请求:向CPU申请占用一个存取周期的总线控制权从而将外部设备的数据加载到内存中,这个周期内CPU不能使用总线对内存进行访问,但是这段时间CPU依然可以正常使用(由于CPU会预先取一部分指令,这段时间不能访问内存有可能影响不大) 外部设备简介 主观图像:用户绘制的图像,由点线面构成,就是简单的那种 客观图像:eg.GUI A:模拟信号 D:数字信号 IO接口 为什么使用接口 主机可能使用并行传输

c语言编译执行过程

天大地大妈咪最大 提交于 2020-01-29 15:58:11
<h4>认识C编译执行过程</h4> 认识C编译执行过程,是C学习的开端。 简单说C语言从编码编译到执行要经历一下过程: C源代码 编译---->形成目标代码,目标代码是在目标机器上运行的代码。 连接---->将目标代码与C函数库相连接,并将源程序所用的库代码与目标代码合并,并形成最终可执行的二进制机器代码(程序)。 执行----->在特定的机器环境下运行C程序。 如果用一个图 来表示: <a href="http://www.emacsvi.com/wp-content/uploads/2015/10/c_compiler_execute.jpg"><img class="alignnone size-medium wp-image-202" src="http://www.emacsvi.com/wp-content/uploads/2015/10/c_compiler_execute-300x233.jpg" alt="c_compiler_execute" width="300" height="233" /></a>   编译,编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 C源程序头文件-->预编译处理(cpp)-->编译程序本身--

计算机操作系统学习(一)

杀马特。学长 韩版系。学妹 提交于 2020-01-29 12:24:08
1.系统中所有的信息,包括磁盘文件、存储器中的程序、存储器中存放的用户数据以及网络上传输的数据,都是由一串位表示的,区分不同对象的唯一方法就是我们都到这些数据对象时的上下文。 2.程序的生命周期都是从高级语言(如C语言)开始的,因为这种形式能够被人读懂,但是为了在系统中运行程序,每条高级语言源程序都必须被其他程序转化为一系列的低级机器语言指令,然后这写指令按照一种称为可执行目标程序的格式打包好,并且以二进制磁盘文件的形式存放起来,目标程序也称为可执行目标文件。 3.将一个源程序翻译成可执行目标文件,翻译过程可以分为4个阶段:预处理、编译、汇编、链接。 1)预处理,预处理器根据以字符#开头的指令,修改原始的程序,比如:#include<stdio.h>。 2)编译,编译器将预处理得到的文本文件翻译成汇编语言的文本文件。 3)汇编,汇编器汇编语言的文本文件翻译成机器语言指令,并且把这些指令打包成可重定位目标程序的格式,并且将结果以二进制的形式保存在.o文件中,它的字节编码是机器指令不是字符,所以文本编辑器打开是乱码。 4)链接,源程序需要用到一些库函数,则在链接阶段,连接器把需要用到的函数以.o文件的形式链接到可执行目标文件中。目标文件可以被加载到内存中执行。 4.计算机系统的硬件组成:总线、I/O设备、主存、处理器。 1)总线,一组电子管道,它携带字节信息在各个部件之间传递