您的位置:首页 > 新闻 > 资讯 > 河南省住建局官网_电子商务平台的自然人经营者_ip软件点击百度竞价推广_一键生成个人网站

河南省住建局官网_电子商务平台的自然人经营者_ip软件点击百度竞价推广_一键生成个人网站

2025/5/31 20:51:20 来源:https://blog.csdn.net/m0_74824007/article/details/143221454  浏览:    关键词:河南省住建局官网_电子商务平台的自然人经营者_ip软件点击百度竞价推广_一键生成个人网站
河南省住建局官网_电子商务平台的自然人经营者_ip软件点击百度竞价推广_一键生成个人网站

目录

一、工作原理

1、总线接口部件(BIU)和执行部件(EU)的协同工作

2、地址转换与寻址

3、指令执行流程

二、特点

1、16 位数据总线和 20 位地址总线

2、并行的指令流水线

3、丰富的寄存器组

4、支持多处理器系统

5、兼容性好

三、寻址方式

1、立即寻址

2、寄存器寻址

3、直接寻址

4、寄存器间接寻址

5、寄存器相对寻址

6、基址变址寻址

7、相对基址变址寻址


一、工作原理

1、总线接口部件(BIU)和执行部件(EU)的协同工作

8086 从功能上分为总线接口部件(BIU)和执行部件(EU)两部分。BIU 负责与存储器、I/O 端口传送数据,包括取指令、读 / 写操作数等操作。EU 负责指令的执行,如对操作数进行算术运算和逻辑运算等。这两个部件可以独立工作,在大多数情况下,取指令操作与执行指令操作可以重叠进行,提高了 CPU 的执行效率。

2、地址转换与寻址

8086 微处理器的地址引脚有 20 根,可直接寻址 1MB 的存储空间,但 CPU 内部用来提供地址信息的寄存器都是 16 位的。因此采用了段结构的内存管理方法,将内存分为代码段、数据段、堆栈段和附加数据段等,通过段寄存器(CS、DS、SS、ES)和指令指针寄存器(IP)等协同工作来实现 20 位物理地址的寻址。物理地址 = 段地址 ×10H + 段内偏移地址。

3、指令执行流程

CPU 总是有规律地重复取指令、指令译码、读取操作数(如果指令需要)、执行指令、写入结果(如果需要)等步骤。8086 通过其内部的结构和机制高效地完成这些步骤,以实现程序的运行

二、特点

1、16 位数据总线和 20 位地址总线

具有 16 位的数据总线,意味着一次可以传输 16 位的数据,这在当时是比较先进的数据处理能力;同时拥有 20 位的地址总线,能够直接寻址 1MB 的内存空间,为程序和数据的存储提供了较大的空间。

2、并行的指令流水线

将指令的执行过程分为取指令和执行指令两个独立的部分,由 BIU 和 EU 分别负责,二者并行工作,减少了 CPU 为取指令而等待的时间,大大提高了程序的运行速度

3、丰富的寄存器组

(1)通用寄存器:包括 AX、BX、CX、DX 等,既可以作 16 位寄存器使用,也可以分成高、低 8 位分别作两个 8 位寄存器使用,为数据的处理和存储提供了灵活的方式。例如,AX 也称累加寄存器,在很多指令中被频繁使用。

(2)段寄存器:有 CS(代码段寄存器)、DS(数据段寄存器)、SS(堆栈段寄存器)、ES(附加数据段寄存器),用于管理不同类型的数据段和代码段的地址信息,方便程序对不同类型的数据进行访问和操作。

(3)指针和变址寄存器:如 BP(基数指针寄存器)、SP(堆栈指针寄存器)、SI(源变址寄存器)、DI(目的变址寄存器),在数据的寻址和操作中起到重要作用,特别是在字符串操作、数组操作等场景中。

(4)控制寄存器:IP(指令指针寄存器)用于存放下一条要读取的指令在代码段中的偏移地址,在程序的执行过程中会自动加 1 修正;FLAGS(标志寄存器)用来存放 CPU 运算结果的状态特征和控制标志,如进位标志 CF、溢出标志 OF 等,为程序的判断和控制提供了依据。

4、支持多处理器系统

可以与其他处理器协同工作,构成多处理器系统,提高系统的处理能力和性能。

5、兼容性好

作为 x86 架构的早期产品,为后续的微处理器发展奠定了基础,具有良好的兼容性和扩展性,使得基于 8086 开发的软件和系统能够在后续的处理器上运行或进行升级。

三、寻址方式

1、立即寻址

操作数直接包含在指令中,紧跟在操作码之后,作为指令的一部分,存放在代码段中。立即数可以是 8 位或 16 位的。

例如:MOV AX, 1234H ;将立即数 1234H 送入 AX 寄存器。

2、寄存器寻址

操作数在寄存器中,指令中指定寄存器名。

例如:MOV AX, BX ;将 BX 寄存器中的内容送入 AX 寄存器。

寄存器可以是 8 位的(AH、AL、BH、BL 等)或 16 位的(AX、BX、CX、DX 等)。

3、直接寻址

指令中直接给出操作数的有效地址 EA(Effective Address),操作数在数据段中,段地址默认在 DS 寄存器中。

例如:MOV AX, [2000H] ;将数据段中偏移地址为 2000H 的内存单元的内容送入 AX 寄存器。

如果要访问其他段,可以在指令中用段超越前缀指定段寄存器。

例如:MOV AX, ES:[2000H] ;将附加段中偏移地址为 2000H 的内存单元的内容送入 AX 寄存器。

4、寄存器间接寻址

操作数的有效地址存放在基址寄存器(BX、BP)或变址寄存器(SI、DI)中。如果使用 BX、SI、DI 作为间址寄存器,段地址默认在 DS 中;如果使用 BP 作为间址寄存器,段地址默认在 SS 中。

例如:MOV AX, [BX] ;将数据段中以 BX 内容为偏移地址的内存单元的内容送入 AX 寄存器。

MOV AX, [BP] ;将堆栈段中以 BP 内容为偏移地址的内存单元的内容送入 AX 寄存器。

5、寄存器相对寻址

操作数的有效地址是基址寄存器或变址寄存器的内容加上一个 8 位或 16 位的位移量。如果使用 BX、SI、DI 作为基址寄存器,段地址默认在 DS 中;如果使用 BP 作为基址寄存器,段地址默认在 SS 中。

例如:MOV AX, [BX+1000H] ;将数据段中以 BX 的内容加上 1000H 为偏移地址的内存单元的内容送入 AX 寄存器。

6、基址变址寻址

操作数的有效地址是基址寄存器(BX 或 BP)与变址寄存器(SI 或 DI)的内容之和。如果使用 BX 作为基址寄存器,段地址默认在 DS 中;如果使用 BP 作为基址寄存器,段地址默认在 SS 中。

例如:MOV AX, [BX+SI] ;将数据段中以 BX 和 SI 内容之和为偏移地址的内存单元的内容送入 AX 寄存器。

7、相对基址变址寻址

操作数的有效地址是基址寄存器(BX 或 BP)与变址寄存器(SI 或 DI)的内容之和再加上一个 8 位或 16 位的位移量。如果使用 BX 作为基址寄存器,段地址默认在 DS 中;如果使用 BP 作为基址寄存器,段地址默认在 SS 中。

例如:MOV AX, [BX+SI+1000H] ;将数据段中以 BX 和 SI 内容之和再加上 1000H 为偏移地址的内存单元的内容送入 AX 寄存器。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com