美文网首页
(一) 寄存器

(一) 寄存器

作者: SwiftAlan | 来源:发表于2017-07-08 11:35 被阅读0次

 一个典型的 CPU 由运算器、控制器、寄存器等器件组成,不同 CPU 寄存器的个数和结构都是不相同的,8086 CPU14 个寄存器,这些寄存器分别是:AX BX CX DX SI DI SP BP IP CS SS DS ES PSW

1、通用寄存器

8086 CPU 所有寄存器都是 16 位的,可以存放两个字节。AX BX CX DX 这四个寄存器通常用来存放一般性数据,称为通用寄存器。
8086 CPU 的上一代 CPU 中的寄存器是 8 位的,为保证兼容,使原来基于上一代 CPU 编写的程序稍加修改就可以运行在 8086 上,8086 CPUAX BX CX DX 这四个寄存器都可分为两个独立使用的 8 位寄存器来用:

AX

可分为

AH

AL

BX

可分为

BH

BL

CX

可分为

CH

CL

DX

可分为

DH

DL

2、8086 CPU 物理地址

8086 CPU 有20位地址总线,可以传送20位地址,达到 1 M 寻址能力,8086 CPU 又是 16 位结构,在内部一次性处理、传输、暂时存储的地址为 16 位。所以 8086 CPU 采用一种在内部用两个 16 位地址合成的方法来形成一个 20 位的物理地址

1. CPU 的相关部件提供两个 16 位的地址,一个称为段地址,另一个称为偏移地址;
2. 段地址和偏移地址被送入到一个称为地址加法器的部件合成一个 20 位的物理地址;
3. 地址加法器通过内部总线将 20 位物理地址送入输入输出控制电路;
4. 然后通过地址总线传送到存储器;

物理加法器采用 物理地址 = 段地址 * 16 + 偏移地址 的方法用段地址和偏移地址合成物理地址。
例:段地址 = 1230,偏移地址 = A5
123A5 = 1230 * 16 + A5 所以计算得出物理地址为 123A5

3、段寄存器

8086 CPU 有四个段寄存器:CS DS SS ES

CS :代码段
DS :数据段
SS :堆栈段
ES :拓展段

CSIP8086 CPU 中两个最关键的寄存器,他们指示了 CPU 当前要读取指令的地址,CS 为代码段寄存器,IP 为指令指针寄存器。在 8086 PC 机中,任意时刻,CPUCS:IP 指向的内容当做指令执行。
8086 CPU 工作过程简单简述如下

1. 从 CS:IP 指向的内存单元读取指令,读取的指令进入指令缓冲器;
2. IP = IP + 所读指令长度,从而指向下一条指令;
3. 执行指令,转到步骤 1 ,一直重复直到退出为止。

8086 CPU 加电启动或复位后 CSIP 被设置为 CS = FFFFHIP = 0000H,即 8086 PC 机启动时执行的第一条指令是 FFFF0。如果内存中的一段信息曾被 CPU 执行过,那么它所在的内存单元必定被 CS:IP 指向过。
CPU 从何处执行指令是由 CS:IP 决定的,所以我们可以通过修改 CS:IP 中的内容来控制 CPU 目标指令。
传送指令 MOV 大部分寄存器的值,但是不能用于设置 CS:IP 的值,因为8086 CPU 没有提供这样的功能,能够改变 CS:IP 的指令被统称为转移指令,如 JMP 指令。

例:
同时修改 CS 和 IP 的值,指令格式:JMP 短地址:偏移地址
jmp 2B5A:6,执行后 CS = 2B5AH,IP = 0006H,CPU 将从 2B5A6H 处读取指令。
只修改 IP 的值 指令格式:jmp 某一合法寄存器
JMP AX,执行前:AX = 1000H,CS = 2000H,IP = 0002H
执行后:AX = 1000H,CS = 2000H,IP = 1000H

相关文章

  • 寄存器

     一、标志寄存器PSW 标志寄存器PSW(程序状态字寄存器PSW)标志寄存器PSW是一个16为的寄存器。它反...

  • AT&T汇编语言(寄存器分类)

    IA-32平台下的主要寄存器有一下几类: 通用寄存器 段寄存器 指令寄存器 通用寄存器是8个32为寄存器,用于存储...

  • [031][汇编语言]寻址 ax bx cx dx sp bp

    reg寄存器 与 sreg段寄存器 reg 寄存器 sreg 段寄存器 可用做寻址[...] bp寄存器 默认使用...

  • ARM汇编

    一. ARM 寄存器 ARM共有37个32位寄存器,其中31个为通用寄存器,6个为状态寄存器.这些寄存器不能被同时...

  • 逆向笔记(二)-状态寄存器

    状态寄存器CPSR 在CPU内部的寄存器中有一种特殊的寄存器,这种寄存器在ARM中被称为状态寄存器,即CPSR寄存...

  • stm32 TIM(通用定时器)

    寄存器描述CR1控制寄存器1CR2控制寄存器2SMCR从模式控制寄存器DIERDMA/中断使能寄存器SR状态寄存器...

  • 初识汇编(四)

    状态寄存器 CPU内部的寄存器中, 有一种特殊的寄存器(不同的处理器, 结构和寄存器个数都可能不同). 这种寄存器...

  • Swift 汇编常见指令

    mov: 将某一寄存器的值复制到另一寄存器(只能用于寄存器与寄存器或者寄存器与常量之间传值,不能用于内存地址)...

  • 硬件基础--i386标志寄存器

    i386寄存器主要包括 一个16位标志寄存器 4个内存管理寄存器 4个控制寄存器以及调试寄存器 下面先介绍标志寄存...

  • 汇编的几个指令

    常见寄存器 寄存器x86x86-64armarm64累加寄存器EAXRAX基址寄存器EBXRBX计数寄存器ECXR...

网友评论

      本文标题:(一) 寄存器

      本文链接:https://www.haomeiwen.com/subject/nhurhxtx.html