【问题标题】:Is it possible to link 16-bit code and 32-bit code?是否可以链接 16 位代码和 32 位代码?
【发布时间】:2014-04-10 09:19:31
【问题描述】:

我问了一个相关的问题here。现在我有更基本的问题,我的意思是我原来的问题被改变了,所以我决定问一个新问题。我在链接器脚本和生成文件方面没有太多经验。从linux读取以下四个文件setup.ldMakefilebioscall.Spmjump.S,我认为有可能(工作)是对还是错?

bioscall.S:

.code16
.section ".inittext","ax"

pmjump.S:

.code32
.section ".text32","ax"

setup.ld:

.inittext       : { *(.inittext) }

.text32         : { *(.text32) }

【问题讨论】:

    标签: linux assembly linker makefile 16-bit


    【解决方案1】:

    ELF 格式没有 16 位变体,因此您的 16 位代码将被放入 32 位段中。是的,这些可以与“真正的”32 位代码链接在一起。结果是否有效是另一个问题。

    【讨论】:

      【解决方案2】:

      如果使用 ARM 处理器,16 位代码是“thumb”模式,16 位指令,32 位寄存器,32 位代码是“arm”模式,32 位指令和 32 位寄存器,这可能是可能的。 ARM 工具集也使用 ELF。

      【讨论】:

        猜你喜欢
        • 2013-02-07
        • 2010-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-10
        • 2014-07-31
        • 1970-01-01
        相关资源
        最近更新 更多