操作数

快速了解指令系统

旧街凉风 提交于 2019-12-02 09:20:16
先来看看指令系统在计算机中的位置: 机器指令: 指令的格式: 指令要进行操作,所以用操作码来进行实现,那么对谁进行操作呢?由地址码来实现,为了编程方便,在指令集当中,往往有多种寻址方式。 操作码—地址码—寻址方式 指令字长 (一条指令的长度) 固定字长,可变字长 指令的一般格式 操作码字段–地址码字段 操作码:指出进行什么操作 (1)长度固定 用于指令字长较长的情况,RISC 如 IBM 370 8位 (2)长度可变 操作码分散在指令集的不同字段上 (3) 扩展操作码技术 为什么要扩展操作码呢? 用上面的图来进行讲解:如果OP,A1,A2,A3都是4位的,那么这个最多只能有16条不同类型的指令,这显然是不够的,所以我们需要对操作码进行扩展。 我们经全为1的状态作为标记,如果我们的操作为1111,就扩展一位操作码,意思就是这个时候从0000-1110只有15个3地址码。相似的,如果标志位11111111,那么说明这个时候,有11110000-11111110一共有15个2地址码。剩下的分析都是相似的。 注意:3地址指令操作码每减少一个最多可构成2的4次方的2地址指令 2地址操作码每减少一个最多可以构成2的4次方的1地址指令 在程序中经常出现的那些指令我们可以用短操作码 (短的查的快呀), 那些不常出现的就用常操作码来表示。 地址码: A1:第一操作数地址 A2:第二操作数地址 A3

《深入理解计算机系统》速读笔记

故事扮演 提交于 2019-12-02 09:13:28
问题一 条件码 条件码寄存器中保存着单个位的条件码,由CPU维护,如: CF:进位标志 ZF:零标志 SF:符号标志 OF:溢出标志 有几类指令能够修改条件码: 算术指令:既改变操作数,也有肯能改变条件码。 CMP指令:右操作数减左操作数,只可能改变条件码。 TEST指令:两操作数相与,只可能改变条件码。 条件码寄存器不能直接读取,有三种方法: set指令:根据条件码,设置一个字节。 jump指令:根据条件码进行跳转,即控制的条件转移。 cmov条件传送指令:根据条件码决定是否进行mov操作(其性能要优于控制的条件转移P141)。 来源: https://www.cnblogs.com/20199321zjy/p/11740575.html

永不服输的Java之路---重学Java (第三章)

一曲冷凌霜 提交于 2019-12-02 06:39:31
如若文章中出现冲突,或者出现错误,请联系 QQ:2669157689 指出我的问题。谢谢~ 本章说明一下变量的声明,数据类型及其转换;Java中的关键字,保留字;运算符和表达式等 JAVA编程基础 —— 变量和运算符 1. Java的程序结构 Java块分为数据类型,变量,运算符和控制流语句。 数据类型 数据类型确定要存储在内存中的数据的类型。 变量 变量是存储数据的基本单元。 运算符 运算符是一个符号,用于操作一个或多个参数以得出结果。程序是按顺序执行的。 控制流语句 控制流语句允许改变语句执行的顺序。 2. 标识符、关键字和保留字 标识符 Java中的包、类、方法、参数和变量的名称 标识符的命名规则 ① 必须以字母、下划线(_)或美元符号($)开头; ② 余下的字符可以是下划线、美元符号或任何的字母或数字,长 度不限。标识符中不能有空格; ③ 不能使用Java中的关键字或者保留字做为标识符。 元素 规范 示例 类名 Pascal 规则 Person StudentDemo 变量名 Camel 规则 age height avgValue 方法名 Camel 规则 getAge setUserName 包名 全部小写 com.neusoft 常量名 全部大写 MAX_VALUE 关键字/保留字 Java中的关键字/保留字 abstract continue goto null

JVM内存

烂漫一生 提交于 2019-12-02 06:38:22
JVM内存包括若干个数据区域,如线程私有的程序计数器、虚拟机栈、本地方法栈;线程共享的方法区、堆。 JVM组成部分 1)、程序计数器 程序计数器即计算机处理器中的寄存器,指向当前线程正在执行的指令地址,类似于书签。程序计数器占用内存空间非常小,几乎可以忽略不计。它保证了多线程情况下,线程进行切换时,程序能快速找到执行的位置。 2)、虚拟机栈 执行方法时会对应生成一个栈帧,栈帧包括局部变量表、操作数栈、动态连接、返回地址、附加信息。虚拟机栈中存放着一个个的栈帧,当前栈帧存在于虚拟机栈的最上面(最先出栈的位置)。虚拟机栈默认大小为1M,可以使用参数-Xss进行设置大小,eg:-Xss1M,虚拟机栈为1M。 局部变量表:存放方法的参数和局部变量; 操作数栈:方法执行在操作数栈中完成,字节码指令会往操作数栈进行写入(入栈)和取出(出栈); 动态连接:符号引用转换成实际地址的引用; 返回地址:举个例子:方法C存在返回值,则方法C执行完后会将返回值的地址返回给方法B; 附加信息:不在虚拟机规范内的信息。 3)、本地方法栈 保存本地方法的信息,本地方法就是使用native修饰的方法,并不是用java写的方法。 4)、方法区 可以理解为永久代(JDK<=1.7)或者元空间(JDK>=1.8)。一般来说,方法区中存放的是对象不可变的部分,比如:常量、静态变量、类信息、编译后的代码等。永久代设置参数:

