64位操作系统能否运行32位的程序
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
- zhhtc200
- 帖子: 91
- 注册时间: 2009-02-06 18:47
64位操作系统能否运行32位的程序
如题,貌似64位机子命令集长度比32位长一倍,应该是可以运行32位程序阿,如果可以怎么运行
It's a world without wall. Who needs Windows?
-
- 帖子: 15
- 注册时间: 2006-04-19 16:46
Re: 64位操作系统能否运行32位的程序
好像是可以,有个lib32什么的,至少wine可以运行32位的win程序。
- 懒蜗牛Gentoo
- 论坛版主
- 帖子: 7353
- 注册时间: 2007-03-02 17:36
- 系统: Linux Mint
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
- Kandu
- 帖子: 108
- 注册时间: 2008-12-24 12:02
- 联系:
Re: 64位操作系统能否运行32位的程序
可以,段都是有属性的(听说过段描述符吧),64位段中,除了一些默认用64位寄存器的(比如跳转肯定用rip的),其他指令和32位段没什么区别。比如32位段中mov eax,ebx是0d889H,在64位段中也是0d889H,要mov rax,rbx,前面就加48H前缀,表示是64位指令,32位段中使得操作数为16位要加66H前缀,64位段也一样,比如,mov ax,bx 在64位段和32位段中都是0d88966H
所以,不存在指令长度变成两倍的关系,反而,大多数指令和32位的几乎一模一样
你做过底层编程就明白了。
所以,不存在指令长度变成两倍的关系,反而,大多数指令和32位的几乎一模一样
你做过底层编程就明白了。