【深入浅出】寄存器精讲第一期

在这里插入图片描述
🌈个人主页:聆风吟
🔥系列专栏:数据结构、算法模板、汇编语言
🔖少年有梦不应止于心动,更要付诸行动。


文章目录

  • 📋前言
  • 一. ⛳️开篇
    • 1.1 🔔CPU 概述(简单了解)
    • 1.2 🔔寄存器概述(简单了解)
  • 二. ⛳️通用寄存器
  • 三. ⛳️字在寄存器中的存储
  • 四. ⛳️几条汇编指令
  • 五. ⛳️小结检测
    • 5.1 🔔习题
    • 5.2 🔔习题答案
  • 📝全文总结

📋前言

    💬 hello! 各位铁子们大家好哇,又许久没有更新我们的汇编啦,事情比较繁多还希望大家能够多多包含。不知道上期使用咱们的安装教程是否已经把dosbox安装好了,今天又给大家带来了新的知识——初识寄存器,让我们一起来学习吧
    📚 系列专栏:本期文章收录在《汇编语言》,大家有兴趣可以浏览和关注,后面将会有更多精彩内容!
    🎉 欢迎大家关注🔍点赞👍收藏⭐️留言📝



一. ⛳️开篇

1.1 🔔CPU 概述(简单了解)

    一个典型的 CPU 由运算器、控制器、寄存器等器件组成,这些器件靠内部总线相连接。说到总线,我们在第一期提到过的总线相对于 CPU 内部来说是外部总线。内部总线实现 CPU 内部各器件之间的联系,外部总线实现 CPU 和主板上其它器件的联系。 简单的说,在 CPU 中:

  • 运算器进行信息处理;
  • 寄存器进行信息存储;
  • 控制器控制各种器件进行工作;
  • 内部总线连接各种器件,在它们之间进行数据的传送。

    对于一个程序猿来说,CPU 中的主要部件是寄存器。寄存器是 CPU 中程序猿可以用指令读写的部件。程序猿通过改变各种寄存器中的内容来实现对 CPU 的控制。

1.2 🔔寄存器概述(简单了解)

    寄存器是计算机中一种用于暂时存储数据的硬件组件。它们通常是非常快速的,通常直接嵌入到中央处理器(CPU)中。寄存器主要用于缓存指令和数据,以便CPU可以更快地访问和处理它们。所有计算机中的寄存器都由一定数量的二进制位组成,并且具有固定的大小。其中8086CPU 有14个寄存器,它们的名称分别为:AX、BX、CX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。这些寄存器我们将会在后续的课程中陆续介绍。



二. ⛳️通用寄存器

    8086CPU 的所有寄存器都是16位的,可以存放两个字节。AX、BX、CX、DX通常用来存放一般性的数据,被称为通用寄存器
     以 AX 为例,寄存器的逻辑结构如下图所示:在这里插入图片描述

    一位16位寄存器可以存储一个16位的数据。数据在寄存器中的存放情况如下图所示:在这里插入图片描述有以上示例我们可以总结出,一个16位寄存器所能存储的的数据的最大值为2^16 -1,同理一个8位寄存器所能存储的的数据的最大值为2^8 -1

    8086CPU 的上代CPU中的寄存器都是 8 位的,为保证兼容,使原来基于上代CPU编写的程序稍加修改就可以运行在8086之上,AX、BX、CX、DX这四个寄存器都可以分为两个独立的8位寄存器使用:
在这里插入图片描述
分析: AX的低 8 位(0位 ~ 7位)构成了AL寄存器,高8位(8位~15位)构成了AH 寄存器。AH 和 AL寄存器是可以独立使用的8位寄存器。
在这里插入图片描述



三. ⛳️字在寄存器中的存储

    出于对兼容性的考虑,8086CPU 可以一次性处理以下两种尺寸的数据:

  • 字节:记为byte,一个字节有 8 个 bit 组成,可以存放在 8 位寄存器中;
  • 字:即为word,,一个字有两个字节组成,这两个字节分别称为这个字的高位字节和地位字节,如下图所示:

在这里插入图片描述

由上所述: 一个字可以在一个16位的寄存器中,这个字的高位字节和低位字节自然就存在这个寄存器的高8位寄存器和低8位寄存器中。



四. ⛳️几条汇编指令

