我正在尝试构建一个64位静态C库,它与64位C运行时库动态链接。
C库在一个文件中包含一些无法构建的程序集。这是以下代码:
JMEMDOSA_TXT segment byte public 'CODE'
assume cs:JMEMDOSA_TXT
public _jdos_open
public _jdos_close
public _jdos_seek
public _jdos_read
...
我得到的编译错误是:
A2071:初始化程序幅度对于指定大小而言太大
这是指向完整asm源文件的链接: https://github.com/cloudflare/jpegtran/blob/master/jmemdosa.asm
答案 0 :(得分:0)
我想出了答案。根据迈克尔上面的评论,这个汇编代码是16位的。
要使这项工作使用64位,需要将其重写为使用64位寄存器。
将16位或32位汇编编译为64位二进制文件是不可能的。
但是,如果有C源代码执行相同的工作,那么C代码可以编译到appripriate程序集中,然后编译成32位或64位二进制文件。