gpt4 book ai didi

compiler-errors - NASM 'org'指令和 '-fobj'

转载 作者:行者123 更新时间:2023-12-02 10:43:48 27 4
gpt4 key购买 nike

NASM为什么不使用org指令编译为目标文件?

org 0x7C00
nop
mov ax, ax
nop

如果我用以下命令编译它:
nasm -O0 -fobj temp.asm

NASM出于任何原因给我一个错误:
temp.asm:1: error: parser: instruction expected

最佳答案

在这种情况下,您应该使用org而不是resb:

; file: nasmOrg.asm
; assemble: nasm -f obj nasmOrg.asm -o nasmOrg.obj

SEGMENT _TEXT PUBLIC CLASS=CODE USE16

; resb 0x0100 ; reserve 0x0100 bytes for a .COM program
resb 0x7C00 ; reserve 0x7C00 bytes for a boot sector
..start:
nop
mov ax, ax
nop

这是将.COM程序的不同部分编译成单独的目标文件的方法。如果使用TLINK作为链接器,下一步将是:

tlink.exe /t nasmOrg.obj [any other object files], nasmOrg.bin



请注意,如果您省略逗号和结果二进制文件的以下名称(nasmOrg.bin),或者如果您指定扩展名为.COM的名称(例如nasmOrg.com),则TLINK将拒绝链接,它会说类似以下内容:

Error: Cannot generate COM file : invalid initial entry point address



并且您必须将0x7C00更改为0x0100才能创建.COM程序。

关于compiler-errors - NASM 'org'指令和 '-fobj',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10669144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com