计算机系统(6)

◆指令寻址方式:

顺序寻址方式:执行一段程序时,是一条指令接着一条指令的顺序执行。

跳跃寻址方式:下一条指令的地址码不是由程序计数器给出,而是由本条指令直接给出。程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。


◆指令操作数的寻址方式

1. 立即寻址(Immediate Addressing)

  • 定义:操作数直接包含在指令中(即立即数)。

  • 格式MOV R1, #10(将常数 10 存入寄存器 R1)

  • 特点

    • 速度快(无需访存)。

    • 但操作数大小受限(如 8/16/32 位立即数)。

  • 适用场景:初始化寄存器、短常数运算。


2. 寄存器寻址(Register Addressing)

  • 定义:操作数在 CPU 寄存器中。

  • 格式ADD R1, R2(R1 = R1 + R2)

  • 特点

    • 速度最快(直接访问寄存器)。

    • 寄存器数量有限(如 x86 有 16 个通用寄存器)。

  • 适用场景:高频数据运算。


3. 直接寻址(Direct Addressing)

  • 定义:指令直接给出操作数的内存地址。

  • 格式MOV R1, [0x1000](将内存地址 0x1000 的数据加载到 R1)

  • 特点

    • 需要访存,速度较慢。

    • 地址范围受限(取决于指令编码位数)。

  • 适用场景:访问固定内存位置(如全局变量)。


4. 寄存器间接寻址(Register Indirect Addressing)

  • 定义:寄存器中存储的是操作数的内存地址。

  • 格式MOV R1, [R2](R2 存放地址,读取该地址的数据到 R1)

  • 特点

    • 比直接寻址灵活(地址可动态计算)。

    • 仍需访存,速度较慢。

  • 适用场景:指针操作、数组遍历。

5. 基址寻址(Base Addressing)

  • 定义:操作数地址 = 基址寄存器 + 偏移量。

  • 格式MOV R1, [R2 + 0x10](R2 是基址,0x10 是偏移量)

  • 特点

    • 适用于数组、结构体访问。

    • 需额外计算地址。

  • 定义:操作数地址 = PC(程序计数器) + 偏移量。

  • 格式JMP +0x20(跳转到当前指令地址 + 0x20)

  • 特点

    • 用于分支/跳转指令。

    • 支持位置无关代码(PIC)。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于服务器使用 apt 安装、配置 Nginx

🧾 一、查看可安装的 Nginx 版本 首先,你可以运行以下命令查看可用版本: apt-cache madison nginx-core输出示例: nginx-core | 1.18.0-6ubuntu14.6 | http://archive.ubuntu.com/ubuntu focal-updates/main amd64 Packages ng…

python打卡训练营打卡记录day51

复习日 作业:day43的时候我们安排大家对自己找的数据集用简单cnn训练,现在可以尝试下借助这几天的知识来实现精度的进一步提高 数据预处理 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transfor…

网络安全:OWASP防护守则

目录 一、OWASP十大WEB弱点防护守则 二、防护守则 1、权限控制失效 2、加密失误 3、注入 4、不安全设计 5、安全配置缺陷 6、易受攻击和过时的组件 7、身份认证和会话管理失效 8、缺乏完整性校验 9、缺乏监控与日志记录 10、服务端请求伪造 三、核心防护原则总结 …

Dagster 实现数据质量自动化:6大维度检查与最佳实践

在当今数据驱动的世界中,数据质量的重要性不言而喻。数据质量测试是确保数据准确、完整、一致和可靠的关键步骤。本文将深入探讨数据质量测试的六大维度,并提供相关的检查方法和最佳实践。 什么是数据质量测试? 数据质量测试涉及评估数据以确…

计算机视觉之三维重建(深入浅出SfM与SLAM核心算法)—— 2. 摄像机标定

文章目录 1. 前置知识1.1. 非齐次线性方程组求解1.1.1. 传统求解方法1.1.2. 奇异值分解法1.1.3. 牛顿法或者梯度下降法 1.2. 齐次线性方程组的最小二乘解1.3. 非线性方程组的最小二乘解 2. 相机标定2.1. 相机内参数求解2.1.1. 求解 u 0 u_0 u0​ 和 v 0 v_0 v0​2.1.2. 求解 …

SQLLL

595-big-countries https://leetcode.com/problems/big-countries/description/ 面积最大的国家 -- select name, population, area from World where area > 3000000 or population > 25000000596-classes-with-at-least-5-students https://leetcode.com/problems/…

MySQL中触发器详解 触发器在自动化任务中的应用场景

