64位的可执行程序比32位的大吗?

ooolinux 2021-01-31 01:01:15
64位的Windows ghost安装包比32位的大不少,是不是64位的可执行程序包括DLL比32位的大,大在什么地方呢?
...全文
403 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 10 楼 ooolinux 的回复:
[quote=引用 8 楼 早打大打打核战争 的回复:]

没有变为两倍,64位指令的默认操作数尺寸仍然是32位的,地址尺寸默认是64位的,但是直接编码到指令中的地址仍然只能32位(0扩展到64位地址),所以超过4GB的地址需要先装入到寄存器,不能硬编码到指令中。这样64位指令的平均长度比32指令长一些,但不是很多,大约长百分之十几。

64位指令的操作码和32位的有什么区别?[/quote]

32位指令和大部分16位指令在64位模式下是可以原样使用的,编码也没有改变,因为64位模式下指令的默认操作数尺寸仍然是32位的,所以如果操作数尺寸变成64位就要附加前缀,比如xor eax, eax在32位和64位模式下的编码都是33 c0(也可以是31 c0,x86指令集编码方式的一个副作用),但是64位的xor rax, rax则是48 33 c0,所以64位指令的平均长度要比32位指令长一些
ooolinux 2021-02-02
  • 打赏
  • 举报
回复
引用 12 楼 早打大打打核战争 的回复:
32位指令和大部分16位指令在64位模式下是可以原样使用的,编码也没有改变,因为64位模式下指令的默认操作数尺寸仍然是32位的,所以如果操作数尺寸变成64位就要附加前缀,比如xor eax, eax在32位和64位模式下的编码都是33 c0(也可以是31 c0,x86指令集编码方式的一个副作用),但是64位的xor rax, rax则是48 33 c0,所以64位指令的平均长度要比32位指令长一些

大概了解了。
xian0-666 2021-02-01
  • 打赏
  • 举报
回复
理论上来说64位系统是32位的2倍,一般32位系统最大支持内存位4G。64位操作系统理论上可以运行32位和64位软件,而32位操作系统只能运行32位的软件,如果电脑操作系统位数不同,那么代码中基本数据类型所占的字节也不同。如:32位平台下long long是8个字节(64位),而64位平台下,long 是8个字节(64位)
  • 打赏
  • 举报
回复
主要是因为64位windows也带了32位系统,当然就更大了。虽然64位指令平均长度比32位指令长一些,但是并不明显。
maguangzhi 2021-02-01
  • 打赏
  • 举报
回复
指针和int的sizeof应该更大了,所以存贮空间变大了。
ooolinux 2021-02-01
  • 打赏
  • 举报
回复
引用 9 楼 真相重于对错 的回复:
问题不准确,我写的64位的hello world程序肯定比32位的photoshop小
可执行文件与它的运行平台应该是相关的,比如windows程序和linux,安卓的肯定不一样,另外可执行文件不仅仅包括代码,还有资源,数据,不能简单的论证大小。
如果只是讨论windows平台,可以看看32位和64位pe文件格式是否一致。

说的是相同功能,win64位和32位的可执行程序。
ooolinux 2021-02-01
  • 打赏
  • 举报
回复
引用 8 楼 早打大打打核战争 的回复:
没有变为两倍,64位指令的默认操作数尺寸仍然是32位的,地址尺寸默认是64位的,但是直接编码到指令中的地址仍然只能32位(0扩展到64位地址),所以超过4GB的地址需要先装入到寄存器,不能硬编码到指令中。这样64位指令的平均长度比32指令长一些,但不是很多,大约长百分之十几。

64位指令的操作码和32位的有什么区别?
真相重于对错 2021-02-01
  • 打赏
  • 举报
回复
问题不准确,我写的64位的hello world程序肯定比32位的photoshop小 可执行文件与它的运行平台应该是相关的,比如windows程序和linux,安卓的肯定不一样,另外可执行文件不仅仅包括代码,还有资源,数据,不能简单的论证大小。 如果只是讨论windows平台,可以看看32位和64位pe文件格式是否一致。
  • 打赏
  • 举报
回复
引用 5 楼 ooolinux 的回复:
[quote=引用 1 楼 qybao 的回复:]个人觉得可能是64位支持一部分的32位程序(64位兼容32位),所以64位源代码比32位源代码多吧。


引用 3 楼 早打大打打核战争 的回复:
主要是因为64位windows也带了32位系统,当然就更大了。虽然64位指令平均长度比32位指令长一些,但是并不明显。

一条指令是不是分为命令字和数据两部分,数据部分是不是宽度变为两倍?[/quote]

没有变为两倍,64位指令的默认操作数尺寸仍然是32位的,地址尺寸默认是64位的,但是直接编码到指令中的地址仍然只能32位(0扩展到64位地址),所以超过4GB的地址需要先装入到寄存器,不能硬编码到指令中。这样64位指令的平均长度比32指令长一些,但不是很多,大约长百分之十几。

