汇编-2.1-寄存器

本文详细介绍了8086 CPU的内部结构及其工作原理,包括运算器、控制器、寄存器的作用,以及如何通过内部总线实现器件间的连接。此外还深入探讨了8086 CPU如何通过段地址和偏移地址合成物理地址来访问内存。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.一个CPU由运算器、控制器、寄存器等器件组成,这些器件由内部总线相连。相对于CPU内部总线来说是外部总线。内部总线实现CPU内部各个器件的联系,外部总线实现CPU和主板上其他器件的联系。
(1).运算器进行信息处理;
(2).寄存器进行信息存储;
(3).控制器控制各种器件进行工作;
(4).内部总线链接各种器件,在它之间进行数据的传送。
2.通用寄存器
AX,BX,CX,DX这4个寄存器通常用来存放一般性的数据,被称为通用寄存器。
AX可分为AH和AL
BX可分为BH和BL
CX可分为CH和CL
DX可分为DH和DL
3.字在寄存器中的存储
字节:记为byte,一个字节由8bit组成,可以存在8位寄存器中。
字:记为word,一个字由两个字节组成,这两个字节分别称为这个字的的高字节和低字节。
4.汇编指令
在进行数据传送或者运算时,要注意指令的两个操作对象应当是一致的。
例如:
mov ax bl 错误:在8位寄存器和16位寄存器中传送数据,反之也不可以。
mov al , 20000 错误:8位寄存器最大可以存放的数据为255。
add al , 100H 将一个高于8位的数据加到8位寄存器中。
4.物理地址
CPU访问内存单元时,要给出内存单元的地址。所有的内存单元构成的存储空间是一个一维的线性空间,每个内存单元在这个空间都有唯一的地址,我们将这个一维的空间称为物理地址。
CPU通过地址总线送入存储器的,必需是一个内存单元的物理地址。在CPU向地址总线上发出物理地址之前,必须在内部形成这个物理地址。不同的CPU可以有不同形成物理地址的方式。
5.16位结构的CPU
对于16位结构的CPU内部,能够一次性处理、传输、暂时存储的信息的最大长度为16位的。内存单元的地址在送上地址总线之前,必须在CPU中处理、传输、暂时存放,对于16位CPU,能够一次性处理、传输、存放16 位的地址。
6.8086CPU给出物理地址的方法
8086采用一种内部两个16位地址合成的方法来形成一个20位物理地址。
这里写图片描述
当8086CPU要读取内存时:
(1).CPU中的相关部件提供两个16位的地址,一个称为段地址,另一个称为偏移地址;
(2).段地址和偏移地址通过内部总线送入一个称为地址加法器的部件;
(3).地址加法器将两个16位地址合成一个20位的物理地址;
(4).地址加法器通过内部总线将20位物理地址送入输入输出控制电路;
(5).输入输出控制电路将20位物理地址送上地址总线;
(6).20位物理地址被地址总线传送到存储器;
地址加法器采用物理地址=段地址*16+偏移地址的方法用段地址和便宜地址和成物理地址。例:8086CPU要访问123C8H内存单元:
这里写图片描述
“段地址*16”–>左移四位(2进制位)。
7.给出物理地址的含义
“物理地址=段地址*16+偏移地址”的含义:CPU在访问内存时,用一个基础地址(段地址*16)和一个相对于基础地址的偏移地址相加,给出存储单元的物理地址。
8.段地址
内存并没有分段,段的划分来自于CPU,由于8086CPU用“基础地址(段地址*16)+偏移地址=物理地址”的方式给出内存单元的物理地址,使得我们可以用分段的方式来管理内存。
9.段寄存器
段地址在8086CPU的段寄存器中存放。8086CPU有4个段寄存器:CS、DS、SS、ES。
10.CS和IP
CS和IP是8086CPU中最关键的寄存器,它们指示了CPU当前要读取的地址。CS为代码段寄存器,IP为指令指针寄存器,从名称上我们可以看出他们和指令的关系!
在PC机中,任意时刻,设CS中的内容为M,IP中的内容为N,8086CPU将从内存M*16+N单元开始,读取一条指令执行。(任意时刻,CPU将CS:IP指向的内容当作指令执行)
11.修改CS、IP的指令
CPU从何处执行指令是由CS、IP中的内容决定的,可以修改CS、IP的内容来控制CPU执行目标指令。
8086CPU提供了转移指令来改变CS、IP的内容。
jmp指令:
jmp 2AE3:3,执行后:CS=2AE3H,IP=0003H,CPU将从2AE33H出读取指令。
jmp 2AE3:3,执行后:CS=0003H,IP=0B16H,CPU将从00B46H出读取指令。
“jmp 段地址:偏移地址”指令的功能为:用指令中给出的段地址修改CS,偏移地址修改IP。
仅修改IP:
jmp ax, 指令执行前:ax=1000H,CS=2000H,IP=0003H
指令执行前:ax=1000H,CS=2000H,IP=1000H
“jmp 某一合法寄存器”指令的功能为:用寄存器中的值修改IP。
12.代码段
对于8086PC机,在编程时,可以根据需要,将一组内存单元定义为一个段。我们将长度为N(N<=64KB)的一组代码,存在一组地址连续、起始地址为16的倍数内存单元中,我们认为,这段内存是用来存放代码的,从而定义了一个代码段。
如:
mov ax , 0000 (B8 00 00)
add ax , 123H (05 23 01)
mov bx ,ax (B8 D8)
jmp bx (FF E3)
这段长度为10个字节的指令,存放在123B0H~123B9H的一组内存单元中,我们就可以认为123B0H~123B9H这段内存是用来存放代码的,是一个代码段,它的段地址为123BH,长度为10个字节。
要执行还要这段代码,还要将CS:IP指向所定义代码段中的第一条指令的首地址。要执行以上代码段,可设CS=123BH、IP=0000H。

内容概要:该论文探讨了一种基于粒子群优化(PSO)的STAR-RIS辅助NOMA无线通信网络优化方法。STAR-RIS作为一种新型可重构智能表面,能同时反射和传输信号,与传统仅能反射的RIS不同。结合NOMA技术,STAR-RIS可以提升覆盖范围、用户容量和频谱效率。针对STAR-RIS元素众多导致获取完整信道状态信息(CSI)开销大的问题,作者提出一种在不依赖完整CSI的情况下,联合优化功率分配、基站波束成形以及STAR-RIS的传输和反射波束成形向量的方法,以最大化总可实现速率并确保每个用户的最低速率要求。仿真结果显示,该方案优于STAR-RIS辅助的OMA系统。 适合人群:具备一定无线通信理论基础、对智能反射面技术和非正交多址接入技术感兴趣的科研人员和工程师。 使用场景及目标:①适用于希望深入了解STAR-RIS与NOMA结合的研究者;②为解决无线通信中频谱资源紧张、提高系统性能提供新的思路和技术手段;③帮助理解PSO算法在无线通信优化问题中的应用。 其他说明:文中提供了详细的Python代码实现,涵盖系统参数设置、信道建模、速率计算、目标函数定义、约束条件设定、主优化函数设计及结果可视化等环节,便于读者理解和复现实验结果。此外,文章还对比了PSO与其他优化算法(如DDPG)的区别,强调了PSO在不需要显式CSI估计方面的优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值