首页
社区
课程
招聘
求助 关于386cpu模式切换的问题
发表于: 2010-10-1 20:53 4550

求助 关于386cpu模式切换的问题

2010-10-1 20:53
4550
在windows下用cmd运行dos程序时,cpu是工作在虚拟8086模式下吗?如果是的话,windows是多任务系统,如果欲行多个windows程序和dos程序,cpu轮流执行各个程序的指令,那不就是要不停地在保护模式和虚拟8086模式下切换,是这样吗?

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 38
活跃值: (48)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
cmd运行dos程序时 不是实模式 cmd 是个虚拟8086模式,实质还是保护模式
开机时有一段是 实模式,加载windows后就自动切换到保护模式了
2010-10-1 21:04
0
雪    币: 172
活跃值: (573)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
我知道cmd运行dos程序时是在虚拟8086模式,只是不明白windows程序运行在保护模式下,dos程序运行在8086模式,可是它们都运行在windows系统里啊,怎么会有两个模式?虚拟86模式实质上就是保护模式?那么这三种模式啥区别?
2010-10-1 21:12
0
雪    币: 38
活跃值: (48)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
80386有三种工作模式,实模式,保护模式和虚拟86模式
实模式和虚拟86模式是为了和8086处理器兼容而设置的
80386处理器被复位或加电的时候以实模式启动。这时的80386的寻址模式和8086一样,
由段寄存器乘以16加上偏移地址形成物理地址。这时它的32位地址线只用了低16位。
保护模式就是我们的windows操作系统的运行模式。就是我们通常的可寻址4GB。

虚拟86模式是为了能在保护模式下执行8086模式而设置的。

CMD就是用于运行虚拟8086模式的。

windows系统中有专门管理虚拟8086的管理程序,叫做86管理程序
这么说吧,虚拟就是虚拟不是真的,其实一切还完全在 windows 的掌控之中,
windows 有时会横插一腿,比如当你运行一些有害系统的特权指令时

我的理解:windows工作在保护模式下,虚拟了一个可以运行MS—DOS程序的平台,
它还是管着后者的
2010-10-1 21:23
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
虚拟86模式只是保护模式下的一个特例而已,实质是保护模式.
2010-10-2 10:06
0
雪    币: 172
活跃值: (573)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
类似于虚拟机?
2010-10-2 10:12
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
不是虚拟机,只是把段属性,粒度等设置为适合v86的模式而已,实质是保护模式的一个任务,v86任务。
2010-10-3 09:52
0
雪    币: 88
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
在intel cpu体系架构中,实模式的特点是:最大可以访问1MB的物理内存,物理地址由段寄存器+段偏移构成。而在实模式中,每个进程都有单独的虚拟地址空间,大小为4G。此时的虚拟8086模式应该是在一个进程地址空间中对实模式进行模拟,也就是说在CMD进程中有实模式的特点。
我的理解,错误的地方请指正
2010-10-3 10:09
0
雪    币: 172
活跃值: (573)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
明白,多谢各位
2010-10-3 11:15
0
游客
登录 | 注册 方可回帖
返回
//