ooolinux 2021-02-01
  • 打赏
  • 举报
回复
引用 4 楼 xian0-666 的回复:
理论上来说64位系统是32位的2倍,一般32位系统最大支持内存位4G。64位操作系统理论上可以运行32位和64位软件,而32位操作系统只能运行32位的软件,如果电脑操作系统位数不同,那么代码中基本数据类型所占的字节也不同。如:32位平台下long long是8个字节(64位),而64位平台下,long 是8个字节(64位)

位数两倍,其它不成倍数吧?
ooolinux 2021-02-01
  • 打赏
  • 举报
回复
引用 2 楼 maguangzhi 的回复:
指针和int的sizeof应该更大了,所以存贮空间变大了。

这个跟exe的大小是什么关系呢?
ooolinux 2021-02-01
  • 打赏
  • 举报
回复
引用 1 楼 qybao 的回复:
个人觉得可能是64位支持一部分的32位程序(64位兼容32位),所以64位源代码比32位源代码多吧。


引用 3 楼 早打大打打核战争 的回复:
主要是因为64位windows也带了32位系统,当然就更大了。虽然64位指令平均长度比32位指令长一些,但是并不明显。

一条指令是不是分为命令字和数据两部分,数据部分是不是宽度变为两倍?
qybao 2021-01-31
  • 打赏
  • 举报
回复
个人觉得可能是64位支持一部分的32位程序(64位兼容32位),所以64位源代码比32位源代码多吧。
《完整神武新章服务端源码》是一个与游戏开发相关的资源,主要使用Delphi编程语言编写的。 Delphi是一款强大的面向对象的集成开发环境(IDE),尤其在Windows平台上的应用开发方面享有很高的声誉。 本资源包含的服务端源码是网络游戏《神武新章》的核心部分,它负责处理游戏服务器的逻辑、网络通信、数据库交互以及玩家间的游戏行为同步等关键功能。 1. **Delphi编程基础**:Delphi采用Object Pascal语言,它是一种高效且简洁的面向对象语言。 源码中可能包含类定义、继承、多态性、接口等面向对象设计概念。 理解Delphi的基本语法和面向对象特性是分析和修改源码的基础。 2. **网络编程**:服务端源码中必然涉及网络通信模块,如TCP/IP协议栈的使用,用于建立客户端和服务端之间的连接。 源码地址: https://pan.quark.cn/s/4014bf1007ee 这部分可能涉及到套接字编程,包括监听、接受连接、发送和接收数据等操作。 3. **并发处理**:由于服务器需要同时处理多个客户端的请求,因此并发处理是服务端源码中的重要部分。 Delphi提供了线程和异步编程机制,如TThread类和IO完成端口等技术,用于实现高效的并发控制。 4. **数据库交互**:游戏服务端通常需要与数据库进行交互,存储和检索玩家信息、游戏数据等。 可能使用到ADO(ActiveX Data Objects)或DirectSQL等数据库访问组件,掌握SQL语言和数据库事务处理是必要的。 5. **游戏逻辑**:这部分源码包含了游戏规则的实现,比如角色移动、战斗计算、任务系统等。 这些逻辑可能分布在多个类和函数中,通过事件驱动或消息传递机制进行协调。 6. **加密与安全**:...
本资源文件提供了通过Matlab仿真生成匀速直线运动(CV)、匀加速直线运动(CA)和匀速转弯运动(CT)三种运动模型的轨迹。仿真过程中还加入了杂波,以模拟真实环境中的噪声干扰。用户可以根据需要自行调整相关参数,以满足不同的仿真需求。 功能特点 匀速直线运动(CV):模拟物体在匀速直线运动下的轨迹。 匀加速直线运动(CA):模拟物体在匀加速直线运动下的轨迹。 匀速转弯运动(CT):模拟物体在匀速转弯运动下的轨迹。 杂波模拟:在生成的轨迹中加入杂波,以模拟真实环境中的噪声干扰。 参数可调:用户可以根据需要调整仿真中的各项参数,如速度、加速度、转弯半径等。 使用方法 下载资源文件:将本仓库中的Matlab代码文件下载到本地。 打开Matlab:在Matlab环境中打开下载的代码文件。 调整参数:根据需要调整仿真中的各项参数,如运动速度、加速度、转弯半径等。 运行仿真:运行代码,Matlab将生成相应的运动轨迹,并显示在图形窗口中。 分析结果:观察生成的轨迹,分析运动模型的表现,并根据需要进行进一步的调整和优化。 注意事项 在调整参数时,请确保参数的合理性,以避免仿真结果出现异常。 杂波的强度可以根据实际需求进行调整,以模拟不同环境下的噪声干扰。

15,445

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