第一章 寄存器介绍

寄存器

包含在处理器内部的内存储单元,称为寄存器。

1、  优点:处理器可以通过寄存器来访问数据,从而可以不用通过访问内存。

2、  缺点:寄存器的数目是有限的。

IA-32系列中一般有如下寄存器:

寄存器

描述

通用

8个32位寄存器,用于存储正在处理的数据

6个16位寄存器,用于处理内存访问

指令指针

1个32位寄存器,指向要执行的下一条指令

浮点

8个80位寄存器,用于浮点计算

控制

5个32位寄存器,用于控制处理器操作模式

调试

8个32位寄存器,用于在调试处理时的信息

标志

1个32位寄存器,确定操作状态

 

通用寄存器

8个32位寄存器分别有以下用途

寄存器

描述

EAX

主要用于操作数据及结果的累加器

EBX

指向数据内存段中的数据的指针

ECX

字符串和循环操作的计数器

EDX

I/O指针

EDI

字符串操作目的地指针(destination)

ESI

字符串操作源指针(Source)

ESP

栈顶指针

EBP

栈底指针

段寄存器

6个16位段寄存器描述如下:

寄存器

描述

CS

代码段

DS

数据段

SS

堆栈段

ES

附加段指针

FS

附加段指针

GS

附加段指针

1、  寻址有三种:平坦内存模式,实地址模式,分段寻址模式。这三种的主要区别如下表:

寻址

描述

平坦内存模式

直接访问内存,段寄存器什么的,不用

实地址模式

16位寄存器,16位的段寄存器,要访问20位的内存。只好把段寄存器左移4位再加上偏移值。

分段

把内存分成好几个段,每个段的信息放在固定的某个数组中。而段寄存器值只是这个数组的一个索引。

关于这一点,书上并没有讲得很清楚。我还以为实地址与平坦模式是一样的。实际上不一样。

2、  DS,ES,FS,GS都是用于数据段寻址,这样就可以使用4个独立的数据段。从而程序可以隔离数据元素,让其有不同的属性。比如C语言里面的变量与常量。

控制寄存器

5个32位控制器描述如下:

寄存器

描述

CR0

控制操作模式,处理器状态

CR1

当前不用

CR2

内存页面错误信息

CR3

内存页面目录信息

CR4

支持处理器的特性和说明处理器的特性能力

1、  不能直接访问控制寄存器的值。需要通过通用寄存器来查询或更改其值。

标志寄存器

标志寄存器分为三种:

1、  状态标志

2、  控制标志

3、  系统标志

状态标志

标志

作用

CF

0

进位标志

PF

2

奇偶标志

AF

4

辅助进位标志

ZF

6

零标志

SF

7

符号标志

OF

11

溢出标志

1、  无符号操作数最高位发生进位或借位,CF置1,表明溢出

2、  PF为1表示偶数

3、  AF是只是进位或借位则置1

4、  SF是结果最高位,表示结果为正或负

5、  OF,当符号数运算正值过大,或负值过小,置1

控制标志

就一个DF,DF=1表示递减方式处理内存字符串。DF=0表示按递增方式处理字符串

系统标志

标志

说明

TF

8

陷阱标志, 设置为1时启用单步模式, 在单步模式下处理器每次只执行一条命令。

IF

9

中断使能标志, 控制处理器如响应从外部源接收到的信号。

IOPL

12,13

IO特权级别标志, 表明当前正在运行任务的IO特权级别, 它定义IO地址空间的特权访问级别, 该值必须小于或者等于访问I/O地址空间的级别; 否则任何访问IO空间的请求都会被拒绝!

NT

14

嵌套任务标志控制当前运行的任务是否连接到前一个任务, 它用于连接被中断和被调用的任务。

RF

16

恢复标志用于控制在调试模式中如何响应异常。

VM

17

虚拟8086模式, 表明处理器在虚拟8086模式中而不是保护模式或者实模式。

AC

18

对准检查标志, 用于启用内存引用的对准检查

VIF

19

虚拟中断标志, 当处理器在虚拟模式中操作时, 该标志起IF标志的作用。

VIP

20

虚拟中断挂起标志, 在虚拟模式操作时用于表示一个中断正在被挂起。

ID

21

表示CPU是否支持cpuid指令, 如果处理器能够设置或者清零这个标志, 表示处理器支持该指令。

 

上面图片中PF应该是奇偶位


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值