社区
其它技术问题
帖子详情
Linux和windows下程序产生的机器码是相同的吗??
wuzhiwenk3001
2012-04-24 11:36:59
一直有个疑惑:windows下的pe文件和linux下的elf格式,他们的代码区里面的机器码都是一样的吗(除了一些地址什么的)?
都是IA32下的机器码吗?我记得好像两个操作系统下的空指令NOP就是OX90的,所以我认为同一个C程序,用VC产生的EXE文件,与用GCC产生的a.out,代码区里的机器码都是一样的,我这样理解对吗??
还是是不是基本都是IA32下的机器码??
...全文
568
7
打赏
收藏
Linux和windows下程序产生的机器码是相同的吗??
一直有个疑惑:windows下的pe文件和linux下的elf格式,他们的代码区里面的机器码都是一样的吗(除了一些地址什么的)? 都是IA32下的机器码吗?我记得好像两个操作系统下的空指令NOP就是OX90的,所以我认为同一个C程序,用VC产生的EXE文件,与用GCC产生的a.out,代码区里的机器码都是一样的,我这样理解对吗?? 还是是不是基本都是IA32下的机器码??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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段是一样的吧,我想问的就是这个问题
Windows
中的JDK和
Linux
中的JDK是否
相同
前言 在面试中,被问到了一个问题:
Windows
中的JDK和
Linux
中的JDK是否
相同
? 其实,以上这个问题是一个子问题。原本的问题是:如何理解Java的跨平台机制。由于原问题显得有些宽泛,因此延伸出一个子问题,在本篇博客中争取能够完整地回答。 本文力求建立起自己知识体系中Java的基石,希望在阅读本文之后,同时可以很好地回答上述的跨平台机制这个基础问题。 一、JDK的架构 下面这张是从Oracle官方文档中找到的JDK架构图,非常细致的展现了JDK每个层级的架构和组件。以下将会挑选重点,谈谈
走近
Linux
世界:
Linux
与
Windows
特性比较
1.
Linux
真的是免费的吗?
Linux
和
Windows
最大的不同之处在哪里?
Linux
免费,而
Windows
要钱,并且很贵。真的是这样吗? 其实,并不是所有的
Linux
系统都是免费的。并且众多的
Linux
服务器系统还很贵,但相对来说要比采用
Windows
系统的成本要低一些。或者说,
Linux
核心是免费的,这确实没错,然而在
Linux
核心基础上构建的发行版以及
Linux
上的软件,并不都是免费
VSCode--
Windows
下使用VSCode远程
Linux
机器进行开发和调试
此处必须打开某个.cc文件才能生成合适的launch.json和tasks.json,因为launch.json和tasks.json都是根据文件名和类型生成的。第四步:进入到.ssh/这个文件夹,查看一下有没有成功生成公钥和私钥,创建一个文件authorized_keys,并将第二步生成的公钥内容复制其中。添加launch.json文件,不需要tasks.json。因为既然是附加调试,那么肯定已经编译好了。本质上说:tasks.json完成编译的工作,launch.json启动编译得到的
程序
进行调试。
扫盲回帖系列之3——在
windows
下编译生成的
程序
为什么不能在ubuntu下运行呢?
原始提问帖见http://bbs.csdn.net/topics/390931945。 基本概念问题。不讨论可执行脚本情况,因为脚本不是由
机器码
构成,脚本在脚本解释器上运行,而解释器本身实现在不同谱系的操作系统(如
Linux
和
Windows
,不指同一种操作系统的不同版本情况,下同)上需要移植,解释器在同一操作系统的不同CPU上至少需要重新编译源码。 同样的硬件...
linux
下共享文件夹(
windows
可访问,
linux
也可访问)
本文是转字网上的两段,如果是菜鸟,想懂有点难度,我这里给点注释 在
linux
上共享文件夹
windows
下看 首先给
linux
设一个ip,要和
windows
是一个网段的 mkdir /share ---------------在根下创建文件夹(除了root的目录下不能创建其他都可以) chmod 777 /share/ ------------给share文件夹赋权 vi /etc/samba/s...
其它技术问题
3,881
社区成员
9,045
社区内容
发帖
与我相关
我的任务
其它技术问题
C/C++ 其它技术问题
复制链接
扫一扫
分享
社区描述
C/C++ 其它技术问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章