指令周期

《编码》读书笔记:从无到有构建计算机系统

人走茶凉 提交于 2020-02-10 07:49:47
1 简单的电报系统: 按键、发声装置,电池和一些导线即可构成: 当电报机的键按下时,发生器的电磁铁将可动棒拖下发出“滴”的声音;当键放开时,棒弹回初始位置,发出“嗒”的声音。快速的“嘀嗒”为点,慢速的则为划。 2 继电器 电磁式继电器一般由铁芯、线圈、衔铁、触点簧片等组成的。只要在线圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应,衔铁就会在电磁力吸引的作用下克服返回弹簧的拉力吸向铁芯,从而带动衔铁的动触点与静触点(常开触点)吸合。当线圈断电后,电磁的吸力也随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点与原来的静触点(常闭触点)吸合。这样吸合、释放,从而达到了在电路中的导通、切断的目的。对于继电器的“常开、常闭”触点,可以这样来区分:继电器线圈未通电时处于断开状态的静触点,称为“常开触点”;处于接通状态的静触点称为“常闭触点”。 长距离导线会有很大的电阻,会导致电流越来越小。下图中的继电器系统就是为了增大电流。 上述通信系统中的继电器的简单实现: 3 逻辑代数与电路 逻辑代数是分析和设计逻辑电路的数学基础。逻辑代数是由英国科学家乔治·布尔(George·Boole)创立的,故又称布尔代数。 4 逻辑门 (logic gates) 逻辑门和通常让水和人通过的门十分相似。逻辑门通过阻挡或允许电流通过在逻辑中执行简单的任务。 (1)与门

Java第三章练习

谁说胖子不能爱 提交于 2020-02-09 18:14:05
3.1解一元二次方程 /* 数据:a,b,c,判别式Δ=b^2-4ac,实根r1和r2 指令:输入 计算判别式 判别实根个数 计算实根 输出结果 步骤: 1.提示用户输入a、b和c的值。 2.根据b^2-4ac的判别式来计算一元二次方程的实根个数,并将实根个数输出。 3.通过一元二次方程的求根公式计算一元二次方程的实根的值,并将其输出。 */ import java.util.Scanner; class Demo03_01{ public static void main(String[] args){ //1. System.out.print("Enter a, b, c: "); Scanner input = new Scanner(System.in); double a = input.nextDouble(); double b = input.nextDouble(); double c = input.nextDouble(); //2. double delta = b * b - 4 * a * c; //3. if (delta > 0){ double r1 = ( - b + Math.pow(delta, 0.5)) / (2 * a); double r2 = ( - b - Math.pow(delta, 0.5)) / (2 * a);

Vue(九)---自定义指令(directive )

吃可爱长大的小学妹 提交于 2020-02-03 14:49:41
1.无参数 自定义指令的方式: 1. 使用Vue.directive 来自定义 2. 第一个参数就是 指令名称 xart 3. el 表示当前的html dom对象 4. 在方法体内就可以通过 innerHTML style.color 等方式操控当前元素了 <body> <div id="app"> <div v-xxx> 商店 </div> </div> <script type="text/javascript"> Vue.directive('xxx',function(el){ el.innerHTML = el.innerHTML + ' ------------ ' el.style.color = 'blue' }) new Vue({ el:'#app' }) </script> </body> 2.有参数: <body> <div id="app"> <div v-xxx='{color:"red"}'> 商店 </div> </div> <script type="text/javascript"> Vue.directive('xxx', function (el,binding) { el.innerHTML = el.innerHTML + '( ' + binding.value.color + ' )' el.style.color =

DSP处理器和ARM处理器的区别以及各自应用在那些领域

眉间皱痕 提交于 2020-02-03 06:39:35
  由于工作经常接触到各种多核的处理器,如TI的达芬奇系列芯片拥有1个DSP核3个ARM核。那么DSP处理器和ARM处理器各自有什么区别,各自适合那些领域? DSP:digital signal processor数字信号处理器,也指digital signal process数字信号处理,有自己指令集。DSP处理器的特点如下: 有专门的的硬件乘法器,能进行大量的乘法操作,与通用的MCU处理器不同,通用的MCU在执行乘法操作时是通过软件编程的方式的来实现的,通常需要几十甚至上百个时钟周期,而DSP处理器却有自己的硬件乘法器,使用硬件的方式来执行乘法操作,用硬件的方法总比用软件的方法有着无法比拟的速度优势。另外DSP处理都有自己的累加器单元AUL,大多数的DSP处理器在执行乘加操作时可以在一条指令周期内同时完成乘法和加法操作。DSP与一般MCU最大的区别在于DSP拥有硬件乘法器。 拥有哈弗型的总线结构,使得取指令和取数据可以同时进行,大大提高了并行处理的能力。 pipeline技术。广泛采用pipeline(流水线)处理技术使得DSP芯片大大减少了指令执行的时间,增强了处理器的处理能力。一条指令在执行的过程中需要经过取指、指令译码、取操作数以及指令执行等几个阶段,DSP的pipeline技术是指程序在运行时若干条指令是同时进行的,即在本条指令执行的同时

IL指令详细

旧巷老猫 提交于 2020-02-02 12:31:56
名称 说明 Add 将两个值相加并将结果推送到计算堆栈上。 Add.Ovf 将两个整数相加,执行溢出检查,并且将结果推送到计算堆栈上。 Add.Ovf.Un 将两个无符号整数值相加,执行溢出检查,并且将结果推送到计算堆栈上。 And 计算两个值的按位“与”并将结果推送到计算堆栈上。 Arglist 返回指向当前方法的参数列表的非托管指针。 Beq 如果两个值相等,则将控制转移到目标指令。 Beq.S 如果两个值相等,则将控制转移到目标指令(短格式)。 Bge 如果第一个值大于或等于第二个值,则将控制转移到目标指令。 Bge.S 如果第一个值大于或等于第二个值,则将控制转移到目标指令(短格式)。 Bge.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。 Bge.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt 如果第一个值大于第二个值,则将控制转移到目标指令。 Bgt.S 如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。 Bgt.Un 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令。 Bgt.Un.S 当比较无符号整数值或不可排序的浮点型值时,如果第一个值大于第二个值,则将控制转移到目标指令(短格式)。

单片机的中断系统

独自空忆成欢 提交于 2020-02-02 04:38:04
有关单片机中断系统的概念:什么是中断,我们从一个生活中的例程引入。你正在家中看书,突然电话铃响了,你放下书本,去接电话,和来电话的人交谈,然后放下电话,回来继续看你的书。这就是生活中的“中断”的现象,就是正常的工作过程被外部的事件打断了。仔细研究一下生活中的中断,对于我们学习单片机的中断也很有好处。 第一、什么可经引起中断,生活中很多事件能引起中断:有人按了门铃了,电话铃响了,你的闹钟闹响了,你烧的水开了….等等诸如此类的事件,我们把能引起中断的称之为中断源,单片机中也有一些能引起中断的事件,8031中一共有5个:两个外部中断,两个计数/定时器中断,一个串行口中断。 第二、中断的嵌套与优先级处理:设想一下,我们正在看书,电话铃响了,同时又有人按了门铃,你该先做那样呢?如果你正是在等一个很重要的电话,你一般不会去理会门铃的,而反之,你正在等一个重要的客人,则可能就不会去理会电话了。如果不是这两者(即不等电话,也不是等人上门),你可能会按你常常的习惯去处理。总之这里存在一个优先级的问题,单片机中也是如此,也有优先级的问题。优先级的问题不仅仅发生在两个中断同时产生的情况,也发生在一个中断已产生,又有一个中断产生的情况,比如你正接电话,有人按门铃的情况,或你正开门与人交谈,又有电话响了情况。考虑一下我们会怎么办吧。 第三、中断的响应过程:当有事件产生

第六周学习报告

筅森魡賤 提交于 2020-02-01 02:55:32
4.1Y86指令体系结构 程序员可见状态 ISA: 一个处理器支持的指令和指令的字节级编码称为~。 冒险: 一条指令的位置或者操作数依赖于其他仍在流水线中的指令。 程序员可见状态: Y86程序中的每条指令都会读取或修改处理器状态的某些部分 =>只要我们保证机器级程序能够访问程序员可见状态,就不需要完全按照ISA隐藏方式来表示和组织这个处理器状态。 Y86的处理器状态类似于IA32。 有8个程序寄存器。处理器每个程序寄存器储存一个字。寄存器%esp被入栈,出栈,调用和返回指令作为栈指针。 有3个一位条件码:ZF,SF, OF.保存最近的算术或者逻辑指令所造成影响的有关信息。 程序计数器PC:存放当前正在执行指令的地址。 存储器:(概念上来说是一个很大的字节数组)保存着程序和数据。Y86程序用虚拟地址来引用存储器位置。 程序状态的最后一部分状态码Stat,表明程序执行总体状态。 Y86指令 只包括四字节整数操作,所以称之为“字 ”。 Y86指令集,长度1~6字节不等。一条指令含有一个单字节的指令表示符,可能含有一个单字节的寄存器指示符,还可能含有一个四字节的常数字。 字段fn:指明是某个整数操作(OPL),数据移动条件(comvxx)或是分支条件(jxx)。所有数值都使用16进制。 Y86指令的更多细节: movl指令分成了四个不同的指令irmovl,rrmovl

20145334 《信息安全系统设计基础》第六周学习

断了今生、忘了曾经 提交于 2020-02-01 02:08:04
1.程序员可见状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分,称为程序员可见状态。其中包括: 8个程序寄存器:%eax,%ecx,%edx,%ebx,%esi,%edi,%esp和%ebp。 条件码:ZF(零)、SF(符号)、OF(有符号溢出) 程序计数器(PC):存放当前正在执行的指令的地址 存储器:很大的字节数组,保存着程序和数据。Y86系统用虚拟地址来引用存储器的位置,硬件和操作系统软件联合起来将虚拟地址翻译成实际或者物理地址。 状态码(stat):表明程序执行的总体状态。 Y86指令 movl:irmovl、rrmovl、mrmovl、rmmovl,分别显式地指明源和目的地的格式。第一个字母表明源的类型,i(立即数)、r(寄存器)或m(存储器 ),第二个字母代表目的,可以是r或者m。 整数操作指令OPl:addl、subl、andl和xorl。只对寄存器数据进行操作,同时还设置条件码。 跳转指令jXX:jmp、jle、jl、je、jne、jge、jg,根据分支指令的类型和条件码的设置来选择分支。 条件传送指令cmovXX:cmovle、cmovl、cmove、cmovne、cmovge和comvg,与寄存器-寄存器传送指令rrmovl一样,但只有当条件码满足所需要的约束时才会更新目的寄存器的值。 call指令将返回地址入栈,然后跳转到目的地址

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.关于编译程序和解释程序? 编译程序:以高级程序设计语言书写的源程序作为输入,而以 汇编语言 或 机器语言 表示的 目标程序 作为输出。 解释程序:一边解释,一边执行。

Vue.directive 自定义指令

一曲冷凌霜 提交于 2020-01-30 21:23:39
// 注册一个全局自定义指令 `v-focus` Vue.directive('focus', { // 当被绑定的元素插入到 DOM 中时…… inserted: function (el) { // 聚焦元素 el.focus() } }) 局部 directives: { focus: { // 指令的定义 inserted: function (el) { el.focus() } } } 页面使用 <input v-focus> 自定义指令中传递的三个参数 el: 指令所绑定的元素,可以用来直接操作DOM。 binding: 一个对象,包含指令的多个属性信息。 vnode: Vue编译生成的虚拟节点。 oldVnode: 上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。 除了 el 之外,其它参数都应该是只读的,切勿进行修改。 如果需要在钩子之间共享数据,建议通过元素的 dataset 来进行。 自定义指令的生命周期 自定义指令有五个生命周期(也叫钩子函数),分别是 bind, inserted, update, componentUpdated, unbind 1、bind:只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个绑定时执行一次的初始化动作。 2、inserted:被绑定元素插入父节点时调用