指令系统

8086/8088指令系统

爱⌒轻易说出口 提交于 2020-03-02 02:31:17
一、传送指令 1、数据传送指令move mov sreg/reg/mem,sreg/reg/mem/imm;sreg/reg/mem=sreg/reg/mem/imm 2、数据交换指令exchange xchg reg/mem,reg/mem;reg/mem<-->reg/mem 3、地址传送指令address lea reg,mem;reg=ea(mem);传送有效地址(load effective address) lds reg,mem;reg=mem;ds=mem+2;传送指令到DS(load pointer into ds) les reg,mem;reg=mem;ds=mem+2;传送指令到DS(load pointer into es) 二、堆栈指令stack push sreg/reg/mem;sp-=2;[ss:sp]=sreg/reg/mem;入栈 pop sreg/reg/mem;sreg/reg/mem=[ss:sp],sp+=2;出栈,不能使用CS,必须为字操作数 pushf;[ss:sp]=flags;标志入栈,改变tf的技术 popf;flags=[ss:sp];标志出栈 三、标志指令flags lahf;ah=flags低8位;标志载入ah(load ah with flags),不含控制标志和溢出标志 sahf;flags低8位=ah

计算机组成原理 指令系统

走远了吗. 提交于 2020-01-28 11:54:49
一、机器指令 每一条 机器语言 的指令叫 机器指令 全部机器指令的 集合 叫机器的 指令系统 指令由 操作码 和 地址码 组成, 指令字长 与操作码长度、操作数地址长度、操作数地址个数有关。 操作码:指明该指令要完成的操作、对什么类型的数据进行操作(有的指令系统还在此处说明了操作数的寻址方式),其长度可以固定,也可变化,操作码位数随地址数减少而增加。 地址码:指出指令操作数地址、结果地址、下一条指令地址。 注: 操作吗并非一定如上图所示,集中在一个区域,可以分散在指令不同字段中。 使用频率高的指令用短操作码 ,使用频率低的用长操作码,可缩短编译时间 (1)四地址指令 格式: 在执行过程中,访存 4 次,指令直接寻址范围太小 由于程序计数器 PC 有计数功能,可自动形成下一条指令地址,故可得三地址指令。 (2)三地址指令 格式: 在执行过程中,访存 4 次。 若将中间计算结果放入 CPU 寄存器中(而不放入主存),则可省去结果地址,得到二地址指令。 (3)二地址指令 格式: 在执行过程中,访存 3 次。 若将一位操作数直接放于运算器 ACC 中,则得到一地址指令。 (4)一地址指令 格式: 在执行过程中,访存 2 次。 (5)零地址指令 无地址码,如 进栈出栈指令。 二、操作数类型和操作类型 1.操作数类型 地址:无符号整数 数字:定点数、浮点数、十进制数 字符:ASCII 逻辑数据

M0+体系结构与指令系统简介

老子叫甜甜 提交于 2020-01-09 16:56:11
M0+体系结构与指令系统简介 ARM Cortex-M0+出现的背景 存储器映像 ARM Cortex-M0+指令集 数据传送类指令 取数指令 存数指令 寄存器间数据传送指令 堆栈操作指令 数据操作类指令 算术运算类指令 逻辑运算类指令 移位运算类指令 跳转指令 其他指令 ARM Cortex-M0+ 寻址方式 立即数寻址 寄存器寻址 偏移寻址及寄存器间接寻址 直接寻址 ARM Cortex-M0+出现的背景 32位的M0+系列处理器是ARM公司2012年推出的,主要的目的是替代原有的8位/16位微控制器,具有性价比高,功耗低等特点,其内核性能接近8位或16位竞争产品的2倍。 这些功能模块提高了M0+处理器的性能及其编程优势,降低了系统的移植难度。 存储器映像 把这4GB空间当作存储器来看待,分成若干区间,都可安排一些实际的物理资源。 用于标志ALU的状态:负标志N 零标志Z 进位标志C 溢出标志V 异常号 中断屏蔽寄存器,只有D0位有意义,当该位被置位时,除不可屏蔽中断和硬件错误以外的所有中断都被屏蔽。 ARM Cortex-M0+指令集 数据传送类指令 取数指令 存数指令 寄存器间数据传送指令 堆栈操作指令 数据操作类指令 算术运算类指令 逻辑运算类指令 移位运算类指令 跳转指令 控制程序的执行流程 其他指令 ARM Cortex-M0+ 寻址方式 立即数寻址

