能力值:
(RANK:10 )
|
-
-
2 楼
上面的是实模式下面的是保护模式吗?
|
能力值:
( LV5,RANK:60 )
|
-
-
3 楼
.model flat 平坦模式
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
上面是16位程序,代码要分成DATA,CODE等64k段的内存模式
下面是win32程序,内存为平坦模式,没有64K的段大小限制,所有的WIN32的应用程序运行在一个连续、平坦、巨大的4GB的空间中。意味着无须和段寄存器打交道就可以寻址任意的地址空间。换句话来说,您可以当所有段描述符的基地址为0,界限为4G。
|
能力值:
(RANK:10 )
|
-
-
5 楼
那上面2段程序和保护模式有什么关系呢?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
由.model 决定了编译模式.
其化好像没什么好讲的,下面一个还有个.386 决定了代码运行的平台吧.
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
下面那段代码 只能在进入保护模式之后 才能运行
|
能力值:
(RANK:10 )
|
-
-
8 楼
能写程序就是不理解模式之间的区别。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
我是这么理解的:模式有关内存分配,应该是相对于CPU来说的,只是操作系统对他们的不同支持而已,dos 就是实模式,windows运行在cpu的保护模式之上,生成的可执行文件就是相对于操作系统来说的了。
|
能力值:
(RANK:10 )
|
-
-
10 楼
我想知道在实模式和保护模式下汇编编程的区别?
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
一起学习
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
1 内存分配区别,保护模式一般不用考虑分段,第二个是win32程序,因为它的内存分配4GB只有在保护模式下才有,实模式下肯定不能有flat
2 第一个程序应该也可以在其他操作系统中运行吧,只要不涉及被操作系统保护的层面(我没试过),因为dos汇编中很多都用的中断
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
学习楼上的~
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
向上上楼学习~~
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
实模式与保护模式的汇编最大区别就是内存操作
实模式下, 默认cpu字长16位,地址线20位(1M内存空间),用mov eax,[ebx] 这样的间接寻址, ebx超过0xffff, CPU就死翘翘了,只能访问64kB的段. 用两个寄存器采用SEG:OFFSET的方式访问整个1M内存空间。
保护模式下, 80386后的CPU字长32位,地址线32位(4G地址空间),段可以不用地址映射, 就可以不用管段寄存器, 32位寄存器寻址就可以直接访问4G范围的内存。
当然保护模式的保护机制也限制了很多操作,中断处理的变化,访问数据的检查,控制转移的检查,特权指令和I/O操作的保护等等,不会像实模式那样随心所欲。想详细了解的话最好阅读下保护模式的相关资料。
|
能力值:
( LV2,RANK:10 )
|
-
-
16 楼
15楼的说法不错!学习下!
|
|
|