. : : Assembly Language : : .
|
首页
|
我提出的问题
|
我参与的问题
|
我的收藏
|
消息中心
|
游客 登录
|
刷新
|
提问
|
未解决
|
已解决
|
精华区
|
搜索
|
《汇编语言》论坛
->
寄存器(CPU工作原理)
管理员:
assembly
[
回复本贴
]
[
收藏本贴
] [
管理本贴
] [
关闭窗口
]
主题 : :
在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行???
[已解决]
回复[
5
次 ] 点击[
589
次 ]
zwjq
[帖 主]
[ 发表时间:2010-08-05 21:57 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39
我的感觉是段是人为分出来的,最长是因为偏移地址的限制,所以不能一个段是不能超过2的16次,即64KB,而一个段不应该是8Byte,而只能是64KB,但是64KB之后的指令要是不断执行的话,也会被执行,因为段是人为分出来的(偏移地址不能我们说了算,但段地址可以我们说了算,只要它是16的倍数)
大家觉得呢?
masmaster
[第
1
楼]
[ 回复时间:2010-08-05 22:13 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
“段”空间本来就是认为划分的,偏移地址的范围大小取决于cpu的寻址能力。
zwjq
[第
2
楼]
[ 回复时间:2010-08-06 08:37 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39
回复:[第1楼]
------------------
那一楼能解释一下为什么64KB之后的指令如果没有跳转指令的时候就不予执行了呢?是因为IP的关系吗?
masmaster
[第
3
楼]
[ 回复时间:2010-08-06 09:02 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
不太明白您的意思。
程序的按顺序执行,遇到某些条件会发生转移或者像jmp这样的无条件转移。转移的范围是受控制的,即受cpu寻址能力限制,ip就是64KB,eip就是4GB。
如果程序里没有转移指令,那么程序会一直执行下去,直到遇到返回指令(ret)为止。也就是说,程序所占空间有可能超过64KB的话, 也会一直顺序执行。
我是这么认为的。
zwjq
[第
4
楼]
[ 回复时间:2010-08-06 09:32 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39
回复:[第3楼]
------------------
下列说法中正确的是:____
8086CPU采用“段地址*16+偏移地址=物理地址”的寻址模式,所以内存是由一个一个的段组成,每一个段有一个段地址。
物理地址为ffff0H的内存单元的偏移地址可能为ffffH。
一个段的大小可以是8Byte。
在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行。
那为什么会选最后一项呢?我也认为程序也会一直执行下去,但和这道检测题就矛盾啦!还望赐教
zwjq
[第
5
楼]
[ 回复时间:2010-08-11 08:12 ]
[
引用
]
[
回复
]
[
top
]
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39
此贴由 贴主 于 [ 2010-08-11 08:12 ] 结贴。 结贴原因:问题已解决
得分情况: 1楼(masmaster):4分 3楼(masmaster):2分
此问题已结贴!
Copyright © 2006-2024 ASMEDU.NET All Rights Reserved