8086CPU指令系统--汇编语言数据转送指令(MOV,PUSH/POP,LEA)

人盡茶涼 提交于 2019-12-25 22:50:07
通用的数据转送指令MOV: 指令格式: MOV dest,src ;dest←src 功能:将源操作数的内容送至目的操作数。MOV指令对各标志位无影响。在MOV指令中,两个操作数可以是字,也可以是字节,但两者必须登长。 注意: 段寄存器CS只能做源操作数,不能做目的操作数 源操作数和目的操作数不能同时为存储单元操作数 立即数不能直接传送给段寄存器,且不同段寄存器之间不能进行传送 MOV AX,BX ;将寄存器BX的数据传送给AX MOV [3000H],DX ;将DX中的数据传送到存储器3000H单元 MOV [SI],DS ;将DS内容传送到SI所指示的单元 堆栈操作指令PUSH/POP 指令格式: PUSH src ;SP←(SP)-2,(SP)+1:(SP)←(src) POP dest ;dest←[(SP)+1:(SP)],SP←(SP)+2 功能:对堆栈的信息进行存取,不影响标志位,常用于子程序的调用和返回过程中保存程序中的某些信息 注意: 堆栈的使用要遵循LIFO的准则 堆栈中的操作数均为自操作数,不能为字节操作数 PUSH指令可以使用CS寄存器,但POP指令不允许使用CS寄存器 8086/8088CPU堆栈操作可以使用除立即寻址以外的任何寻址方式 PUSH AX ;若给定(SP)=00F8H,(SS)=2500H, ;执行之后(SP)=00F6H,(250F6H)

指令系统与汇编程序设计简答

橙三吉。 提交于 2019-12-06 03:19:47
(1)、什么叫指令?什么叫指令系统?8088指令系统有哪几种类型指令? 指令是CPU执行某种操作的命令。 CPU全部指令的集合称为指令系统。 8088的指令类型有传送类、算术运算类、逻辑运算类、转移和调用指令等。 (2)、什么叫寻址方式?8088指令系统有哪几种寻址方式? 寻址方式是指CPU获取操作数的方式。 寻址方式的种类:立即数寻址、寄存器寻址、内存操作数寻址 (3)、何为汇编语言程序?何为汇编程序?简述汇编程序的功能。 汇编语言程序是指由汇编语言指令编写的程序。 汇编程序是用来对汇编语言源程序进行汇编的程序。 汇编程序的功能:其功能是对汇编语言程序进行翻译,生成扩展名为OBJ的目标文件,如果源程序有语法错误汇编后不会产生目标文件,并且给出错误信息。 (4)、什么是变量?变量有哪几种属性?程序中如何访问变量? 变量代表内存操作数的存储地址,或者说变量名代表某个存储单元,通常定义在数据段、堆栈段或者附加段。 变量的属性:段属性、偏移属性、类型属性。 程序中通过变量名来访问变量。 (5)、什么是标号?标号有哪几种属性? 标号代表指令地址,它为转移指令提供了转移目标 标号的属性:段属性、偏移属性、类型属性。 (6)、80x86汇编语言中有哪几种运算符? 数值运算符,修改属性运算符,返回属性或数值运算符,方括号运算符和地址表达式。 (7)、80x86汇编语言程序中段的类型有哪几种

指令系统中的寻址范围总结

生来就可爱ヽ(ⅴ<●) 提交于 2019-12-05 08:47:02
1.首先区分寻址范围与寻址空间 寻址范围:是一个数字范围,无单位; 寻址空间:能够寻址的最大容量; 例题: 设有一个1MB容量的存储器,字长32位,问:按字节编址,字编址的寻址范围以及各自的寻址范围大小? 如果按字节编址,则 1MB = 2^20B 2^20B/1B = 2^20 地址范围为0~(2^20)-1,也就是说需要二十根地址线才能完成对1MB空间的编码,所以地址寄存器为20位,寻址范围大小为2^20=1M 如果按字编址,则 1MB=2^20B 1字=32bit=4B (注意:字长是32位,就是指1字=32bit,该信息只有在按字编址时才有用。这里的字长说的是存储字长) 2^20B/4B = 2^18 地址范围为0~2^18-1,也就是说我们至少要用18根地址线才能完成对1MB空间的编码。因此按字编址的寻址范围是2^18 寻址方法: 寻址范围: 立即寻址:直接放一个数 直接寻址:A的字长 间接寻址:存储字长=?(机器字长) 相对寻址:(PC附近)A的字长 基址寻址: 变址寻址:机器字长=存储字长 注意: 机器字长:CPU一次能处理数据的位数,通常与CPU的寄存器位数有关。 存储字长:存储器中一个存储单元(存储地址)所存储的二进制代码的位数,即存储器中的MDR的位数。 指令字长:计算机指令字的位数。 数据字长:计算机数据存储所占用的位数。 通常早期计算机:存储字长 =