在这里插入图片描述
注意:在写一条会汇编指令或一个寄存器的名称时不区分大小写。如:mov ax,18 和 MOV AX,18 的含义相同;bx 和 BX 的含义相同。



五. ⛳️小结检测

5.1 🔔习题

(1):写出每条汇编指令执行后相关信息寄存器中的值

指令寄存器的值
mov ax,62627AX =
mov ah,31HAX =
mov al,23HAX =
add ax,axAX =
mov bx,826CHBX =
mov cx,axCX =
mov ax,bxAX =
add ax,bxAX =
mov al,bhAX =
mov ah,blAX =
add ah, ahAX =
add al,6AX =
add al,alAX =
mov ax,cxAX =

(2):只能使用目前学过的汇编指令,最多使用4条指令,编程计算2的4次方。

5.2 🔔习题答案

注明:一天后习题答案将在评论区展示,一周或两周后将会把答案修订到文章中。



📝全文总结

归纳:
    本文主要是初识寄存器,介绍了通用寄存器AX,BX,CX,DX以及寄存器的逻辑结构,数据在寄存器中的存储形式。紧接着我们又讲解了字在寄存器中的存储占两个字节,后面简单介绍了几条汇编指令,最后我们以习题的形式结束今天的文章,希望大家都能够自己动手尝试做做题目,孰能生巧。

     今天的内容就到这里了,你对今天的内容是否有所掌握?如果还有疑问的话请在评论区里多多提问,大家可以一起帮你解决,让我们共同进步。创作不易,如果对你有用的的话点个赞支持下作者,你们的支持是作者创作最大的动力。关注我不迷路,让我们下期再见✋✋。

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

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

相关文章

分布式消息队列:RabbitMQ(1)

目录 一:中间件 二:分布式消息队列 2.1:是消息队列 2.1.1:消息队列的优势 2.1.1.1:异步处理化 2.1.1.2:削峰填谷 2.2:分布式消息队列 2.2.1:分布式消息队列的优势 2.2.1.1:数据的持久化 2.2.1.2:可扩展性 2.2.1.3:应用解耦 2.2.1.4:发送订阅 2.2.2:分布式消息队列…

mathtype7.4破解永久激活码

MathType(数学公式编辑器)是由Design Science公司研发的一款专业的数学公式编辑工具。MathType功能非常强大,尤其适用于专门研究数学领域的人群使用。使用MathType让你在输入数学公式的时候能够更加的得心应手,各种复杂的运算符号也不在话下。 MathType最…

SpringBoot小项目——简单的小区物业后台管理系统 认证鉴权 用户-角色模型 AOP切面日志 全局异常【源码】

目录 引出一、应用到的技术栈Spring、Spring MVC、Spring Boot基础SpringBoot进阶、SpringMVC原理、AOP切面MyBatis 数据库相关JavaWeb基础:Session等前端Vue、JavaScript、Bootstrap 二、后台管理系统的功能登录功能1.用户名密码登录2.验证码的登录 报修业务的处理…

贝叶斯变分方法:初学者指南--平均场近似

