zoukankan      html  css  js  c++  java
  • 寻找她(指令寻址)——(软考六)

         指令系统是中央处理器所有指令的汇集,也是高级软件编制的基础。CPU都会定义出自己特定的指令,但都有统一的标准格式,指令的基本格式是操作码和地址码两部分组成。如图所示:

            

         操作码指出该指令要完成什么操作,地址码则提供原始数据。指令系统中定义操作码的方式可以分为规整型(定长编码)和非规整型(变长编码)两种。

             定长编码:采用相等码长,每个操作码的长度相等

             变长编码:根据使用频度选择不同长度的编码

         我认为这种方式跟我们之前学习的哈弗曼编码具有相同的道理,使用频率大的采用短编码,使用频率小的采用长编码,这样可以节省存储空间,提高效率。

      (1)隐含寻址方式

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

      (2)立即寻址方式

           指令的地址码指出的不是操作数的地址,而是操作数本身。这种寻址方式的特点是指令执行时间短,不需要访问内存取数。由于地址码存放的操作数,故只能用于源操作数,不能用于目的操作数字段,经常用于给寄存器赋初值。例如:

              MOV  AL,'6';将5的ASCII码送入寄存器AL,'6'是立即数。

      (3)直接寻址方式

            地址码就是主存内数据的绝对地址,不必做任何的换算。不足之处在于寻址范围有限,地址码的位数限制了寻址空间,而计算机的发展趋势是计算机拥有越来越大的内存。如果使用变长指令结构,则该指令就会变得臃肿。

      (4)间接寻址方式

             指令地址字段中D不是操作码的真正地址,而是操作数地址的指示器。也就是说地址码指向主存中的数据,这个数据仍然是一个地址,这种方式提高了寻址的灵活性,扩大了寻址的范围,但由于要多次读主存,速度大为降低。这就跟我寻找宝藏一样,找到一个宝藏,宝藏中放着的宝藏的地址。

      (5)寄存器寻址方式

            当操作数不放在内存中,而是放在CPU的通用寄存器中时,可采用寄存器寻址方式。

            地址码的地址是寄存器的地址。和内存寻址比较而言,访问寄存器的速度非常快,所以使用寄存器寻址有非常快的速度,缺点:寄存器的数量的有限。

      (6)寄存器间接寻址方式

            地址码保存的是寄存器地址,相对应的寄存器中保存的是数据的地址,该地址指明的操作数在内存中。这样既快又有灵活性,是一种广泛使用的寻址方式。


       【总结】

         通过上面的分析可以看出,直接寻址方式和寄存器寻址方式在地址码中存放的都是操作数,而只要带着间接的方式,在地址码中存放的是一个指向操作数的地址,这样会使得扩展更方便,同时也能体现出灵活性。比较之后发现寄存器比内存的速度更快。               

              

  • 相关阅读:
    python2 与python3 区别的总结 持续更新中......
    基础数据类型初识(三)字典
    基础数据类型初识(二)列表,元组
    基本数据类型初识(一)数字,字符串
    python基础知识(理论)
    进程池 和 管道 , 进程之间的 信息共享
    并发编程
    进程 和 多进程
    计算机系统的发展史
    网络编程 黏包
  • 原文地址:https://www.cnblogs.com/zsswpb/p/5771630.html
Copyright © 2011-2022 走看看