CPU包含运算器、寄存器
一、数据寄存器:
AX用于算术、逻辑运算、外设传送信息
BX用于存放存储器地址
CX用于移位指令、循环和串处理指令中用作隐含的计数器
DX用于存放双字的高十六位
其中AX、CX、DX不能作为基址和变址储存器来存储寻址
二、变址寄存器
ESI、EDI、SI、DI称为变址寄存器,主要用于存放某个存储单元的偏移地址
SI是源变量、DI是目的变址寄存器
三、指针寄存器
EBP、ESP、BP、SP主要用于存储堆栈内储存单元的偏移量
SP为堆栈指针寄存器,用于存放当前堆栈段中栈顶的偏移地址
BP为基址针寄存器,用于存放堆栈段中某一存储单元的偏移地址
四、专用寄存器IP、SP、FLAGS
IP为指令指针,用于保存下一次将要从主存中取出指令的偏移地址
SP为堆栈指针寄存器,与堆栈段指针SS联用确定堆栈段中栈顶的地址SP用于存放栈顶的偏移地址
FLAGS
OF溢出标志
SF符号标志
ZF零标志
CF进位标志
AF辅助进位标志
PF奇偶标志
DF方向标志
TF陷阱标志
IF中断标志
应用举例:
ZF零标志:
若运算结果为0,则ZF为1
例如3AH+7CH=B6H≠0,则ZF=0
SF符号标志
运算结果最高位为1,则SF=1
例如3AH+7CH=B6H最高位D7为1,则SF=1
PF奇偶标志
算术运算结果最低字节中1的个数为0或者偶数,PF=1
例如3AH+7CH=B6H=10110110B,有5个1,则PF=0
OF溢出标志
算数结果有溢出,OF=1
例如3AH+7CH=B6H=10110110B产生溢出,则OF=1
AAH+7CH=26H,没有溢出,则OF=0
AF辅助进位标志
运算时D3低字节有进位或者借位,AF=1
例如3AH+7CCH=B6H=10110110B,D3有进位,AF=1
DF方向标志
控制地址的变化方向,DF=0,串操作的存储器地址自动增加
CLD指令复位方向标志:DF=0
STD指令复位方向标志:DF=1
IF中断允许标志
IF=1允许中断
IF=0不允许中断
CLI指令复位中断标志:IF=0
STI指令复位中断标志:IF=1
TF陷阱标志
TF=0处理器正常工作
TF=1处理器单步执行指令
单步执行指令:处理器在每条指令执行结束时,产生一个编号为1的内部中断
五、段寄存器
代码段寄存器CS
数据段寄存器DS
堆栈段寄存器SS
附加数据段寄存器ES
段寄存器用来确定该段寄存器在内存中的起始地址
一个字节的内容是该字节单元内存放的二进制信息;字节0004H包含的内容是:78H
一个字的内容是该字地址所指向的单元及其后继一个单元的内容组成;字0004H包含的内容是:5678H
一个双字的内容是该字地址所指向的单元及其后继三个单元的内容组成。双字0004H包含的内容是:12345678H
六、存储器寻址
物理地址PA=段地址×16d + 偏移量
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!