当前位置: 首页 > news >正文

做网站 参考文献浏览器网址

做网站 参考文献,浏览器网址,台州椒江网站建设公司,网站首页只显示域名目录 一. 指令格式 二. 扩展操作码 三. 指令寻址 (1)指令寻址 (2)数据寻址 1.直接寻址 2.间接寻址 3.寄存器寻址 4.寄存器间接寻址 5.隐含寻址 6.立即寻址 7.基址寻址 8.变址寻址 9.相对寻址 10.堆栈寻址 一. 指令…

目录

一. 指令格式

二. 扩展操作码

三. 指令寻址

(1)指令寻址

(2)数据寻址

1.直接寻址

2.间接寻址

3.寄存器寻址

4.寄存器间接寻址

5.隐含寻址

6.立即寻址

7.基址寻址

8.变址寻址

9.相对寻址

10.堆栈寻址


一. 指令格式

指令(又称机器指令):是指示计算机执行某种操作的命令,是计算机运行的最小功能单位。一台计算机的所有指令的集合构成该机的指令系统,也称为指令集。
注:一台计算机只能执行自己指令系统中的指令,不能执行其他系统的指令。Eg: x86架构、ARM架构。

指令格式:一条指令就是机器语言的一个语句,它是一组有意义的二进制代码。一条指令通常要包括操作码字段和地址码字段两部分。根据地址码数目不同,可以将指令分为零地址指令、一地址指令、二地址指令...

零地址指令OP:

  • 不需要操作数,如空操作、停机、关中断等指令
  • 堆栈计算机,两个操作数隐含存放在栈顶和次栈顶,计算结果压回栈顶。例如数据结构后缀表达式。

一地址指令OP A1:

  • 只需要单操作数,如加1、减1、取反、求补等。指令含义:OP(A1)→A1,完成一条指令需要3次访存:取指→读A1→写A1
  • 需要两个操作数,但其中一个操作数隐含在某个寄存器(如隐含在ACC)。指令含义: (ACC)OP(A1)→ACC,完成一条指令需要2次访存:取指→读A1

注:A1指某个主存地址(类比C语言指针),(A1)表示A1所指向的地址中的内容(类比指针所指位置的内容)

二地址指令OP A1(目的操作数) A2(源操作数):
常用于需要两个操作数的算术运算、逻辑运算相关指令。指令含义:(A1)OP(A2)→A1。完成一条指令需要访存4次,取指→读A1→读A2→写A1

三地址指令OP A1 A2 A3(结果):
常用于需要两个操作数的算术运算、逻辑运算相关指令。指令含义:(A1)OP(A2)→A3。完成一条指令需要访存4次,取指→读A1→读A2→写A3

四地址指令OP A1 A2 A3(结果) A4(下址):
A4=下一条将要执行指令的地址。指令含义:(A1)OP(A2)→A3。完成一条指令需要访存4次,取指→读A1→读A2→写A3。正常情况下:取指令之后PC+1,指向下一条指令。而四地址指令执行指令后,将PC的值修改位A4所指地址。

地址码的位数有什么影响?n位地址码的直接寻址范围=2^n.若指令总长度固定不变,则地址码数量越多,每一个地址码位数越少,寻址能力越差。

指令字长:一条指令的总长度(可能会变)
机器字长:CPU进行一次整数运算所能处理的二进制数据的位数(通常和ALU直接相关)

存储字长:一个存储单元中的二进制代码位数(通常和MDR位数相同)

半字长指令、单字长指令、双字长指令――指令长度是机器字长的多少倍
指令字长会影响取指令所需时间。如:机器字长=存储字长=16bit,则取一条双字长指令需要两次访存。

定长指令字结构:指令系统中所有指令的长度都相等。变长指令字结构:指令系统中各种指令的长度不等

定长操作码:指令系统中所有指令的操作码长度都相同,n位操作码→2^n条指令,控制器的译码电路设计简单,但灵活性较低
可变长操作码:指令系统中各指令的操作码长度可变,控制器的译码电路设计复杂,但灵活性较高

定长指令字结构(指令总长度不变)+可变长操作码→扩展操作码指令格式。

指令按操作类型分类:

二. 扩展操作码

定长操作码:在指令字的最高位部分分配固定的若干位(定长)表示操作码。一般n位操作码字段的指令系统最大能够表示2"条指令。

  • 优:定长操作码对于简化计算机硬件设计,提高指令译码和识别速度很有利;
  • 缺:指令数量增加时会占用更多固定位,留给表示操作数地址的位数受限。

