首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测线性可执行文件的体系结构?

如何检测线性可执行文件的体系结构?
EN

Stack Overflow用户
提问于 2020-04-07 01:07:31
回答 1查看 45关注 0票数 0

LE (线性可执行文件)有什么指令集体系结构?链接文章说:混合16/32位。

  1. 这是否意味着同一个LE文件可以包含16位和32位代码?
  2. 如何检测它是否包含16位(8086)代码?
  3. 如何检测它是否包含32位(i386)代码?

请注意,我知道CPU类型字段(请参阅这里),它可以区分80286和i386 (80386)。但是,我将其解释为CPU类型的需求,因此这没有指定体系结构,例如十六进制40在两种情况下都是有效的:它在16位代码中表示inc ax,在32位代码中表示inc eax,这两者都可以由80386 CPU执行。我对十六进制40在LE文件的代码中的含义感兴趣。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-07 16:09:17

我找到了https://www.program-transformation.org/Transform/PcExeFormat,基于它的答案如下。

如果对象表条目中的对象标志位13被设置,那么它是32位,否则是16位。

在可执行条目表中,LX类型字节的LE标志位1在16位和32位之间进行区分。

由于这些表中可以有多个条目,所以单个LE或LX文件可能同时包含16位和32位代码。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61071273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档