叮当 发表于 2016-2-9 14:53

Asm入门之一 CPU 寄存器

本帖最后由 叮当 于 2016-2-9 21:14 编辑

8086CPU 14个寄存器 :

寄存器名称:AX BX CX DX SI DI SP BP IP CS SS DS ES PSW

---------------

数据寄存器:

AX:可以分为 AH 和 AL

BX:可以分为 BH 和 BL用于在[]中指明偏移地址 默认段地址存放在DS中

CX:可以分为 CH 和 CL用于loop指令循环检测

DX:可以分为 DH 和 DL

---------------

特殊寄存器:

BP:用于在[]中指明偏移地址 与BX寄存器类似 但默认段地址存放在SS中

SI:变址和指针寄存器 用于在[]中指明偏移地址 但不能分成两个8位寄存器来使用

DI:变址和指针寄存器 用于在[]中指明偏移地址 但不能分成两个8位寄存器来使用

IP:指令指针寄存器 在任意时刻 CS:IP指向的内容都当作指令执行 读取一条指令后 IP中的值自动增加 以使CPU可读取下一条指令

SP:栈顶指针寄存器 在任意时刻 SS:SP指向栈顶元素

---------------

段寄存器:

CS:代码指令段寄存器 在任意时刻 CS:IP指向的内容都当作指令执行

DS:内存数据段寄存器 向内存读写数据时 DS寄存器内存储的是默认段地址

SS:栈段寄存器 在任意时刻 SS:SP指向栈顶元素

ES:临时段寄存器 可以当作临时备用

---------------

标志寄存器:

PSW:具体查看标志寄存器文档介绍

---------------


1:8086CPU一共有14个寄存器 每个寄存器都是16位 可以存放两个字节

2:AX BX CX DX 存放一般性数据 被称为 通用寄存器

3:为保证向前兼容(8位寄存器的CPU) 有部分寄存器可以分为两个独立使用的8位寄存器来用 分为低8位L 和 高8位H

4:8086CPU可以一次处理两种尺寸数据 Byte 和 word

5:CS IP中的内容当作指令 如果某条指令被执行过 那么它所在的内存单元必然被CS:IP指向过

6:每次CPU开始工作 CS=FFFFH IP=0000H因此FFFF0H是8086PC开机后执行的第一条指令

7:CS IP读取指令流程:

:从CS:IP指向的内存单元读取指令进入指令缓存器

:(IP)=(IP)+所读指令长度 指向下一条指令

:执行指令 转到 重复该过程

---------------

16位结构 或者说 16位机 描述了一个CPU具有以下几方面的结构特性:

1:寄存器最大宽度16位2:运算器一次最多处理16位数据3:寄存器和运算器之间通路为16位

8086是16位结构的CPU 因此在8086内部一次性处理 传输 存储的信息最大长度是16位的

---------------

8086CPU 寻址方式:

8086CPU内部有20根地址总线 寄存器是16位 无法正常使用寄存器内部的数值做20位的寻址

根据1位16进制值=4位2进制值的特性 8086的寻址方法为:

物理地址 = 段地址 * 16 + 偏移地址

例如 段地址=1230H 偏移地址=00C8H 因此运算结果为

1230H * 16 + 00C8H = 12300H + 00C8H = 123C8H

编程中可以根据需要 将地址连续 起始位置为16的倍数(因为段地址要*16)的任何一组内存单元定义为一个段


说明:

1:段地址确定了一个段的起始位置 而偏移地址为16位 16位的寻址能力为64KB个内存单元 所以一个段的最大长度为64KB

2:CPU可用不同的段地址和偏移地址组成同一物理地址

例如:段地址2000H 偏移地址1F60H与段地址2100H 偏移地址0F60H代表的地址是相同的


---------------

8086CPU 寻址工作流程:

1:提供两个16位地址 即段地址和偏移地址

2:通过内部总线送入一个称为地址加法器的部件

3:地址加法器通过运算将两个16位地址合成为一个20位的物理地址

4:地址加法器通过内部总线将20位物理地址送入输入输出控制电路

5:输入输出控制电路将20位物理地址送入地址总线:

6:20位物理地址被地址总线传送到存储器

叮当 发表于 2016-2-9 14:53

持续更新ASM系列

Tyrone 发表于 2016-2-9 15:02

这是干嘛的{:5_188:}

LYQingYe 发表于 2016-2-9 16:59

{:5_118:}膜拜会汇编的

秦国大良造 发表于 2016-2-9 17:12

和arm有啥区别?

pooh 发表于 2019-4-29 18:10

Asm 台服蠻常用到的 學習

2323816 发表于 2022-1-15 15:12

持续更新ASM系列

后学真 发表于 2022-10-8 16:01

好啊,学习学习,感谢老师分享
页: [1]
查看完整版本: Asm入门之一 CPU 寄存器