扩展操作码(不定长操作码):全部指令的操作码字段的位数不固定,且分散地放在指令字的不同位置上。最常见的变长操作码方法是扩展操作码,使操作码的长度随地址码的减少而增加,不同地址数的指令可以具有不同长度的操作码,从而在满足需要的前提下,有效地缩短指令字长。

  • 优:在指令字长有限的前提下仍保持比较丰富的指令种类;
  • 缺:增加了指令译码和分析的难度,使控制器的设计复杂化。

在设计扩展操作码指令格式时,必须注意以下两点:
(1)不允许短码是长码的前缀,即短操作码不能与长操作码的前面部分的代码相同。
(2)各指令的操作码一定不能重复。
通常情况下,对使用频率较高的指令,分配较短的操作码;对使用频率较低的指令,分配较长的操作码,从而尽可能减少指令译码和分析的时间。

三. 指令寻址

(1)指令寻址

指令寻址:下一条欲执行指令的地址(始终由程序计数器PC给出)。

顺序寻址:(PC)+“1”→PC(1是指令字长,不是存储字长也不是1个字节),先有+1操作(也就是让PC指向下一条指令),然后在执行本条指令。
跳跃寻址:由转移指令指出。每次取指令之后,PC一定会自动+1,指向下一条应该执行的指令,JUMP会把PC的值强制修改。

(2)数据寻址

数据寻址:确定本条指令的地址码指明的真实地址。

例如:左:JMP 7,7就是真实地址;中:7解读为从程序初始地址100的偏移;右:3解读为执行103时PC的偏移量。

求出操作数的真实地址,称为有效地址(EA)。指令中的地址码记为A。为了区别寻址方式,可以在前加几位寻址方式位:

1.直接寻址

直接寻址:指令字中的形式地址A就是操作数的真实地址EA,即EA=A。

一条指令的执行:取指令访存1次,执行指令访存1次,暂不考虑存结果共访存2次
优点:简单,指令执行阶段仅访问一次主存,不需专门计算操作数的地址。
缺点:A的位数决定了该指令操作数的寻址范围。操作数的地址不易修改。

2.间接寻址

间接寻址:指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数有效地址。所在的存储单元的地址,也就是操作数地址的地址,即EA=(A)。

一条指令的执行:取指令访存1次,执行指令访存2次,暂不考虑存结果共访存3次

优点:可扩大寻址范围(有效地址EA的位数大于形式地址A的位数)。便于编制程序(用间接寻址可以方便地完成子程序返回)。缺点:指令在执行阶段要多次访存(一次间址需两次访存,多次寻址需根据存储字的最高位确定几次访存)。

3.寄存器寻址

寄存器寻址:在指令字中直接给出操作数所在的寄存器编号,即EA=Ri,其操作数在由Ri所指的寄存器内。

一条指令的执行:取指令访存1次,执行指令访存0次(访问寄存器),暂不考虑存结果共访问1次

优点:指令在执行阶段不访问主存,只访问寄存器,指令字短且执行速度快,支持向量/矩阵运算。
缺点:寄存器价格昂贵,计算机中寄存器个数有限。

4.寄存器间接寻址

寄存器间接寻址:寄存器Ri中给出的不是一个操作数,而是操作数所在主存单元的地址,即EA=(Ri)。

一条指令的执行:取指令访存1次,执行指令访存1次,暂不考虑存结果共访存2次。

特点:与一般间接寻址相比速度更快,但指令的执行阶段需要访问主存(因为操作数在主存中)。

5.隐含寻址

隐含寻址:不是明显地给出操作数的地址,而是在指令中隐含着操作数的地址。

优点:有利于缩短指令字长。缺点:需增加存储操作数或隐含地址的硬件。

6.立即寻址

立即寻址:形式地址A就是操作数本身(不是操作数在主存的地址,这一点和直接寻址区分开),又称为立即数,一般采用补码形式。#表示立即寻址特征。

一条指令的执行:取指令访存1次,执行指令访存0次,暂不考虑存结果共访存1次

优点:指令执行阶段不访问主存,指令执行时间最短。
缺点:A的位数限制了立即数的范围。

7.基址寻址

基址寻址:以程序的起始存放地址作为“起点”。

左图:将CPU中基址寄存器(BR)的内容加上指令格式中的形式地址A,形成操作数的有效地址,即EA=(BR)+A。

右图:部分计算机没有BR,所以需要借用通用寄存器,在指令中指明要将哪个通用寄存器作为基址寄存器使用。

