能力值:
( LV2,RANK:10 )
|
-
-
2 楼
因为一个段的起始地址必须为16的整倍数
为什么段地址必须是16的整倍数
那在程序加载后,实际上开辟了16个内存单元空间
假设,因为段地址起始是16的整倍数所以 他就开辟了16个内存单元空间?
高手们指点下我
存放该组数据的物理地址为:10000:1000f,但是只有10000~10009这10内存单元中存在数据0~9,之后的1000a-1000f没有数据还是为0?
如果你不去改变他的里面的数据,他原本是多少就多少
排除有个其他程序在刷新这块内存的情况
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
书上说的,一个段地址的起始位置必须为16 的整倍数。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
回答只有一个是正确的
那就是:
保持原来的数据不变
|
能力值:
( LV3,RANK:20 )
|
-
-
5 楼
不能肯定正确与否。。。LS似乎理解错了
这个段地址 和程序中的段 应该不是同一个概念
段地址必须是16的倍数 是指内存的分段
内存地址分段的最小单位是16字节。
程序里的段
比如
data segment
db 0h,1h,2h,3h,4h,5h,6h,7h,8h,9h
然后又定义
data2 segment
db 0h,1h,2h,3h,4h,5h,6h,7h,8h,9h
这时
data的地址假如是
10000
那它的地址表示应该是
1000:0
data2的地址应该是
1000a
它的地址表示应该是
1000:a
LS似乎对段的概念搞模糊了吧。不能肯定正确与否。。。
|
能力值:
(RANK:300 )
|
-
-
6 楼
根据我的理解。这个是正解
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
根据"LS"这个缩写来理解,似乎理解错的不是我,可是根据你的分析,好像说的又是我。。。
是不是我理解错了啊?
说实话,学汇编时我也在学SDK,前一段时间基本学的SDK,忽略了汇编,现在打算一股脑的只学汇编,先把基础弄完在学习SDK和更深入的汇编知识。
|
能力值:
( LV3,RANK:20 )
|
-
-
8 楼
抱歉。。LZ大意敲成LS了。。
看来是我理解错了 Sorry
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
迷糊。。。。。。
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
[QUOTE=;]...[/QUOTE]
LZ所说的为16的N倍,那是对于16位操作系统讲的。因为要寻32位的逻辑地址,所以要加段前缀。
段前缀(16位):便移(16位)。这才有一定要是16的N倍的说法。
现的在32位操作系统已经没有这样的说法了,因为一个物理地址线也是32位了,所以一个就能寻到地址,不再需要段前缀(32位中的段已经叫“选择子”了,和16位的段已经不是一个意思了)。
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
无语啊。。。从我的表达方式来看,你难道看不出我要问的不是你所回答的东西.
|
能力值:
( LV2,RANK:10 )
|
-
-
12 楼
不懂了,你们说的是win32汇编,还是什么汇编
win32汇编那个选择子之类的东西还不太明白,好像可以到任何位置
另一个我也认为是保持不变
|
|
|