登录/注册

8086微处理器的编程结构

更多

8086 微处理器的编程结构(也称为软件模型寄存器架构)是指程序员(通常使用汇编语言)在编写代码时可以看见和使用的内部资源,主要就是其寄存器组以及相关的存储器组织模型。它反映了程序员需要理解的CPU内部组件,以便编写、调试代码。

8086 的编程结构核心是其寄存器集,它们分为以下几类:

  1. 通用寄存器 (General Purpose Registers - GPRs):主要用于算术、逻辑运算、数据搬运以及作为地址指针。这些寄存器可以按 16 位整体使用,也可以按高、低 8 位分开使用(除了 SP 和 BP)。

    • AX (Accumulator):累加器。常用于算术运算、I/O 操作、字符串操作。可分解为 AH(高 8 位)和 AL(低 8 位)。
    • BX (Base):基址寄存器。常用于存储器寻址(作为基址指针)。可分解为 BHBL
    • CX (Count):计数寄存器。常用于循环控制、字符串操作计数。可分解为 CHCL
    • DX (Data):数据寄存器。常用于 I/O 端口寻址、某些乘除运算中存放高位结果。可分解为 DHDL
    • 注意:SP(栈指针)和 BP(基址指针)虽然也常被归类为 GPRs,但它们有更专门的用途,不能拆分成高/低 8 位使用。
  2. 指针和索引寄存器 (Pointer and Index Registers):主要用于存储器寻址。

    • SP (Stack Pointer):栈指针。指向当前栈顶的位置(栈是用于临时存储数据和地址的一块内存区域)。修改 SP 意味着在执行 PUSH/POP/CALL/RET 等指令时自动移动栈顶。其内容在指令执行过程中被硬件自动修改。
    • BP (Base Pointer):基址指针。通常用于访问栈帧(函数调用时在栈上分配的数据区)内的局部变量或参数。相对于栈段(SS)进行寻址。
    • SI (Source Index):源变址寄存器。在字符串/数组操作中,常指向源操作数的位置(配合 DS 段寄存器)。
    • DI (Destination Index):目的变址寄存器。在字符串/数组操作中,常指向目的操作数的位置(配合 ES 段寄存器)。
  3. 段寄存器 (Segment Registers):定义了 8086 存储器模型中使用的段基地址。与指针/索引寄存器组合形成 20 位物理地址。都是 16 位。

    • CS (Code Segment):代码段寄存器。存储当前执行指令所在段的基地址。与 IP(指令指针)组合指向下一条要执行的指令。
    • DS (Data Segment):数据段寄存器。存储程序中默认数据变量所在段的基地址。访问数据时通常隐含使用 DS(除非使用段超越前缀指定)。
    • SS (Stack Segment):堆栈段寄存器。存储栈所在段的基地址。与 SP/BP 组合访问栈内数据。
    • ES (Extra Segment):附加段寄存器。通常用于指定辅助的数据段(例如字符串操作的目的地址)。
  4. 指令指针寄存器 (Instruction Pointer - IP)

    • 一个 16 位的寄存器,只对程序员间接可见(不能直接用 MOV 等指令修改,但可以通过 JMP, CALL, RET 等控制转移指令隐式修改)。
    • 存储下一条要执行的指令在CS段内的偏移地址(Offset)。它与CS组合形成CS:IP,共同决定了要执行指令在内存中的物理地址(= CS左移4位 + IP)。
  5. 标志寄存器 (Flags Register - FLAGS)

    • 一个 16 位的寄存器,存储 CPU 执行上条指令后的状态和控制信息。这些状态信息会影响后续的条件跳转指令等。重要的标志位有:
      • CF (Carry Flag):进位标志。无符号数运算产生进位(加)或借位(减)时置 1。
      • PF (Parity Flag):奇偶标志。结果低 8 位中 1 的个数为偶数时置 1。
      • AF (Auxiliary Carry Flag):辅助进位标志。用于 BCD 码运算(低 4 位产生进位或借位时置 1)。
      • ZF (Zero Flag):零标志。运算结果为 0 时置 1。
      • SF (Sign Flag):符号标志。结果为负数(最高位 MSB=1)时置 1。
      • OF (Overflow Flag):溢出标志。有符号数运算结果超出表示范围时置 1。
      • TF (Trap Flag):陷阱标志。调试单步执行时使用(置 1 时每执行一条指令后暂停)。
      • IF (Interrupt Enable Flag):中断允许标志。置 1 允许响应可屏蔽中断(INTR)。
      • DF (Direction Flag):方向标志。控制字符串指令的移动方向(0=递增,1=递减)。

