一、基本知识:

对于一个汇编程序员来说,CPU中的主要部件是寄存器。寄存器是CPU中程序员可以用指令读写的部件;程序员通过改变各种寄存器中的内容来实现对于CPU的控制。对于不同的CPU,寄存器个数、结构是不相同的

8086CPU中有14个寄存器,每个寄存器都有一个对应的名称:AX、BX、CX、DXSI、DISP、BP、IP、CS、SS、DS、ESPSW

8086CPU中所有的寄存器都是16位,可以存放两个字节。

以AX寄存器为例

但是只有AX、BX、CX、DX这4个寄存器可以分为两个可独立使用的8位寄存器来使用;其他寄存器都不行!

二、通用寄存器:

数据寄存器:(AX、BX、CX、DX)

基本介绍:

AX、BX、CX、DX这4个寄存器通常用来存放一般性的数据。

以AX寄存器为例

因为8086CPU的上一代CPU中的寄存器都是8位的,为了保证兼容,使得原来基于上代CPU编写的程序稍加修改就可以在8086CPU上运行,故8086CPU的 AX、BX、CX、DX这4个寄存器都可以分为两个可独立使用的8位寄存器来使用。(注意:但是仅仅限于这四个寄存器,其他的寄存器都不能分成高低8位来使用。)

以寄存器AX为例

(以寄存器AX为例)AX的低八位构成了AL寄存器,高八位构成了AH寄存器;这两个寄存器都是可以分别独立使用的8位寄存器。

关于使用的一点注意:(以寄存器AX为例,其他数据寄存器也一样!)

mov ah,0
mov al,200
add al,60

200+60=260;但是因为al是一个8位的寄存器,所以它会发生溢出,所以在运算之后在al中实际存储的值是260-256=4;那么问题来了,溢出的那一位是否会存储在ah中呢?使用代码验证一下!

检验代码:

DATAS SEGMENT;此处输入数据段代码
DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码
STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AX;此处输入代码段代码mov ah,0mov al,200add al,60mov dl,ahadd dl,48mov ah,2int 21h   MOV AH,4CHINT 21H
CODES ENDSEND START

通过运行结果,我们可以发现那溢出的一位并没有存储在寄存器ah中,因此我们可以得出结论——单独使用寄存器al和寄存器ah时;他们均是作为一个8位独立的寄存器来使用的;彼此互不干扰。

但是当使用ax时就不一样了!

DATAS SEGMENT;此处输入数据段代码
DATAS ENDSSTACKS SEGMENT;此处输入堆栈段代码
STACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS
START:MOV AX,DATASMOV DS,AX;此处输入代码段代码mov ax,200add ax,60mov bx,axcall outputMOV AH,4CHINT 21H;多位输出函数,入口参数为bx
output procpush ax;数据入栈区push cxpush dx;初始化变量mov ax,bx;数据放入准备除法mov cl,10;作为除数mov ch,0;用于计数便于后续出栈输出divagain:;除法数字剥离部分cmp ax,0;判断是否已经除尽je divoverinc ch;计数器加1div clpush ax;入栈,提取的时候取用ah部分,存储余数(低位优先)mov ah,0;调整axjmp divagain;再次除法剥离数字divover:;出栈输出部分cmp ch,0;判断数字是否已经出尽je outputoverpop ax;取用ah部分mov dl,ah;输出部分add dl,48mov ah,2int 21hdec chjmp divover outputover:;收尾部分pop dxpop cxpop ax;数据出栈区ret
output endpCODES ENDSEND START

因此我们可以知道使用ax寄存器时,al寄存器和ah寄存器是作为一个整体,彼此不再独立使用!

如果对于图中的多位输出函数——output不太理解的话;可以看我的往期内容,点击下方链接直达!

8086汇编语言:多位数据进行输出