优点:便于程序“浮动”(修改BR的值即可),方便实现多道程序并发运行。可扩大寻址范围(基址寄存器的位数大于形式地址A的位数)。用户不必考虑自己的程序存于主存的哪一空间区域,故有利于多道程序设计,以及可用于编制浮动程序(整个程序在内存里边的浮动)。

注:基址寄存器是面向操作系统的,其内容由操作系统或管理程序确定。在程序执行过程中,基址寄存器的内容不变(作为基地址),形式地址可变(作为偏移量)。当采用通用寄存器作为基址寄存器时,可由用户决定哪个寄存器作为基址寄存器,但其内容仍由操作系统确定。

8.变址寻址

变址寻址:程序员自己决定从哪里作为“起点”。有效地址EA等于指令字中的形式地址A与变址寄存器IX的内容相加之和,即EA= (IX)+A,其中IX可为变址寄存器(专用),也可用通用寄存器作为变址寄存器。

注:变址寄存器是面向用户的,在程序执行过程中,变址寄存器的内容可由用户改变(IX作为偏移量),形式地址A不变(作为基地址)。而基址寻址中,BR保持不变作为基地址,A作为偏移量。

例如:执行求数组和的操作,如果采用直接寻址,每一次加法对应一条指令,编程就很不灵活:

而如果采用变址寻址方式:

在数组处理过程中,可设定形式地址A为数组的首地址,不断改变变址寄存器lX的内容,便可很容易形成数组中任一数据的地址,特别适合编制循环程序。

复合寻址:假如上面的代码存在编号100的起始地址:

9.相对寻址

相对寻址:以程序计数器PC所指地址作为“起点”。把程序计数器PC的内容加上指令格式中的形式地址A而形成操作数的有效地址,即EA=(PC)+A,其中A是相对于PC所指地址的位移量,可正可负,补码表示。

优点:操作数的地址不是固定的,它随着Pc值的变化而变化,并且与指令地址之间总是相差一个固定值,因此便于程序浮动(一段代码在程序内部的浮动)。相对寻址广泛应用于转移指令。

补充:关于汇编语言的比较和跳转:

10.堆栈寻址

堆栈寻址:操作数存放在堆栈中,隐含使用堆栈指针(SP)作为操作数地址。

堆栈是存储器(或专用寄存器组)中一块特定的按“后进先出(LIFO)”原则管理的存储区,该存储区中被读/写单元的地址是用一个特定的寄存器给出的,该寄存器称为堆栈指针(SP) 。

上面称为硬堆栈,硬堆栈直接使用寄存器,如果在主存中操作,我们称为软堆栈。堆栈可用于函数调用时保存当前函数的相关信息。

http://www.qdjiajiao.com/news/7761.html

相关文章:

  • 网站运营方案怎么写?郑州网站建设公司排名
  • 能够做物理题的网站百度指数需求图谱
  • 江西网站优化网站发布流程
  • 网站没有备案可以做百度推广吗网络平台推广
  • 开发网站类型搜索引擎营销的6种方式
  • 沧州*网站建设广告推广平台代理
  • 用阿里云建设网站十种营销方法
  • 包头有没有专业做淘宝网站的肥城市区seo关键词排名
  • 网站开发与管理所对应的职位及岗位关键词优化公司排名
  • 建设企业网站哪家有实力关键词app
  • ps专门做兼职的网站有哪些南和网站seo
  • 上海房地产管理局政务信息网搜索引擎优化人员优化
  • 交流平台网站怎么做做网站找哪个公司好
  • 微商手机网站制作公司哪家好点石关键词排名优化软件
  • 微网站开发不用模板国外seo大神
  • 怎么做相册网站西安网站制作推广
  • h5开发网站优点获客软件
  • 图标在wordpressseo都用在哪些网站
  • 唐山玉田网站建设中国制造网网站类型
  • 网站推广发票税率制作网站的基本步骤
  • wordpress博客无法显示seo教程论坛
  • 网站资源做外链即时热榜
  • php做动态网站网站流量统计工具
  • 做网站多少钱赚钱吗怎样才能上百度
  • 做网站什么内容最新seo黑帽技术工具软件
  • 在线logo设计生成器免费关键词优化排名软件案例
  • 网站内容策划书网络推广怎么做效果好
  • 网站web百度高级搜索入口
  • 怎么自己做个免费网站吗品牌推广方案模板
  • 学校网站建设工作总结淘宝关键词