关键概念 - 存储器分段 (Memory Segmentation): 8086 采用分段管理内存是编程结构中最核心的概念之一。它将 1MB 物理地址空间(20 位地址)划分为多个重叠的“段”(Segment)。

总结: 8086 微处理器的编程结构主要包含:

理解这些寄存器的作用及其相互关系,是进行 8086 汇编语言编程的基础。建议结合教材或资料中的寄存器结构图来加深理解。

嵌入式微处理器体系结构 嵌入式微处理器原理与应用

嵌入式微处理器是一种集成于嵌入式系统中的微处理器,其体系结构和应用具有独特特点。本文将详细介绍嵌入式

2024-05-04 16:53:00

主流嵌入式微处理器结构与原理是什么 常见的嵌入式微处理器类型包括

主流嵌入式微处理器的结构与原理 嵌入式微处理器是一种专门设计用于嵌入式系统的微处理器

2024-04-21 09:32:16

微处理器的外部结构是怎样构成的

结构1微处理器的外部结构总线的功能微处理器的内部

2022-02-14 07:40:41

微机原理02--8086结构

结构1微处理器的外部结构总线的功能微处理器的内部

资料下载 佚名 2021-12-09 13:36:13

微处理器体系结构

《微处理器体系结构》适合作为高等院校集成电路设计相关专业工程硕士的教材,并可以作为微处理器硬件与软件设计相关专业高年级本科生和研究生的教材。

资料下载 ah此生不换 2021-04-14 10:29:03

微处理器体系结构

微处理器体系结构说明。

资料下载 姚小熊27 2021-04-12 11:42:14

ARM嵌入式微处理器体系结构

嵌入式微处理器是嵌入式系统的核心。目前32位嵌入式微处理器是市场的主流。

资料下载 姚小熊27 2021-04-09 09:28:00

使用PROTUES仿真8086微处理器芯片的资料合集

本文档的主要内容详细介绍的是使用PROTUES仿真8086微处理器芯片的资料合集。

资料下载 原罪心中人 2020-04-29 08:00:00

16位和32位微处理器的相关资料推荐

第2章 16位和32位微处理器微处理器的性能指标最主要的是以下两项:1.字长2.主频一、16位微处理器80868086是Intel系列的16位

2022-01-25 06:19:32

探讨一下嵌入式微处理器体系结构

嵌入式微处理器体系结构17As discussed earlier, the 8086 microprocessor consists of t

2021-12-17 06:26:45

介绍嵌入式微处理器体系结构冯诺依曼结构

嵌入式微处理器体系结构冯诺依曼结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储

2021-12-17 06:04:03

ARM微处理器编程基础和接口实验

慕课电子科技大学.嵌入式系统.第三章.ARM微处理器编程基础和接口实验.ARM微处理器

2021-12-14 09:04:05

ARM微处理器编程基础和接口实验

慕课电子科技大学.嵌入式系统.第三章.ARM微处理器编程基础和接口实验.ARM设备接口实验0 目录3 ARM微处理器

2021-12-14 08:46:10

嵌入式微处理器体系结构

目录一、嵌入式微处理器体系结构1、冯诺依曼体系结构2、哈弗体系结构二、嵌

2021-11-08 06:57:02

为什么说8086是16位处理器

为什么说8086是16位处理器?什么是编程结构?由哪两部分组成,功能是啥

2021-08-06 06:48:06
7天热门专题 换一换
相关标签