Eric Jang: A Beginners Guide to Variational Methods: Mean-Field Approximation (evjang.com) 一、说明 变分贝叶斯 (VB) 方法是统计机器学习中非常流行的一系列技术。VB 方法允许我们将 统计推断 问题(即,给定另一个随机变量的值来推断随机变量的值&…

服务熔断保护实践--Hystrix

概述 微服务有很多互相调用的服务,构成一系列的调用链路,如果调用链路中某个服务失效或者网络堵塞等问题,而有较多请求都需要调用有问题的服务时,这是就会造成多个服务的大面积失效,造成服务“雪崩”效应。 服务“雪…

【C语言】优化通讯录管理系统

大家好,我是苏貝,本篇博客带大家优化上一篇的通讯录,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 前言二. 动态通讯录2.1 通讯录结构体2.2 初始化通讯录2.3 增加联系人2.4 销毁通讯…

Redis原理-IO模型和持久化

高性能IO模型 为什么单线程Redis能那么快 一方面,Redis 的大部分操作在内存上完成,再加上它采用了高效的数据结构,例如哈希表和跳表,这是它实现高性能的一个重要原因。另一方面,就是 Redis 采用了多路复用机制&#…

HTML简单实现v-if与v-for与v-model

Vue启动!! 首先VIewModel将View和Model连接一起,Model的数据改变View的数据也变 使用Visual Studio Code 启动Vue需要vue.js插件和导入CDN(包) vue.js插件:CTRL shift x 在搜索栏搜 索vue.js安装即可 CDN: http…

orb-slam3编译手册(Ubuntu20.04)

orb-slam3编译手册(Ubuntu20.04) 一、环境要求1.安装git2.安装g3.安装CMake4.安装vi编辑器 二、源代码下载三、依赖库下载1.Eigen安装2.Pangolin安装3.opencv安装4.安装Python & libssl-dev5.安装boost库 三、安装orb-slam3四、数据集下载及测试 写在…

k8s集群升级

目录 1. 部署cri-docker (所有集群节点) 2. 升级master节点 3. 升级worker节点 4. 部署containerd 1. 部署cri-docker (所有集群节点) k8s从1.24版本开始移除了dockershim,所以需要安装cri-docker插件才能使用docker …

MySQL6:索引使用原则,联合索引,联合主键/复合主键,覆盖索引、什么是回表?索引条件下推,索引的创建与使用,索引的创建与使用,索引失效

MySQL6:索引使用原则,联合索引,联合主键/复合主键,覆盖索引、什么是回表?索引条件下推,索引的创建与使用,索引的创建与使用,索引失效 索引使用原则列的离散(sdn)度 联合索引创建联合…

Harbor私有镜像仓库搭建

本文基于:https://zhuanlan.zhihu.com/p/143779176 1.环境准备 IP:192.168.10.136/24 操作系统:centos7 2.安装Docker、Docker-compose 2.1安装Docker-CE $ wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.re…

数据库简史:多主数据库架构的由来和华为参天引擎的机遇

注:本文发表后,收到了很多后台反馈,其中关于大型机的早期成就不容省略。微调重发本文,纯属个人观点,错谬之处,仍然期待指正。 2023年10月13日,在北京举办的“2023金融业数据库技术大会"上&…

redis6.0源码分析:跳表skiplist

文章目录 前言什么是跳表跳表(redis实现)的空间复杂度相关定义 跳表(redis实现)相关操作创建跳表插入节点查找节点删除节点 前言 太长不看版 跳跃表是有序集合zset的底层实现之一, 除此之外它在 Redis 中没有其他应用。…

电力巡检/电力抢修行业解决方案:AI+视频技术助力解决巡检监管难题

一、行业背景 随着国民经济的蓬勃发展,工业用电和居民用电需求迅速增加,电厂、变电站、输电线路高负荷运转,一旦某个节点发生故障,对生产、生活造成巨大的影响。目前电力行业生产现场人员、设备较多,而生产监督员有限…

基于vue小红书平台用户数据分析与可视化

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性:…

【马蹄集】—— 搜索专题

搜索专题 目录 MT2238 数的增殖MT2239 二维矩阵中的最长下降序列MT2240 传染病MT2241 循环空间BD202303 第五维度 MT2238 数的增殖 难度&#xff1a;黄金    时间限制&#xff1a;1秒    占用内存&#xff1a;128M 题目描述 给定一个数 n ( n < 1000 ) n (n<1000) n…

Java I/O (输入/输出)

1.流的概念 流是一种有序的数据序列&#xff0c;根据操作类型&#xff0c;可以分为输入流和输出流两种。I/O流&#xff08;输入输出&#xff09;提供了一条通道程序&#xff0c;可以使用这条通道把源中的字节序列送到目的地。 1.1 输入流&#xff1a; 程序从指向源的输入流中读…

51单片机汽车胎压大气气压测量仪仿真设计_数码管显示(代码+仿真+设计报告+讲解)

51单片机汽车胎压大气气压测量仪仿真设计_数码管显示 (代码仿真设计报告讲解) 仿真原版本&#xff1a;proteus 7.8 程序编译器&#xff1a;keil 4/keil 5 编程语言&#xff1a;C语言 设计编号&#xff1a;S0018 目录 51单片机汽车胎压大气气压测量仪仿真设计_数码管显示功…

技术分享| anyRTC低延时直播优化

直播系统就是把活动现场的音频或视频信号经数字压缩后&#xff0c;传送到直播多媒体服务器(CDN)上&#xff0c;在互联网上供广大网友或授权特定人群收听或收看。而随着技术的日益更新&#xff0c;人民对于直播的互动性&#xff0c;实时性要求更高了&#xff0c;传统的直播少则几…