(1)cpu0简介

2024-02-03 05:36
文章标签 简介 cpu0

本文主要是介绍(1)cpu0简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、cpu0介绍

        cpu032位架构16位通用寄存器,协处理器和其他特殊寄存器

(1)通用寄存器

全局指针寄存器:"Global Pointer register"(全局指针寄存器)是一个在某些处理器架构中存在的专用寄存器,它的主要作用是提供一个基准点(base point)以便高效地访问全局变量和静态数据。这个寄存器通常用于存储一个指向全局数据区(global data area)的固定地址,这样就可以使用相对于这个寄存器的偏移量来访问那些数据,而不是使用完整的32位或64位的地址。

帧指针寄存器:Frame Pointer register(帧指针寄存器)是一个在计算机架构中常见的寄存器,用于帮助在函数调用期间管理栈帧。它通常存储了当前函数的栈帧的起始地址。在函数调用期间,函数的局部变量和其他局部数据都存储在栈上。当一个函数被调用时,栈指针寄存器(Stack Pointer register)指向栈的当前顶部。为了访问局部变量,我们可以使用栈指针加上一个偏移量。然而,在一些情况下,栈指针可能会在函数调用过程中发生变化,例如在递归调用或多线程程序中。Frame Pointer register的作用是提供一个固定的参考点,用于访问函数的局部变量和其他局部数据,即使栈指针发生变化。它在函数调用开始时保存当前栈帧的起始地址,并在需要时作为参考点进行偏移计算。

栈指针寄存器:Stack Pointer register(栈指针寄存器)是一个在计算机架构中常见的寄存器,用于跟踪栈的顶部或当前栈帧的位置。栈是一种常见的数据结构,用于存储临时数据、函数调用信息和局部变量。栈指针寄存器保存了栈的当前顶部地址,它可以随着栈的变化而自动更新。在函数调用期间,栈指针寄存器用于分配和释放函数调用所需的内存空间。当一个函数被调用时,栈指针寄存器会向下移动,为新的栈帧分配空间。在函数返回时,栈指针寄存器会向上移动,释放当前栈帧所占用的空间。栈指针寄存器还用于访问函数的参数和局部变量。通过在栈指针寄存器的基础上添加偏移量,可以定位到特定的参数或局部变量的存储位置。总而言之,栈指针寄存器是在函数调用期间管理栈的关键寄存器。它跟踪栈的顶部或当前栈帧的位置,并用于分配和释放内存空间以及访问函数的参数和局部变量

Link Register (LR)是一个寄存器,用于存储函数的返回地址。当函数被调用时,调用指令会将函数的返回地址保存到LR寄存器中。然后,函数执行过程中可能会修改LR寄存器的值,以便在函数返回时能够正确地返回到调用点。

Status Word Register (SW)是一个特殊的寄存器,用于存储和表示处理器的状态信息。它通常由硬件或操作系统维护,并用于记录和监控处理器的状态。

(2)协寄存器

(3)特殊寄存器

指令寄存器:Instruction Register (IR)是一个寄存器,用于存储当前正在执行的指令。当处理器执行指令时,会将指令从内存中取出并存储到IR寄存器中,然后对该指令进行解码和执行。

内存地址寄存器:Memory Address Register (MAR)是一个寄存器,用于存储要访问的内存地址。当处理器需要读取或写入内存中的数据时,它会将要访问的内存地址存储到MAR寄存器中。

内存数据寄存器:Memory Data Register (MDR)是一个寄存器,用于存储从内存中读取或将要写入内存的数据。当处理器执行读取或写入内存的操作时,它会将数据存储到MDR寄存器中或从MDR寄存器中获取数据。

高位乘法结果寄存器:"High part of MULT result" 是指乘法运算的结果的高位部分。在某些处理器中,乘法操作的结果可能会超过一个寄存器的容量,因此需要将结果分为高位部分和低位部分进行存储。低位同理。

cpu0有三种指令类型:A、L、J

A型和算数有关、L型和内存有关、J型和控制流有关

Cpu0有两个ISA,第一个ISA- i是采用ARM CMP指令的cpu032I;第二个ISA-II是cpu032II,它采用了Mips的SLT指令。cpu032II包含了所有的cpu032I指令集,并增加了SLT、BEQ、…,指令

这篇关于(1)cpu0简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/673120

相关文章

Java Docx4j类库简介及使用示例详解

《JavaDocx4j类库简介及使用示例详解》Docx4j是一个强大而灵活的Java库,非常适合需要自动化生成、处理、转换MicrosoftOffice文档的服务器端或后端应用,本文给大家介绍Jav... 目录1.简介2.安装与依赖3.基础用法示例3.1 创建一个新 DOCX 并添加内容3.2 读取一个已存

Java中最全最基础的IO流概述和简介案例分析

《Java中最全最基础的IO流概述和简介案例分析》JavaIO流用于程序与外部设备的数据交互,分为字节流(InputStream/OutputStream)和字符流(Reader/Writer),处理... 目录IO流简介IO是什么应用场景IO流的分类流的超类类型字节文件流应用简介核心API文件输出流应用文

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址

Python 异步编程 asyncio简介及基本用法

《Python异步编程asyncio简介及基本用法》asyncio是Python的一个库,用于编写并发代码,使用协程、任务和Futures来处理I/O密集型和高延迟操作,本文给大家介绍Python... 目录1、asyncio是什么IO密集型任务特征2、怎么用1、基本用法2、关键字 async1、async