当前位置:首页 > 经验 >

寄存器通俗解释(单片机寄存器通俗解释)

来源:原点资讯(www.yd166.com)时间:2022-11-06 07:22:54作者:YD166手机阅读>>

此时这个指令就已经具备执行条件,此时 IP 也就是指令指针会自动增加。我们上面说到 IP 其实就是从 Code Segment 也就是 CS 处偏移的地址,也就是偏移地址。它会知道下一个需要读取指令的地址,如下图所示

寄存器通俗解释,单片机寄存器通俗解释(17)

在这之后,指令执行执行取出的 B8 23 01 这条指令。

然后下面再把 2000 和 0003 送到地址加法器中再进行后续指令的读取。后面的指令读取过程和我们上面探讨的如出一辙,这里 cxuan 就不再赘述啦。

通过对上面的描述,我们能总结一下 8086 CPU 的工作过程

  • 段寄存器提供段地址和偏移地址给地址加法器
  • 由地址加法器计算出物理地址通过输入输出控制电路将物理地址送到内存中
  • 提取物理地址对应的指令,经由控制电路取回并送到指令缓存器中
  • IP 继续指向下一条指令的地址,同时指令执行器执行指令缓冲器中的指令
什么是 Code Segment

Code Segment 即代码段,它就是我们上面聊到就是 CS 寄存器中存储的基础地址,也就是段地址,段地址其本质上就是一组内存单元的地址,例如上面的 mov ax,0123H 、mov bx, 0003H。我们可以将长度为 N 的一组代码,存放在一组连续地址、其实地址为 16 的倍数的内存单元中,我们可以认为,这段内存就是用来存放代码的。

DS 寄存器

CPU 在读写一个内存单元的时候,需要知道这个内存单元的地址。在 8086 CPU 中,有一个 DS 寄存器,通常用来存放访问数据的段地址。如果你想要读取一个 10000H 的数据,你可能会需要下面这段代码

mov bx,10000H mov ds,bx mov a1,[0]

上面这三条指令就把 10000H 读取到了 a1 中。

在上面汇编代码中,mov 指令有两种传送方式

  • 一种是把数据直接送入寄存器
  • 一种是将一个寄存器的内容送入另一个寄存器

但是不仅仅如此,mov 指令还具有下面这几种表达方式

描述举例mov 寄存器,数据比如:mov ax,8mov 寄存器,寄存器比如:mov ax,bxmov 寄存器,内存单元比如:mov ax,[0]mov 内存单元,寄存器比如:mov[0], axmov 段寄存器,寄存器比如:mov ds,ax

栈我相信大部分小伙伴已经非常熟悉了,栈是一种具有特殊的访问方式的存储空间。它的特殊性就在于,先进入栈的元素,最后才出去,也就是我们常说的 先入后出。

它就像一个大的收纳箱,你可以往里面放相同类型的东西,比如书,最先放进收纳箱的书在最下面,最后放进收纳箱的书在最上面,如果你想拿书的话, 必须从最上面开始取,否则是无法取出最下面的书籍的。

栈的数据结构就是这样,你把书籍压入收纳箱的操作叫做压入(push),你把书籍从收纳箱取出的操作叫做弹出(pop),它的模型图大概是这样

寄存器通俗解释,单片机寄存器通俗解释(18)

入栈相当于是增加操作,出栈相当于是删除操作,只不过叫法不一样。栈和内存不同,它不需要指定元素的地址。它的大概使用如下

// 压入数据 Push(123); Push(456); Push(789); // 弹出数据 j = Pop(); k = Pop(); l = Pop();

在栈中,LIFO 方式表示栈的数组中所保存的最后面的数据(Last In)会被最先读取出来(First Out)。

寄存器通俗解释,单片机寄存器通俗解释(19)

栈和 SS 寄存器

下面我们就通过一段汇编代码来描述一下栈的压入弹出的过程

8086 CPU 提供入栈和出栈指令,最基本的两个是 PUSH(入栈) 和 POP(出栈)。比如 push ax 会把 ax 寄存器中的数据压入栈中,pop ax 表示从栈顶取出数据送入 ax 寄存器中。

这里注意一点:8086 CPU 中的入栈和出栈都是以字为单位进行的。

我这里首先有一个初始的栈,没有任何指令和数据。

寄存器通俗解释,单片机寄存器通俗解释(20)

栏目热文

8位移位寄存器原理(8位移位寄存器电路设计)

8位移位寄存器原理(8位移位寄存器电路设计)

Arduino从零开始你将学到什么1、你将学到如何增加arduino uno的数字输出针脚2、你将学到74HC595移位...

2022-11-06 07:03:05查看全文 >>

图解寄存器(寄存器寻址图解)

图解寄存器(寄存器寻址图解)

引言指令计数器即程序计数器。它是计算机处理器中的寄存器,它包含当前正在执行的指令的地址(位置)。当每个指令被获取,指令计...

2022-11-06 07:26:17查看全文 >>

寄存器的工作原理及逻辑功能(寄存器电路工作原理)

寄存器的工作原理及逻辑功能(寄存器电路工作原理)

序言前段时间,我连续写了十来篇CPU底层系列技术故事文章,有不少读者私信我让我写一下CPU的寄存器。寄存器这个太多太复杂...

2022-11-06 07:33:35查看全文 >>

移位寄存器的工作原理(八位循环移位寄存器工作原理)

移位寄存器的工作原理(八位循环移位寄存器工作原理)

今天我们将使用几个基本的电子“构建模块”,移位寄存器。这些方便的设备可用于各种用途,如数据转换、缓冲和存储,但今天我们将...

2022-11-06 07:23:36查看全文 >>

变频器寄存器通俗解释(变频器作用通俗解释)

变频器寄存器通俗解释(变频器作用通俗解释)

1、系统配置1.1 软件安装 Step7 Micro/Win SMART software(含 Modbus协议库)的P...

2022-11-06 07:27:33查看全文 >>

计算机寄存器原理图(计算机中所有的寄存器)

计算机寄存器原理图(计算机中所有的寄存器)

通过前面的学习,我们已知单片机的内部有ROM、有RAM、有并行I/O口,那么,除了这些东西之外,单片机内部究竟还有些什...

2022-11-06 07:20:50查看全文 >>

变址寄存器v和z有什么区别(为什么不建议学单片机)

变址寄存器v和z有什么区别(为什么不建议学单片机)

示例说明:一个简易保安系统,在规定次数(如5次)的范围内,若密码不正确将启动报警系统,并关闭安全通道。若规定的次数内密码...

2022-11-06 07:35:31查看全文 >>

常用寄存器通俗解释(寄存器的基础知识)

常用寄存器通俗解释(寄存器的基础知识)

与java相关的Java编译器输出的指令流,基本上是一种基于栈的指令集架构,而与之相对的另外一套常用的指令集架构是基于寄...

2022-11-06 07:03:54查看全文 >>

基本寄存器工作原理(寄存器电路图详解)

基本寄存器工作原理(寄存器电路图详解)

寄存器——具有能够接收、暂存和传递数码的一种逻辑记忆元件。一、数码寄存器 数码寄存器——最简单的寄存器,只具有接收数码...

2022-11-06 07:24:48查看全文 >>

4位右移寄存器工作原理(8位移位寄存器的接线图)

4位右移寄存器工作原理(8位移位寄存器的接线图)

钱浩宇,汪鹏君,丁代鲁,张跃军(宁波大学 电路与系统研究所,浙江 宁波315211)通过对传统移位寄存器原理和灵敏放大型...

2022-11-06 07:22:46查看全文 >>

文档排行