【汇编】中央处理器CPU & 寄存器

中央处理器

中央处理器 CPU 的组成

CPU 的任务是执行存放在存储器里的指令序列,CPU主要由三部分组成

  • 算术逻辑部件(运算器):对信息进行加工、运算的部件,它的速度决定了计算机的运算速度
  • 控制逻辑(控制器):控制计算机各部分按照程序指令的要求协调工作,自动地执行程序
  • 工作寄存器:每一个寄存器相当于运算器中的一个存储单元

80×86 寄存器组

【部分内容参考:汇编语言–寄存器(cpu工作原理)

寄存器是计算机中的一种重要的数据存储单元,用于暂时存储指令、数据和地址等信息。它们位于计算机的中央处理器(CPU)内部,是CPU直接访问的部分。寄存器具有非常快速的访问速度,通常比内存和硬盘等其他存储设备要快得多

8086 CPU 中寄存器总共为 14 个,且均为 16 位 ,这 14 个寄存器按照一定方式又分为了通用寄存器专用寄存器段寄存器

通用寄存器

通用寄存器有 8 个,分别是 AX,BX,CX,DX,SP,BP,SI,DI

AX,BX,CX,DX 称作为数据寄存器:

  • AX:累加寄存器;可以分为两个独立的 8 位的 AH 和 AL 寄存器;

    可以暂存一般的数据,作为累加器使用,是算术运算的主要寄存器,在乘、除等指令操作中指定用来存放操作数,所有 I/O 指令都使用这一寄存器与外部设备传送信息

  • BX:基地址寄存器;可以分为两个独立的 8 位的 BH 和 BL 寄存器;

    可以暂存一般的数据,但主要还是作为基址寻址器,可以用作指令中的内存访问的基址(存放数据或内存地址的偏移量,而段寄存器(如 DS 寄存器)存储了段的起始地址,当 CPU 执行内存访问指令时,会将段寄存器中的内容左移 4 位(相当于乘以 16),然后加上基址寄存器中的内容,以计算出实际的内存地址)

    *段寄存器提供了段的起始地址,而基址寄存器提供了地址的偏移量,两者结合起来计算出实际的内存地址

  • CX:计数器寄存器;可以分为两个独立的 8 位的 CH 和 CL 寄存器;

    可以暂存一般的数据,还常用于保存计数值,如在移位指令、循环(loop)和串处理指令中用作隐含的计数器

  • DX:数据寄存器;可以分为两个独立的 8 位的 DH 和 DL 寄存器;

注意“独立”二字,这两个字表明 H(高位) 和 L(低位) 寄存器作为 8 位寄存器使用时,可以看做它们是互不相关的,也就是看做两个完全没有联系的寄存器 X 和 Y 即可

除了上面 4 个数据寄存器以外,其他寄存器均不可以分为两个独立的 8 位寄存器

SP 和 BP 又称作为指针寄存器 :

  • SP (Stack Pointer):堆栈指针寄存器;
  • BP (Base Pointer):基指针寄存器;

SI 和 DI 又称作为变址寄存器:

  • SI (Source Index):源变址寄存器;
  • DI (Destination Index):目的变址寄存器;

专用寄存器

  • IP (Instruction Pointer):指令指针寄存器;

    用于存放代码段中的偏移地址,在程序运行的过程中始终指向下一条指令的首地址

    *注意:IP 寄存器和 BX 寄存器虽然都可以存放地址的偏移量,但它们的作用和使用场景不同。IP 寄存器主要用于指示下一条要执行的指令的位置,而 BX 寄存器通常用于计算数据或内存的地址偏移量

  • FLAGS:标志寄存器;

    用于存放条件码标志、控制标志和系统标志的寄存器

    • 条件码标志

      用来记录程序中运行结果的状态信息

      1. 溢出标志 (overflow flag,OF)

        在运算过程中,如操作数超出了机器能表示的范围称为溢出,此时OF位置1,否则置0

      2. 符号标志 (sign flag,SF)

        记录运算结果的符号,结果为负时置1,否则置0

      3. 零标志 (zero flag,ZF)

        运算结果为0时ZF位置1,否则置0

      4. 进位标志 (carry flag,CF)

        记录运算时从最高有效位产生的进位值。例如,执行加法指令时,最高有效位有进位时置1,否则置0

      5. 辅助进位标志 (auxiliary carry flag,AF)

        记录运算时第3位(半个字节)产生的进位例姆,执行加法指令第3位有进位时置1,否则置0

      6. 奇偶标志 (parity flag,PF)

        用来为机器中传送信息时可能产生的代码出错情况提供检验条件。当结果操作数中1的个数为偶数时置1,否则置0

    • 控制标志

      控制标志位为方向标志(direction flag,DF),在串处理指令中控制处理信息的方向用

    • 系统标志

      用于I/O、可屏蔽中断、程序调试、任务切换和系统工作方式等的控制

段寄存器

段寄存器也是一种专用寄存器,它们专用于存储器寻址,用来直接或间接地存放段地址

  • CS (Code Segment):代码段寄存器
  • DS (Data Segment):数据段寄存器
  • SS (Stack Segment):堆栈段寄存器
  • ES (Extra Segment):附加段寄存器
  • 17
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值