. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->寄存器(CPU工作原理)
主题 : :  在一段没有任何跳转指令的程序中,超出64K的部分将不会被执行???  [已解决] 回复[ 5次 ]   点击[ 590次 ]  
zwjq
[帖 主] [ 发表时间:2010-08-05 21:57 ] 
荣誉值:0
信誉值:6
注册日期:2010-07-31 15:39
我的感觉是段是人为分出来的,最长是因为偏移地址的限制,所以不能一个段是不能超过2的16次,即64KB,而一个段不应该是8Byte,而只能是64KB,但是64KB之后的指令要是不断执行的话,也会被执行,因为段是人为分出来的(偏移地址不能我们说了算,但段地址可以我们说了算,只要它是16的倍数)
大家觉得呢?
masmaster
[第3楼] [ 回复时间:2010-08-06 09:02 ] 
荣誉值:268
信誉值:12
注册日期:2010-06-18 22:19
不太明白您的意思。
程序的按顺序执行,遇到某些条件会发生转移或者像jmp这样的无条件转移。转移的范围是受控制的,即受cpu寻址能力限制,ip就是64KB,eip就是4GB。
如果程序里没有转移指令,那么程序会一直执行下去,直到遇到返回指令(ret)为止。也就是说,程序所占空间有可能超过64KB的话, 也会一直顺序执行。
我是这么认为的。
此问题已结贴!
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved