注册 登录
编程论坛 汇编论坛

实模式下 call eax 调用失败

janevans 发布于 2011-07-13 01:37, 1118 次点击
程序环境:
1 两个一样的子程序,
2 在实模式下
3 不涉及到分页机制。
目标:
     用call eax,直接赋值eax物理地址以调用这两个一样程序。

描述:
一个放在物理地址  ProcAddr0:  0x00034561h
一个放在物理地址  ProcAddr1:  0x00401000h

程序简略:
mov eax, [ProcAddr1]  
call eax

mov eax,[ProcAddr0]
call eax
悲剧的是,第一个,也就是高地址(00401000h)的调用成功了,第二个(00034561h),调用失败...求指引,哪怕是一点线索。。。已经调试了很久也没有找到原因。。

3 回复
#2
zklhp2011-07-13 14:32
不明白啥意思

是不是

mov eax,00401000h
call eax

成功


mov eax,00034561h
call eax

失败?
#3
janevans2011-07-13 16:39
回复 2楼 zklhp
exactly..
#4
zklhp2011-07-13 22:02
1M = 100000h > 401000h

实模式 不是只能1M寻址么 你4XXXXXh怎么能到呢?

开A20? 不知道行不行、、 不开肯定不行
1