关系运算符

廉价感情. 提交于 2019-12-02 05:56:52
JavaScript 有两种比较方式:严格比较运算符和转换类型比较运算符。对于严格比较运算符(===)来说,仅当两个操作数的类型相同且值相等为 true,而对于被广泛使用的比较运算符(==)来说,会在进行比较之前,将两个操作数转换成相同的类型。对于关系运算符(比如 <=)来说,会先将操作数转为原始值,使它们类型相同,再进行比较运算。 字符串比较则是使用基于标准字典的 Unicode 值来进行比较的。 比较的特点: 对于两个拥有相同字符顺序,相同长度,并且每个字符的位置都匹配的字符串,应该使用严格比较运算符。 对于两个数值相同的数字应该使用严格比较运算符,NaN和任何值不相等,包括其自身,正数零等于负数零。 对于两个同为true或同为false的布尔操作数,应使用严格比较运算符。 不要使用严格比较运算符或比较运算符来比较两个不相等的对象。 当比较一个表达式和一个对象时,仅当两个操作数引用相同的对象(指针指向相同对象)。 对于Null 和 Undefined 类型而言,应使用严格比较运算符比较其自身,使用比较运算符进行互相比较。 相等运算符 相等(==) 比较操作符会为两个不同类型的操作数转换类型,然后进行严格比较。当两个操作数都是对象时,JavaScript会比较其内部引用,当且仅当他们的引用指向内存中的相同对象(区域)时才相等,即他们在栈内存中的引用地址相同。 语法 x == y

2019-2020-1学期 20192421 《网络空间安全专业导论>>第三周学习总结

孤街浪徒 提交于 2019-12-02 01:39:38
在简略学习了第六章和第七章的内容后,我对计算机的程序设计层有了新的了解,这两章分别从低级程序设计语言与伪代码以及问题求解与算法设计两个方面对程序设计层进行了阐述,下面是我的收获与问题。 *** 第六章低级程序设计语言与伪代码*** 6.1 计算机操作 计算机:计算机是能够存储,检索和处理数据的可编程电子设备。可编程的,存储,检索和处理是这个定义中的操作字。 存储,检索和处理是计算机能够对数据执行的动作。 控制单元执行的指令能够把数据存储到机器的内存中,在计器内存中检索数据,在算数逻辑单元中以某种方式处理数据。 6.2 机器语言 机器语言:由计算机直接使用的二进制编码指令构成的语言。【也是每种机器有的一个特定的能够被执行的操作集合】 Pep/8:一台虚拟机 虚拟机:为了模拟真实机器的重要特征而设计的假想机器。 Pep/8所反映的重要特性 程序计数器(PC):其中包括下一条即将被执行的指令的地址 指令寄存器(IR):其中包含正在被执行的指令的一个副本 累加器(是一个用来保存操作数据和结果的寄存器) 一个字节能够表示的最大十进制数是255,用二进制表示是111111,用十六进制表示是FF。一个字(16位)能够表示的最大十进制数是65535,用二进制表示是1111111111111用十六进制表示是FFFF。如果既要表示正数,又要表示负数,那么在量级上就会少一位(因为有一位用于表示符号)

2019-2020-1学期 20192419 《网络空间安全专业导论》第三周学习总结 (读书笔记)

本小妞迷上赌 提交于 2019-12-02 00:36:43
第六章 低级程序设计语言与伪代码 6.1 计算机操作 计算机是能够存储、检索和处理数据的可编程电子设备。 存储、检索和处理 是计算机能够对数据执行的动作。 6.2 机器语言 计算机真正执行的程序设计指令是用机器语言编写的指令。 机器语言:由计算机直接使用的二进制编码指令构成的语言。 Pep/8:一台虚拟机 -虚拟机:为了模拟真实机器的重要特征而设计的假想机器。 Pep/8反应的重要特性 Pep/8的内存单元由65536字节的存储空间构成。Pep/8的字长是2字节,或者16比特。 Pep/8有七个寄存器,重点研究其中三个: 程序计数器(PC),其中包含下一条即将被执行的指令的地址。 指令寄存器(IR),其中包含正在被执行的指令的一个副本。 累加器(是一个寄存器)。 指令格式 一条指令由两个部分组成,即8位的指令说明符和(可选的)16位的操作数说明符。指令说明符(指令的第一个字节)说明了要执行什么操作和如何解释操作数的位置。操作数说明符(指令的第二个和第三个字节)存放的是操作数本身或者操作数的地址。有些指令没有操作数说明符。 操作代码(称为操作码)的长度从4比特到8比特不等。4比特操作码的第5位用来指定使用哪个寄存器。 寻址模式说明符 表示了怎样解析指令中的操作数部分。如果寻址模式是000,那么指令的操作数说明符中存储的是操作数所在的内存地址名称。这种寻址模式称为直接寻址。

2019-2020-1学期 20192413 《网络空间安全专业导论》第三周学习总结

无人久伴 提交于 2019-12-02 00:30:50
第六章 低级程序设计语言与伪代码 1、计算机操作 ◆计算机是能够储存、检索和处理数据的可编程的电子设备 2、机器语言 ◆pep/8有七个寄存器,重点研究: 程序计数器(PC),其中包含下一条即将被执行的指令的地址 指令寄存器(IR),其中包含正在被执行的指令的一个副本 累加器(是一个寄存器),是用来保存操作的数据和结果 ◆一个字节能够表示的最大十进制数是255,用二进制表示是11111111,用十六进制表示是FF。一个字(16位)能够表示的最大十进制数是65535,用二进制表示是1111111111111111,用十六进制表示是FFFF。 ◆一条指令由两部分组成,即8位的指令说明符和(可选的)16位操作数说明符 指令说明符说明了要执行什么操作和如何解释操作数的位置 操作数说明符存放的是操作数本身或者操作数的地址 ◆指令说明符的格式 指令说明符的格式根据表示一个具体操作所用的比特数的不同而不同 4比特操作码的第5位用来指定使用哪个寄存器 3比特的寻址模式说明符表示了怎样解析指令中的操作数部分。寻址模式为000,那么指令的操作数说明符中储存的就是操作数,称为立即寻址;寻址模式为001,那么操作说说明符中储存的是操作数所在的内存地址名称,称为直接寻址。 ◆一些实例指令 0000 停止执行 1100 将操作数载入寄存器A中 1110 将寄存器A的内容储存到操作数中 0111

学习总结

一个人想着一个人 提交于 2019-12-02 00:21:47
第四部分 程序设计层 第六章 低级程序设计语言和伪代码 机器语言是最低级的编程语言,它被内置在机器中。在汇编语言中能用一些字母的组合来表示机器语言指令。伪代码能够表示算法。 6.1计算机操作 我们所用的程序设计语言都必须反映出计算机能够执行的操作类型。 计算机是能够存储、检索和处理数据的可编程电子设备。 这个定义中的操作字包括 可编程的、存储、检索和处理 。 处理、检索和处理 是计算机能够对数据执行的动作。 也就是说,控制单元执行的指令能够把数据存储到机器的内存中,在机器内存中检索数据,在算术逻辑单元中以某种方式处理数据。词语“处理”非常通用。处理涉及在数据值上执行算术和逻辑操作。 6.2机器语言 机器语言 :由计算机直接使用的二进制编码指令构成的语言。 机器代码因机器不同而不同,每一种机器有一个特定的能够被执行的操作集合,称为这种计算机的机器语言。 虚拟机:为了模拟真实机器的重要特征而设计的假想机器。 一个字节能够表示的最大十进制数是255,用二进制表示是11111111,用十六进制表示是FF。一个字(16位)能够表示的最大十进制数是65535,用二进制表示是1111111111111111,用十六进制表示是FFFF。如果既要表示正数,又要表示负数,那么在量级上就会少一位,因此可以表示的十六进制数的范围是-7FFF到+7FFF,相当于十进制数的-32767到+32767.

2019-2020-1学期2092412《网络空间安全专业导论》第三周学习总结

孤街浪徒 提交于 2019-12-01 23:51:50
第六章 低级程序设计语言与伪代码 6.1 计算机操作 计算机:计算机是能够存储,检索和处理数据的可编程电子设备 存储,检索和处理是计算机能够对数据执行的动作。 控制单元执行的指令能够把数据存储到机器的内存中,在计器内存中检索数据,在算数逻辑单元中以某种方式处理数据。 6.2 机器语言 机器语言:由计算机直接使用的二进制编码指令构成的语言。 Pep/8:一台虚拟机 虚拟机:为了模拟真实机器的重要特征而设计的假想机器。 程序计数器(PC):其中包括下一条即将被执行的指令的地址 指令寄存器(IR):其中包含正在被执行的指令的一个副本 累加器(是一个寄存器) 用地址指代内存中的某一特定字节 指令格式 指令先进入指令寄存器,然后译解,最后被执行。 一条指令有两个部分组成:8位的指令说明符和16位的操作数说明符 指令说明符(指令的第一个字节)说明了要执行什么操作和如何解释操作数的位置 操作数说明符(指令的第二和第三个字节)存放的是操作数本身或者操作数的地址。(注:有些指令没有操作数说明符) 在Pep/8中,操作代码的长度从4比特到8比特不等 立即寻址:寻址地址是000,指令的操作数说明符中存储的就是操作数;直接寻址:寻址地址是001,操作数说明符中存储的是操作数所在的内存地址名称 立即寻址模式和直接寻址模式的差别决定了操作中数据存储或将要被存储的位置 一元指令:没有操作数(要处理的数据)