在实模式下结合 NASM、BCC 和 Ld86:具有错误的幻数

LIG学生

我写了一个引导加载程序并使用NASM汇编程序(不是AS86编译它,一切正常。

现在,我想学习如何将 16 位C代码插入到我的应用程序中。bcc由于它支持 8086 处理器,我从几个推荐用于这种情况的SO 中阅读

在将我的代码与C测试代码结合时,我遇到了以下错误:ld86: testasm.o has bad magic number

我将代码简化为以下内容:

testasm.asm :

[bits 16]
global foo

foo:
    mov ax, 0x0e41
    int 0x10
    jmp $

测试c.c

extern void foo();

main() {
  foo();
}

Makefile

CFLAGS=-0 -c
LDFLAGS=-T 0x7C00 -0
ASFLAGS=-f aout

all: testc.bin

testc.bin: testasm.o testc.o
    ld86 -o $@ $^ $(LDFLAGS)

testc.o: testc.c
    bcc -o $@ $^ $(CFLAGS)

testasm.o: testasm.asm
    nasm -o $@ $^ $(ASFLAGS)

clean:
    rm -f *.o testc.bin

我仍然有问题。任何人都知道如何组合NASMbcc以及如何组合ld86在一起。

LIG学生

对于新来者,我发现了这个问题。输出格式NASM应该是AS86为了与LD86兼容。所以,

ASFLAGS=-f aout

应该替换为

ASFLAGS=-f as86

另外,代码还有一个问题:foointestasm.asm应该替换为_foo但不要问我为什么!

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

我该如何编写在NASM 16位实模式下打印以空值终止的字符串的函数?

来自分类Dev

x86_32虚拟8086和实模式是否支持扩展的通用和专用寄存器?

来自分类Dev

在x86实模式下选择堆栈指针地址(对齐)

来自分类Dev

在没有 int 10h 的情况下以实模式显示字符?

来自分类Dev

可编程中断控制器:实模式下,PIC1和PIC2不返回零

来自分类Dev

Linux x86:在受保护的内核模式下,实模式地址空间映射到哪里?

来自分类Dev

NASM子例程和分段错误

来自分类Dev

在汇编x86实模式下寻址如何工作?标签为什么返回不同的值?

来自分类Dev

python是否具有结合“ w +”和“ r”功能的文件打开模式?

来自分类Dev

HashMap具有错误的equals和HashCode实现

来自分类Dev

HashMap具有错误的equals和HashCode实现

来自分类Dev

pdfbox和itext提取具有错误dpi的图像

来自分类Dev

malloc 和免费的 x86 NASM + 编译

来自分类Dev

MASM Shellcode和NASM Shellcode之间有区别吗

来自分类Dev

在单元测试下具有抽象和内部构造函数的C#工厂模式

来自分类Dev

如何在实模式下显示图像?

来自分类Dev

实模式程序和保护模式程序之间的真正区别是什么?

来自分类Dev

实模式程序和保护模式程序之间的真正区别是什么?

来自分类Dev

无法使用带有多个附件和多个收件人的python发送邮件[to,cc,bcc]

来自分类Dev

Mailgun如何使Cc和Bcc可选php

来自分类Dev

结合使用Google Direction API和多个航点和模式

来自分类Dev

CMP和OR之间的NASM差异

来自分类Dev

Little Endian和nasm推送

来自分类Dev

这个实模式代码有什么问题

来自分类Dev

排序和过滤后的项目具有错误的$ index值

来自分类Dev

具有错误的镜面反射分量的法线贴图和phong着色

来自分类Dev

使用Mocha和Chai为具有错误的功能编写测试用例

来自分类Dev

使用Mocha和Chai为具有错误的功能编写测试用例

来自分类Dev

在vim命令模式下,单引号和双引号之间有区别吗?

Related 相关文章

  1. 1

    我该如何编写在NASM 16位实模式下打印以空值终止的字符串的函数?

  2. 2

    x86_32虚拟8086和实模式是否支持扩展的通用和专用寄存器?

  3. 3

    在x86实模式下选择堆栈指针地址(对齐)

  4. 4

    在没有 int 10h 的情况下以实模式显示字符?

  5. 5

    可编程中断控制器:实模式下,PIC1和PIC2不返回零

  6. 6

    Linux x86:在受保护的内核模式下,实模式地址空间映射到哪里?

  7. 7

    NASM子例程和分段错误

  8. 8

    在汇编x86实模式下寻址如何工作?标签为什么返回不同的值?

  9. 9

    python是否具有结合“ w +”和“ r”功能的文件打开模式?

  10. 10

    HashMap具有错误的equals和HashCode实现

  11. 11

    HashMap具有错误的equals和HashCode实现

  12. 12

    pdfbox和itext提取具有错误dpi的图像

  13. 13

    malloc 和免费的 x86 NASM + 编译

  14. 14

    MASM Shellcode和NASM Shellcode之间有区别吗

  15. 15

    在单元测试下具有抽象和内部构造函数的C#工厂模式

  16. 16

    如何在实模式下显示图像?

  17. 17

    实模式程序和保护模式程序之间的真正区别是什么?

  18. 18

    实模式程序和保护模式程序之间的真正区别是什么?

  19. 19

    无法使用带有多个附件和多个收件人的python发送邮件[to,cc,bcc]

  20. 20

    Mailgun如何使Cc和Bcc可选php

  21. 21

    结合使用Google Direction API和多个航点和模式

  22. 22

    CMP和OR之间的NASM差异

  23. 23

    Little Endian和nasm推送

  24. 24

    这个实模式代码有什么问题

  25. 25

    排序和过滤后的项目具有错误的$ index值

  26. 26

    具有错误的镜面反射分量的法线贴图和phong着色

  27. 27

    使用Mocha和Chai为具有错误的功能编写测试用例

  28. 28

    使用Mocha和Chai为具有错误的功能编写测试用例

  29. 29

    在vim命令模式下,单引号和双引号之间有区别吗?

热门标签

归档