加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

为什么汇编语言(如Windows,Linux)有所不同?

发布时间:2020-12-13 20:12:45 所属栏目:Windows 来源:网络整理
导读:我对所有这些低级别的东西,汇编语言都比较新,想要了解更多的细节.为什么 Linux与Windows汇编语言有区别? 据了解,当我编译C代码时,操作系统并不能真正产生纯机器或汇编代码,它会产生与操作系统相关的二进制代码.但是为什么? 例如,当我使用x86系统时,CPU只能
我对所有这些低级别的东西,汇编语言都比较新,想要了解更多的细节.为什么 Linux与Windows汇编语言有区别?

据了解,当我编译C代码时,操作系统并不能真正产生纯机器或汇编代码,它会产生与操作系统相关的二进制代码.但是为什么?

例如,当我使用x86系统时,CPU只能理解x86 ASM我是对的?为什么我们不写纯x86汇编代码,为什么基于操作系统有不同的组合变体?如果我们写纯ASM或OS产生纯ASM,操作系统之间不会有二进制兼容性问题?

我真的很想知道背后的所有原因.任何详细的答案,文章,书都会很棒.谢谢.

没有区别.如果处理器相同,则汇编代码相同.在Windows上编译的x86代码与Linux上的x86代码是二进制兼容的.编译器不会产生与OS相关的二进制代码,但是它可能会以不同的格式打包代码(例如,PE与ELF).

区别在于使用哪些库.为了使用操作系统的东西(例如I / O),您必须链接到操作系统的库.毫不奇怪,Windows系统库在Linux机器上不可用(除非您有Wine),反之亦然.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读