在复习软考的时候,发现CPU的内部工作原理这一部分的内容挺重要的,现对CPU的寻址方式进行了一下总结。以下就来一一介绍一下。

我们都知道一个指令分为操作码和地址码两部分。操作码确定指令的类型。地址码确定指令所要处理的数据。依据地址码代表的地址类型。指令系统分为例如以下寻址方式:

1、马上寻址:

地址码就是操作数,这样的寻址方式不必再次訪问主存去取操作数,当然也无须改动操作数(这样的方式获得操作数的速度最快)

2、直接寻址:

指令的地址码就是操作数在主存内的地址,也就是说地址码就是主存内数据的绝对地址,不必做不论什么换算(也就是操作数的地址直接包括在指令中,仅仅要依照指令中的地址去找就能够了),但这样的地址方式的不足之处在于寻址范围有限。

3、间接寻址:

在指令的地址码部分直接给出的既不是操作数(直接给出操作数的是马上寻址),也不是操作数的地址(直接给出操作数地址的是直接寻址),而是操作数的地址的地址。

这样的方式提高了寻址的灵活性。扩大了寻址的范围。可是因为多次訪问主存。速度大为减少。

4、寄存器寻址:

地址码的地址是寄存器的地址,和内存地址而言。訪问寄存器的速度是很快的,所以使用寄存器寻址有很快的速度。不足之处在于寄存器的数量有限。

5、寄存器间接寻址:

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

6、基址寻址:

採用专用寄存器或通用寄存器作为基址寄存器,主要作用是扩大寻址空间和再定位。

7、变址寻址:

是将地址码和变址寄存器内容相加后形成的数据地址,对数组运算、字符串操作等批量数据的处理很有效。

8、页面寻址:

页面寻址要将主存分组成若干个区。寻址时使用区码加区内偏移的方式确定位置。

9、相对寻址:

相对寻址和变址寻址类似,这里变址寄存器变成了程序计数器,也就是在相对寻址中是将地址码和程序计数器内容相加后形成的数据地址。

CPU中的几种寻址方式就介绍到这里,本着总结的原则,目的是为了让大家了解一下各种寻址方式的原理。方便掌握。

最新文章

  1. Winform控件重写
  2. java获取当前星期几
  3. soapUI使用-DataSource获取oracle库中的参数
  4. mysql时间查看以及定时器相关操作
  5. Objective C笔记(第一天)
  6. Nginx 笔记与总结(14)expires 缓存设置
  7. window.cookie
  8. nandflash学习1——导致nandflash反转的原因【转】
  9. Linux下的定时器:alarm()与setitimer()
  10. ERROR: HHH000388: Unsuccessful: create table
  11. ubuntu/linux 下 git 通过代理下载数据 (最简单的方式)
  12. JSch - Java实现的SFTP
  13. (@WhiteTaken)设计模式学习——单例模式
  14. (转)CSS颜色及<a>标签超链接颜色改变
  15. Egret学习笔记 (Egret打飞机-9.子弹对敌机和主角的碰撞)
  16. 想在网上保持匿名?教你用Linux如何实现!
  17. tmux 终端复用详解
  18. Java NIO中的Buffer 详解
  19. Linux 命令locate
  20. oracle 11g SQL语句补充学习

热门文章

  1. Linux-C语言中gettimeofday()函数的使用方法(转载)
  2. 一步一步实现FormsAuthentic验证登录
  3. bootstrap之WaitForIdle&&Clear
  4. HDU 2152 Fruit (母函数)
  5. Mina2 研究总结
  6. 如何得到动态链接库的输出函数tdump命令(225篇博文)
  7. JDK动态代理简单小程序
  8. NDK-gdb的错误ERROR(不同于上一篇): Could not extract package's data directory...的解决方法
  9. 虚幻4随笔4 从project開始
  10. 例3.1 猜猜数据结构 UVa11995