寻址方式

news/2024/9/28 11:12:07

在嵌入式系统设计课程中,寻址方式(Addressing Modes)是指处理器或控制器在执行指令时如何访问操作数或指令中的数据。寻址方式分为指令寻址数据寻址
1. 指令寻址(Instruction Addressing)
指令寻址是指寻找下一条将要执行的指令地址。指令寻址包括顺序寻址、跳跃寻址
*顺序寻址:程序计数器(PC)自动递增,指向内存中下一条指令的地址。
*跳跃寻址:是指下一条指令的地址码不是由PC给出的,而是本条指令给出的。通过转移类指令实现。

  • 注意:这里所说的 “ PC 加1 ” 并不是 PC 一定会加 “1” 这个数值,而是要加当前指令占据的地址长度,从而总能得到下一条指令的地址;例如,如果机器按字节编址,当前指令字长是 4 个字节,那么执行这条指令后 PC = PC + 4。

2. 数据寻址(Data Addressing)
数据寻址是确定本条指令地址码指明的真实地址

  • 操作数:操作数是指令中参与操作的数据。
    
    • 直接寻址:指令中的形式地址A就是操作数的真实地址EA,即EA=A。
    • 间接寻址:指令的地址字段给出的形式地址不是操作数的真正地址,而是操作数地址所在的存储单元地址;也就是 “地址的地址”,即EA = (A)。
    • 寄存器寻址:在指令中直接给出操作数所在的寄存器编号,寄存器存储的为操作数的地址。
    • 寄存器间接选址:如果寄存器中不是直接给出操作数,而是操作数的内存地址,那么就称为寄存器间接寻址。(寄存器寻址+间接寻址)
    • 隐含寻址:指指令字中不直接给出操作数的地址,而是隐含在某个寄存器中(通过操作码表示)。
    • 立即寻址:地址码的形式地址A就是操作数本身,又称为立即数,一般采用补码形式。
    • 偏移寻址:包括基址寻址、变址寻址和相对寻址。在偏移寻址中,操作数的地址通过一个基地址(通常存储在寄存器中)和一个偏移量相加计算得到。
    • 堆栈寻址:通过堆栈指针操作数据,数据从堆栈中取出或压入。

**3. 流水线 **

* 概念:流水线是指在程序执行时`多条指令重叠进行`操作的一种准`并行处理`实现技术。即可以同时为多条指令的不同部分进行工作,以提高各部件的利用率和指令的平均执行速度。


* 流水线的优化技术
* 超标量流水线(Superscalar Pipeline):在一个时钟周期内,处理器可以同时发射多条指令进入流水线执行,从而进一步提高指令执行的并行性。
* 动态调度(Dynamic Scheduling):处理器可以动态地调度指令的执行顺序,以减少流水线中的数据冲突和控制冲突。
* 分支预测(Branch Prediction)处理器通过硬件预测跳转指令的执行结果,从而减少因分支指令造成的流水线暂停。
* 多级流水线(Multistage Pipeline)流水线可以进一步划分为更多阶段,以减少每个阶段的执行时间,从而提高时钟频率。

参考:> https://www.cnblogs.com/yandashan666/p/11426482.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/59562.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

PbootCMS标签大全,PbootCMS模版如何调用tag标签

PBootCMS提供了丰富的模板标签来方便地调用各种功能。下面详细介绍PBootCMS的常用标签及其用法,并给出具体的示例。 PBootCMS标签大全 1. 基础标签{pboot:site}用途:获取站点信息。 示例:html{pboot:site name="title"} 网站标题 {/pboot:site}{pboot:page}用途:…

2024 sheep

类似最小生成树,对边排序依次加上,但是数据大,要进行离线处理,存起来,将比他小的边加上,判断连通用并查集(路径压缩,按秩合并)。 唐完的我在赛时没写按秩,而且while没写终止条件(唐老鸭)。 先按秩后合并,测评机有点玄学但确实要这样。 初版: #include<bits/st…

PbootCMS如何输出当前页面的完整url

在PBootCMS中,输出当前页面的完整URL可以通过模板标签来实现。以下是具体的步骤和模板标签的使用方法: 输出当前页面的完整URL 可以使用 {pboot:httpurl} 标签来获取当前页面的完整URL。这个标签会自适应地获取当前访问的网址,可以用于需要使用网站路径前缀的情况。扫码添加…

pbootcms后台“登录失败:表单提交校验失败,请刷新后重试”

当遇到PBootCMS后台登录时提示“登录失败:表单提交校验失败,请刷新后重试”的问题时,可以尝试以下几个解决方法:刷新页面:首先按照提示刷新页面,看看是否能够解决问题。 清理浏览器缓存:有时候浏览器缓存可能导致表单提交出现问题,尝试清除浏览器缓存后再试。 删除运行…

PbootCMS后台登录验证码看不清怎么回事?

如果你发现PBootCMS后台登录时的验证码看不清楚,这可能是由于以下几个原因造成的:验证码背景与文字颜色相近:验证码的背景色和文字颜色可能过于接近,导致对比度不足,使得验证码难以辨认。 PHP版本不兼容:某些PHP版本可能与生成验证码的脚本不兼容,导致验证码显示异常。解…

jQuery高级选择符与遍历

1.HTML代码 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><scrip…

uniapp使用路由名称跳转

由于web端和app公用一套菜单,而两个项目的路径是不同的,为解决这个问题,封装了一套使用路由名称作为跳转路由的方法 1.在pages.json文件里pages对应的页面配置里添加 routeName 字段(自定义),我做的app里面的菜单是后台获取的,所以这里的value值对应的是后台返回的页面路…

MyBatis-Plus动态表名

MyBatis-Plus动态表名 一、早期方案 1.1 MyBatis-Plus版本 1、添加MyBatis-Plus依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.1</version> </dependency&g…