2.5-MIPS体系结构

左心房为你撑大大i 提交于 2019-12-03 11:53:27
  MIPS是精简指令系统的代表,采用了与X86相反的设计理念,并引领了精简指令系统的潮流, 那就让我们一起来看一看这究竟是怎么一回事。R ISC是精简指令系统计算机的简称,与之相对,之前的计算机上的指令系统就被称为 复杂指令系统,X86就是其中的代表。 现在MIPS处理器已经不再应用在计算机产品中了, 但是在广义的计算设备包括数字电视,游戏机,网络设备 等领域仍然有广泛的应用。   第一代的MIPS是32位的,在1985年推出了对应的处理器,R2000,90年, R3000处理器对应着第二代的MIPS,92年,MIPS扩展到了64位,94年,64位的MIPS又 进一步升级,96年的MIPS5并没有对应的处理器, 然后在99年,MIPS指令系统进行了较大的调整,形成了MIPS32,到了99年,以MIPS5为基础, 推出了MIPS64指令系统,MIPS的设计指导思想非常的简单, 从它的名字就可以看出来。MIPS全称的含义是一个流水线不会互锁的微处理器,流水线是 现代微处理器为提高性能而采用的一项技术,而流水线中的互锁 则是导致流水线性能降低的一个非常重要的因素。从这个名称也可以看出,MIPS的 指导思想是希望其指令的设计能让微处理器运行的更快,性能更好。 所以它主要的关注点是减少指令的类型,并且降低指令的复杂度,所以在MIPS指令系统当中, 指令的总数是很少的。

快速了解指令系统

旧街凉风 提交于 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-11-30 14:27:46
一、指令格式 指令:操作码字段 地址码字段 指令字(简称指令):表示一条指令的机器字。 指令格式:是指令自用二进制代码表示的结构形式,由操作码字段和地址码字段组成。 操作码字段:表征指令的操作特性与功能 ( 指令的唯一标识 ) 不同的指令操作码不能相同 地址码字段:指定参与操作的操作数的地址码 二、操作码分类 操作码可以分为固定长度的代码和可变长度的代码 1、固定长度的代码 多有指令操作码的长度相等 例如:某计算机共有64条指令,采用固定长度操作码,需要6位编码,从000000~111111 2的6次方为64 优点:编码方法简单,便于指令的译码 确定:不方便指令系统中增加新的指令(扩展不方便) 2、可变长度的代码 不等长的指令操作码可以减小操作码的平均长度,提高指令编码的效率,从指令的扩展性来看,也希望操作码长度可变。 例如:设某台计算机有100条指令,要求: 1)采用固定长度操作码编码,请设计其操作码编码 2)假设这100条指令中有10条指令的使用改了达到90%。其余90条指令的使用概率达到10%,请采用不定长编码设计一种操作码编码的方案,并求出操作码的平均长度 (常用指令用短编码 不常用指令用长编码) 答、1)采用固定长度操作码编码,需要7位操作码,取其中100个代码作为操作码 0000000~1100011之间的代码代表100条指令(长度为7) 其余的1100100

Vue小白篇 - Vue 的指令系统 (1) v-text、v-html

馋奶兔 提交于 2019-11-29 06:28:54
v-text:相当于innerText v-html:相当于innerHTML <div id="box"> {{ msg }} <div v-text="msg"></div> <!--渲染文本--> <div v-html="msg"></div> <!--可以渲染标签--> </div> <script src="vue.js"></script> <script> new Vue({ el: '#box', data () { // data 中是一个函数,函数中 return 一个对象,可以是空对象,但不能不return return { msg: '<h2>好嗨哟</h2>' } } }); </script> 来源: https://www.cnblogs.com/pymu/p/11459821.html