《汇编语言》第二章-寄存器

本文详细介绍了8086CPU的内部结构,包括运算器、寄存器、控制器和内部总线的作用。特别强调了寄存器在汇编程序中的重要性,详细列举了8086CPU的14个寄存器及其功能。此外,解释了16位结构CPU的特点,并阐述了8086CPU如何通过段地址和偏移地址合成20位物理地址,以及代码段的执行方式。最后,提到了段寄存器在内存访问中的角色,特别是CS和IP寄存器在指令执行中的功能。
摘要由CSDN通过智能技术生成

目录:https://blog.csdn.net/qq_43098197/article/details/124532401

CPU 内部包括:

  • 运算器:负责信息处理。
  • 寄存器:负责信息存储。
  • 控制器:协调控制各个器件的运作。
  • 内部总线:连接各个器件。

对于汇编程序,CPU 最主要的部件是寄存器。

8086 CPU 有 14 个寄存器,分别是 AX、BX、DX、SI、DI、SP、BP、IP、CS、SS、DS、ES、PSW。

通用寄存器

8086 CPU 所有寄存器都是 16 位的,可以存在两个字节。

通用寄存器: AX、BX、CX、DX

作用: 存储一般性的数据。

寄存器逻辑结构:

在这里插入图片描述

为了兼容某些 CPU 寄存器是 8 位的,8086 CPU 的 这四个寄存器都可以分为两个独立使用的 8 位寄存器:

在这里插入图片描述

物理地址

  • 每个单元都有一个唯一的地址,我们称为物理地址。
  • 不同的 CPU 可以有不同形成物理地址的方式。

16 位结构的 CPU

特性:

  • 运算器一次性最多可以处理 16 位的数据。
  • 寄存器的最大宽度为 16 位。
  • 寄存器和运算器之间的通路为 16 位。

8086 CPU 物理地址的计算方式

  • 它有 20 位地址总线,可以传输 20 位地址,达到 1MB 寻址能力。
  • 8086CPU 又是 16 位结构,因此内部一次性处理、传输、暂时存储的地址为 16 位。
  • 8086CPU 合成 20 位地址的方式:物理地址 = 段地址 × 16 + 偏移地址(0~FFFF)

注意:

  1. 段地址 × 16 必然是 16 的倍数,因此一个段的起始地址也一定是 16 的倍数。
  2. 偏移地址为 16 位,即寻址能力为 64KB,因此一个段的长度最大为 64KB。

段寄存器

8086CPU 在访问内存时,需要将段地址和偏移地址合成为 20 位的物理地址。

  • 提供段地址的寄存器:CS、DS、SS、ES

CS 与 IP

  • CS:代码段寄存器
  • IP:指令指针寄存器

作用: 在 8086PC 机中,任意时刻,CPU 将 CS:IP 指向的内容当作指令执行。

修改 CS、IP 指令

  • jmp 段地址:偏移地址:将 CS 修改为给出的段地址,IP 修改为给出的偏移地址。
  • jmp 合法寄存器:用寄存器中的值修改 IP。

代码段

若存在长度为 N ( N ≤ 64 K B ) N(N \le 64KB) N(N64KB) 一组地址连续、起始地址为 16 的倍数的内存单元,则可以认为这段内存是用来存放代码的。

如何执行代码段中的指令:将 CS:IP 指向这段连续内存单元的开头即可(第一条指令的首地址)。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值