触发器是mysql中与表关联的数据库对象,能在特定操作(如insert、update、delete)发生时自动执行预定义sql逻辑。其核心用途包括:1. 维护数据一致性,如订单插入后自动减少库存;2. 记录审计日志,如…

MySQL 8.0的数据库root用户默认无法远程登录,需要修改root的远程授权

mysql> grant all privileges on . to ‘root’‘%’; ERROR 1410 (42000): You are not allowed to create a user with GRANT mysql> use mysql; Reading table information for completion of table and column names You can turn off this feature to get a quick…

​​MPI + OpenMP 环境配置指南(Windows/Linux)​

—— 让你的并行计算飞起来 🚀 1. 简介​​ ​​MPI (Message Passing Interface)​​:用于多机分布式并行计算(进程级并行)。​​OpenMP​​:用于单机多线程并行计算(线程级并行)。​​混合编…

新闻类鸿蒙应用功耗危机以及优化方案

🔋 ​​一、功耗痛点:新闻类应用成“续航杀手”​​ ​​后台进程失控​​ ​​高频刷新​​:未适配应用(如网易新闻、百度客户端)默认每30秒后台刷新内容,触发CPU持续唤醒,单设备日均耗电增加1…

【小工具】-Doxygen01

0、前言 参考帖子。 使用Doxygen Documentation Generator自动添加注释 Doxygen使用教程 代码注释规范之Doxygen 1、Doxygen介绍 Doxygen 是一个功能强大的开源文档生成工具,主要用于从源代码中自动提取注释并生成专业的 API 文档。它支持多种编程语言&#xff…

大模型Transformer触顶带来的“热潮退去”,稀疏注意力架构创新或是未来

1. 大模型退潮:裸泳者离场,创新者浮出水面 资本热潮逐渐冷却,大模型赛道正经历残酷洗牌。过去两年密集的“百模大战”,本质是商业模式的军备竞赛,用数据规模与参数数量掩盖技术同质化。当DeepSeek以61层精简架构挑战千…

Android编译时打印所有引用的so库路径

在app module build.gradle 最后添加脚本 tasks.whenTaskAdded { task -> println("test 11 task.name:"task.name) if (task.name.startsWith(merge) && task.name.endsWith(NativeLibs)) { task.doFirst { prin…

暴雨亮相2025中关村论坛数字金融与金融安全大会

6月10日,由中关村金融科技产业发展联盟与中关村互联网金融研究院主办的“2025中关村论坛系列活动——数字金融与金融安全大会”在中关村展示中心盛大召开。本次大会以“人工智能机遇:未来金融格局重塑及安全治理”为主题,汇聚政产学研各界精英…

mapstruct中的@Mapper注解详解

在MapStruct中,Mapper注解是核心注解之一,用于标记一个接口或抽象类为MapStruct的映射器(Mapper)。MapStruct会在编译时自动生成该接口的实现类,完成对象之间的属性映射。以下是对Mapper注解的详细解析: 1.…

uniapp+vue2+h5图片下载保存,微信浏览器、非微信浏览器

小程序端 onDown() {// 检查相册权限uni.authorize({scope: scope.writePhotosAlbum,success: () > {this.downloadImage();},fail: () > {uni.showToast({title: "请授权相册权限",icon: "none"});}}); }, downloadImage() {common.request(post, …

NumPy 与 OpenCV 版本兼容性深度解析:底层机制与解决方案

在计算机视觉项目中,NumPy 和 OpenCV 的兼容性问题常被低估,实则暗藏复杂的技术陷阱。下面从底层机制深入剖析核心兼容性问题及解决方案: 一、内存布局冲突:数组连续性陷阱 问题本质: OpenCV 的 C 内核要求 连续内存块…

基于SpringBoot利用死信队列解决RabbitMQ业务队列故障重试无效场景问题

基于SpringBoot利用死信队列解决RabbitMQ业务队列故障重试无效场景问题 解决方案项目实战1、生产者服务1.1、RabbitConfig定义相关交换机及死信队列等配置数据1.2、TestController测试接口Controller 2、消费者服务2.1 BusinessQueueConsumer业务队列监听器2.2 DeadLetterConsu…

西安java面试总结1

这是我第二次的面试。其实第一次也算不上面试,去了让我手写了几道题,三道算法题,一道SQL题,两道逻辑思维题,做完之后也没看我的解答,随便看了一眼简历,觉得我是大二的,大三还有课&am…

【redis】线程IO模型

Redis线程IO模型 总结:在redis5.0及之前,redis线程io模型是单线程。那么Redis单线程如何处理那么多的并发客户端连接的?原因两点:1)非阻塞io 2)多路复用(事件轮询) 以下&#xff0…