关于状态位的总结

1。寻址:
如果是寄存器名,指的是寄存器内部的值;如果是数字,则是数字,如果是[数字]则是指的起始地址=数字中的值(dword,word指定结束地址)

2。状态位:
1。cpu内部运算要用的,与内存无关:
CF(carriage flag):1要进位0无进位
PF(parity flag):1运算结果含‘1’的个数为偶;0为奇
AF(auxiliary carry flag):1字节运算中,低半字节向高半字节进位或借位0不
zf(zero flag):1结果为0;0结果不为0
of(overflow flag):1结果超出最大范围0未


2。控制标志位:
if(interrupt enable flag):1语句后可被中断0不可
df(direction flag):对于字符串:1操作时从高地址向低地址进行0反面
tf(trace flag):1每执行一条指令就产生单步中断

80486增加了几个控制标志位:

IOPL:(io previldge):是唯一占用两个bit的flag,取值范围是0-4:分别表示io活动范围
nt:(nested):1当前任务嵌套于另一任务0非
rf(reset flag):与调试器共同完成对断点的行为规定:1遇到断点继续执行,执行完毕变为0;0遇到断点指令停在断点处
vM(virtual mode):在保护模式下:1虚拟8086模式:CPU不断的在8086模式与80486保护模式切换0保护模式
AC:cr0中的am=1:1cpu将在访问存储器操作数时,对其址按字,双字或4字进行对准检查,如果没有对准,则产生异常17错误报告(对准是因为cpu对已经对准的数据在抓取上有效率的优势)


实模式与保护模式的异同:
1。保护模式有进程地址空间的概念,事实上在cpu内部一个区域存放了有物理页与进程页的一一对应的表(只放了部分,因为cpu内部没有足够的空间),实模式没有
2。同一进程中也规定了不能的权限(有4级),但是现状是只用了两级:操作系统级与用户级,如此操作系统代码可以利用这一特点充分地保护操作系统本身的代码


是不是保护模式也是通过cr0寄存器来指定的:
cr0:(current 0)
pe:(protect)1保护模式0实模式
mp(monitor)1表有协处理器0无
em(emulate)1有软件仿真协处理器0无
ts(transaction)1进程进行转换时(因为进程转换是一切列指针,所以在这段时间内有必要标上)0进程转换结束
ne(number exception)1.浮点指令发生故障,发生16异常0未
am(adjust)与flags中的ac或ac&am:1进行对准0不
nw()1禁点cache通写0不禁止,此时所有命中cache的操作不仅要写cache还要写内存
cd(cache)1高速缓存未命中则不允许写cache0反面
pg(page)1允许分页0不

邮箱:dxfuni1@gmail.com

QQ群:5368572

(专注于算法,底层技术,网络搜索,数据库原理,操作系统)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值