文章目录

  • 前言
  • 一、8086CPU及通用寄存器的由来
  • 二、四个通用寄存器
    • 1.通用寄存器
    • 2.AX、BX、CX和DX寄存器的特点
  • 三、为什么寄存器设计成8位、16位
    • 位数溢出会发生什么
  • 四、寄存器相关题目
  • 总结

前言

本文记录笔者为了汇编语言考试,梳理基于8086CPU的汇编语言相关知识点

一、8086CPU及通用寄存器的由来

在了解标题中的四个寄存器之前,笔者先对学习的8086CPU进行一番整理

Intel 8086是一个由Intel于1978年所设计的16位微处理器芯片,是x86架构的鼻祖。不久之后,Intel 就推出了 Intel 8088(一个拥有8位外部数据总线的微处理器)。它是以8080和8085的设计为基础,拥有类似的寄存器组,但是地址总线扩充为20位。总线接口单元(Bus Interface Unit)透过6字节预存(prefetch) 的队列(queue)位指令给执行单元(Execution Unit),所以取指令和执行是同步的,8086CPU有20条地址线,可直接寻址1MB的存储空间,每一个存储单元可以存放一个字节(8位)二进制信息。

Intel 8086拥有四个16位的通用寄存器,也能够当作八个8位寄存器来存取,以及四个16位索引寄存器(包含了堆栈指标)。资料寄存器通常由指令隐含地使用,针对暂存值需要复杂的寄存器配置。它提供64K 8 位元的输出输入(或32K 16位元),以及固定的向量中断。大部分的指令只能够存取一个内存位址,所以其中一个操作数必须是一个寄存器。运算结果会储存在操作数中的一个寄存器。

划重点,我们对以上的两段话进行整理如下:

  • 8086处理器具备20条地址总线
  • 8086处理器具有16根数据线
  • 8086处理器拥有四个16位通用寄存器,可当作八个8位寄存器进行存取

二、四个通用寄存器

1.通用寄存器

通用寄存器,顾名思义,是用来存放数据的,数据寄存器,针对8086处理器,你可以把他理解为能够存放16位数据的箱子

对于16位寄存器,能够存放的数据为

0000 0000~1111 1111 1111 1111 即0 ~FFFFH 0 ~ 6553

8086CPU具备四个通用寄存器,它们分别是AX、BX、CX和DX

2.AX、BX、CX和DX寄存器的特点

对于以上四种寄存器,他们与其他数据寄存器的不同之处在于,他们存储数据的16位,可以各自分为2个8位寄存器


AX= AH + AL, AX的高8位为AH寄存器, H =high
BX= BH + BL,
CX=CH + CL,
DX= DH + DL

三、为什么寄存器设计成8位、16位

我们知道,在计算机中,内存的最小单元为字节,即8位数据

而在第一部分已经提及,8086CPU的数据线为16根数据线,即8086CPU可以处理2种尺寸的数据

  • 字节型数据 1byte=8bit --8位寄存器
  • 字型数据 2byte=16bit --16位寄存器 2个字节

对于字型数据,存放到通用寄存器中,分为两种

1.高位字节(AH,BH,CH,DH)
2.低位字节(AL,BL,CL,DL)

在进行汇编语言代码编写时,保证指令和数据的一致性非常重要!!!!

8位数据,只能给8位的寄存器;16位数据,只能给16位的寄存器

位数溢出会发生什么

若加法超过寄存器,如8位寄存器AL,往里面填充数值超过8位,则AL寄存器只保留相加溢出后未溢出的8位数据,溢出的数据,并不会保存到AH寄存器中,而是会存放到其他寄存器中

同样的AX寄存器,相加溢出时,只保存后16位数据,不会保存溢出16位的部分

寄存器是互相独立的,AL就是AL, AX就是AX,不会互相影响

四、寄存器相关题目

总结

以上便是关于数据寄存器中的四种通用寄存器的总结

