社区
其它技术问题
帖子详情
Linux和windows下程序产生的机器码是相同的吗??
wuzhiwenk3001
2012-04-24 11:36:59
一直有个疑惑:windows下的pe文件和linux下的elf格式,他们的代码区里面的机器码都是一样的吗(除了一些地址什么的)?
都是IA32下的机器码吗?我记得好像两个操作系统下的空指令NOP就是OX90的,所以我认为同一个C程序,用VC产生的EXE文件,与用GCC产生的a.out,代码区里的机器码都是一样的,我这样理解对吗??
还是是不是基本都是IA32下的机器码??
...全文
545
7
打赏
收藏
Linux和windows下程序产生的机器码是相同的吗??
一直有个疑惑:windows下的pe文件和linux下的elf格式,他们的代码区里面的机器码都是一样的吗(除了一些地址什么的)? 都是IA32下的机器码吗?我记得好像两个操作系统下的空指令NOP就是OX90的,所以我认为同一个C程序,用VC产生的EXE文件,与用GCC产生的a.out,代码区里的机器码都是一样的,我这样理解对吗?? 还是是不是基本都是IA32下的机器码??
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhc289515966
2012-04-25
打赏
举报
回复
不一样、、、你看一下他们调用函数时堆栈的处理就知道是有细微差别的。。
当然,在同样的硬件上,同样的汇编语句对应的机器码是相同的。。。比如mov $2,%eax与mov eax,2生成的机器码是相同的。、。
好像也跟编译器有关
wuzhiwenk3001
2012-04-25
打赏
举报
回复
我想我理解了
www_adintr_com
2012-04-24
打赏
举报
回复
看你把啥子作为相同的标准了.
它们使用的指令集是相同的. 系统调用方式是不同的, 不同的编译器生成的代码也是不同的.
evencoming
2012-04-24
打赏
举报
回复
pe,elf那是可执行文件格式.
而不是机器指令格式
evencoming
2012-04-24
打赏
举报
回复
[Quote=引用 3 楼 的回复:]
引用 1 楼 的回复:
pe,elf那是可执行文件格式.
而不是机器指令格式
那个我当然清楚,PE,ELF里的.text段里的不正是机器码吗?当然PE和ELF文件组成当然不同拉,但里面的.text段是一样的吧,我想问的就是这个问题
[/Quote]
如果是
非常非常非常简单的代码,同一个编译器版本的话,同样的体系结构cpu等,可能一样.
wuzhiwenk3001
2012-04-24
打赏
举报
回复
[Quote=引用 2 楼 的回复:]
看你把啥子作为相同的标准了.
它们使用的指令集是相同的. 系统调用方式是不同的, 不同的编译器生成的代码也是不同的.
[/Quote]
那最后他们生成的机器码那部分是相同的吗??
wuzhiwenk3001
2012-04-24
打赏
举报
回复
[Quote=引用 1 楼 的回复:]
pe,elf那是可执行文件格式.
而不是机器指令格式
[/Quote]
那个我当然清楚,PE,ELF里的.text段里的不正是机器码吗?当然PE和ELF文件组成当然不同拉,但里面的.text段是一样的吧,我想问的就是这个问题
运维开发之
Linux
机器码
Linux
机器码
指的是在
Linux
操作系统上运行的
程序
的二进制代码,也称为
机器码
或目标代码。
Linux
机器码
是对源代码进行编译或汇编后得到的结果,它是一系列由0和1组成的指令,用于直接在计算机硬件上执行。在
Linux
中,
机器码
可以是由C、C++、汇编语言或其他编程语言编写的
程序
经过编译或汇编后生成的二进制文件。这些二进制文件可以在
Linux
上运行,并执行特定的任务,如运行应用
程序
、执行系统命令或操作计算机硬件。
Linux
机器码
的特点是与硬件相关,不同的硬件平台可能需要不同的
机器码
来执行
相同
的任务。
Windows
中的JDK和
Linux
中的JDK是否
相同
前言 在面试中,被问到了一个问题:
Windows
中的JDK和
Linux
中的JDK是否
相同
? 其实,以上这个问题是一个子问题。原本的问题是:如何理解Java的跨平台机制。由于原问题显得有些宽泛,因此延伸出一个子问题,在本篇博客中争取能够完整地回答。 本文力求建立起自己知识体系中Java的基石,希望在阅读本文之后,同时可以很好地回答上述的跨平台机制这个基础问题。 一、JDK的架构 下面这张是从Oracle官方文档中找到的JDK架构图,非常细致的展现了JDK每个层级的架构和组件。以下将会挑选重点,谈谈
【编程须知】同样的代码
linux
与
windows
的运行结果不同
原因1: 数据类型的字长不同。常见如:long长整型,
linux
下通常为8字节,而
windows
下通常为4字节。 相关知识可参考:详解不同数据模型下的不同数据类型 ...
走近
Linux
世界:
Linux
与
Windows
特性比较
1.
Linux
真的是免费的吗?
Linux
和
Windows
最大的不同之处在哪里?
Linux
免费,而
Windows
要钱,并且很贵。真的是这样吗? 其实,并不是所有的
Linux
系统都是免费的。并且众多的
Linux
服务器系统还很贵,但相对来说要比采用
Windows
系统的成本要低一些。或者说,
Linux
核心是免费的,这确实没错,然而在
Linux
核心基础上构建的发行版以及
Linux
上的软件,并不都是免费
两台
Linux
机器scp不输密码
调试
程序
时,不想直接在运行节点上编译
程序
,因为这样做容易泄露代码。因此,在用户win系统终端上配置一个与运行节点环境
相同
的虚拟机,代码放在虚拟机上编译,然后将编译后的执行文件或者动态库放在用户运行节点上。
其它技术问题
3,882
社区成员
9,046
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章