8086汇编语言:8086CPU寄存器的相关介绍相关推荐

  1. 汇编语言8086CPU之寄存器总结

    寄存器是什么呢? 其实很简单,寄存器就是个存储信息的单元或者说是器件又或者说是容器而已,就比如内存也是一个存储介质或者说是存储单元而已,其实寄存器从理解上来说和内存差不多,只不过寄存器(这里讨论的寄存 ...

  2. [汇编语言]标志寄存器

    目录 一.ZF标志 二.PF标志 三.SF标志 四.CF标志 五.OF标志 六.adc指令 七.sbb指令 八.cmp指令 九.检测比较结果的条件转移指令 十.DF标志和串传送指令 十一.pushf和 ...

  3. FPGA之道(66)代码中的约束信息(三)存储器以及寄存器的相关约束

    文章目录 前言 存储器的相关约束 ram_extract ram_style rom_extract rom_style 寄存器的相关约束 前言 这是这个话题的第三篇,最重要的前言是本文节选自:< ...

  4. 昇腾Ascend处理器相关介绍

    一.参考资料 modelzoo wiki 解密昇腾AI处理器–Ascend310简介 AI芯片:华为Ascend(昇腾)910结构分析 解密昇腾AI处理器–DaVinci架构(计算单元) 二.相关介绍 ...

  5. Linux(一)之相关介绍与安装

    一.Linux相关介绍 1.计算机资源 计算机之前分类:大型机 中型机 小型机 微型机(微机) 计算机资源:冯.诺依曼 硬件资源 内设设备 cpu 主板 内存 硬盘 网卡 声卡 外设设备 鼠标 画图板 ...

  6. 8086/8088 CPU寄存器组

    作者:黑剑  出处:http://www.cnblogs.com/blacksword/ 8086/8088 CPU寄存器组 今天来回顾一下8086/8088 CPU寄存器组的知识.其实8086汇编还 ...

  7. 基于FPGA的SRIO的相关介绍和实现

    SRIO的相关介绍和实现 1.SRIO简介 SRIO是面向嵌入式系统开发提出的高可靠.高性能.基于包交换的新一代高速互联技术,已于2004年被国际标准化组织(ISO)和国际电工协会(IEC)批准为IS ...

  8. pthread相关介绍

    pthread相关介绍 int pthread_create(pthread_t *tid, const pthread_attr_t *attr, void*(*start_routine)(voi ...

  9. axios队列 vue_(十三 )Vue 封装axios(四种请求)及相关介绍

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  10. python映射类型-python映射类型的相关介绍

    映射类型是一类可迭代的键-值数据项的组合,提供了存取数据项及其键和值的方法,在python3中,支持两种无序的映射类型:内置的dict和标准库中的collections.defaultdict类型. ...

最新文章

  1. 多线程:pthread_cond_wait 实现原理
  2. 很蛋疼的ORA-00911:无效的字符错误
  3. Apache Nutch 1.3 学习笔记十一(页面评分机制 OPIC)
  4. Linux下安装Jboss
  5. 阿里巴巴在应用性能测试场景设计和实现上的实践
  6. LPWA技术:发展物联网的最佳选择
  7. spark sql uv_使用Spark Streaming SQL进行PV/UV统计
  8. 最“好”的编程语言 PHP 真的无药可救了吗?
  9. 二分专题(不定期更新)
  10. 《初级会计电算化实用教程(金蝶KIS专业版)》一1.5 课后习题
  11. c语言知识点总结大全(史上最全)
  12. 中国股市的发展进程,审核制到注册制利国利民
  13. 详解Nginx Rewrite标记last和break的区别
  14. 三维光学测量技术在汽车设计及零部件制造过程中的应用
  15. 【ESP32】 esp32 输入输出文件系统、编码
  16. 腾讯地图产业版 WeMap 官网正式发布
  17. 计算机各类会议及投稿文章总结,个人感觉入门超级有用!
  18. 西门子1200PLC与V90伺服驱动器 TO控制模式(即工艺对象的方式))
  19. Linux 学习之创建、删除文件和文件夹命令
  20. 智能血糖仪行业调研报告 - 市场现状分析与发展前景预测

热门文章

  1. jmail组件 java,分享Jmail发送邮件工具类
  2. 职业规划-IT方向(超详细,超具体)
  3. 关于ActionForm的一些问题
  4. SOAP协议的深度解析
  5. iso硬盘安装 凤凰os_多系统下成功硬盘安装phoenix OS
  6. 大概都能懂的Eviews教程:二(转载)
  7. matlabGUI入门
  8. 幸运九宫格抽奖系统带后台源码
  9. 专用计算机数控编程软件有哪些,大家都用什么数控编程软件
  10. 更深层次的了解计算机,想要对电脑拉力试验机有更深层次的了解,看这里