汇编语言:AX、BX、CX、DX寄存器知识点梳理相关推荐

  1. 汇编语言AX,BX,CX,DX寄存器

    AX,BX,CX,DX寄存器 这四个寄存器用来存放数据,也就是数据寄存器 AX的大小为2B=16bit(所有也叫16位寄存器) 数据范围:0000 0000 0000 0000----1111 111 ...

  2. 汇编(8086cpu): AX,BX,CX,DX寄存器

    AX,BX,CX,DX寄存器这四个寄存器也被称为通用寄存器.一般用来存放数据,一个寄存器可以存放16bit,也就是2bytes. 所以也被称为16位寄存器. 什么特殊的地方导致这四个寄存器和其他寄存器 ...

  3. Win-MASM64汇编语言-通用寄存器AX/BX/CX/DX/SI/DI/BP

    (1)AX: ①用于数据中转:高级语言反汇编中CPU通常使用ax进行中转数据,比如要往ds寄存器中放数据的话,不可以mov ds,0001H这样写,而是应该先mov ax,0001H,然后再mov d ...

  4. 汇编中的通用基础寄存器ax,bx,cx,dx等的含意及作用解释

    对一些汇编语言中基础的寄存器的代表的字符及含意(基础的) 一.段寄存器 在程序中起到声明段的作用,一般与assume同时出现 1.DS 数据段寄存器 2.ES 附加数据段寄存器 3.CS 代码段寄存器 ...

  5. 汇编语言 知识点梳理(王爽)

    汇编语言(王爽) 第一章 基础知识 汇编语言的三类指令 (1)汇编指令:机器码的助记符,有对应的机器码 (2)伪指令:没有对应的机器码,由编译器执行,计算机不执行 (3)其它符号,如+,-,*,/等, ...

  6. [汇编语言学习笔记][第二章寄存器]

    第二章 寄存器 8086有14个寄存器,分别为AX,BX,CX,DX,SI,DI,SP,BP,IP,CS,SS,DS,ES,PSW. 2.1 通用寄存器 8086CPU的所有寄存器都是16位,可以存放 ...

  7. 呕心沥血 JavaScript知识点梳理大全,超详细 建议收藏!!!

    呕心沥血 JavaScript知识点梳理大全,超详细 建议收藏!!! ✴️大家好,我是王同学,爆肝三天三夜王同学把JavaScript 知识点梳理了一遍,文章没有一点套路,只有满满的干货 ✴️如果对你 ...

  8. OpenCV图像处理知识点梳理

    OpenCV知识点梳理 OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉和机器学习软件库,可以运行在Linux.Windows.Android和Mas OS操作系统上. 它轻量级而且高效 ...

  9. MOV AX,BX 与 MOV AX,[BX] 区别

    <1> MOV AX,BX         假设 AX = 2022H,BX = 2099H,则在指令 MOV AX,BX 执行之后,AX = 2099H,BX = 2099H <2 ...

最新文章

  1. 中文企业云操作系统 CecOS
  2. 波音737-800座位图哪个好_澳媒一张图揭秘,飞机选座秘诀!经济舱最舒适的位置在这儿...
  3. [USACO1.2]双重回文数 Dual Palindromes
  4. 腾讯AI Lab的研究方向
  5. SAP 电商云 Spartacus UI 设置 Delivery Mode 的时序分析和一个竞争条件问题分享
  6. Angular的scope. apply和CRM WebClient UI的modify方法
  7. asp.net core监控—引入Prometheus(二)
  8. sublime配置python2和3_请教各位,关于sublime text3 配置python环境的两个小问题。
  9. python点击屏幕_python实现鼠标自动点击屏幕
  10. Xampp的apache无法启动时的解决办法
  11. SAP ABAP Development Tool 如何设置黑色主题
  12. Android车载蓝牙相关开发3:蓝牙音频接收器BluetoothA2dpSink
  13. 云计算技术基础【10】
  14. 博士生导师谈他如何检索文献
  15. 幼麟棋牌游戏进程分析
  16. 【T3】win10系统成功注册加密锁后,登录软件依然提示“产品未找到合法的license授权”
  17. 简单的科普(引导模式、分区格式)
  18. 新视野大学英语(1)课本单词汇总
  19. DICTATOR第一周二分查找作业
  20. 解密淘宝优惠群泛滥的原因

热门文章

  1. e1000网卡驱动小结
  2. sftp stp差异
  3. Hive 数据倾斜问题定位排查及解决(实际案例)
  4. 带约束的多目标优化进化算法综述
  5. 30 岁了, 现在开始努力,晚吗?
  6. 工作1-2年,月薪3000不可怕,可怕的是能力与之相匹配
  7. 运维中的交换机堆叠是什么
  8. 分析比较国内几大OTA(Online Travel Agency)的优劣势
  9. 王阳明心学 之 心即理感悟
  10. ROS,Ubuntu,noobs,raspbian和raspbeery pi3的关系