You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用NASM汇编kernel.asm时遇instruction expected错误求助

NASM汇编kernel.asm报错parser: instruction expected的解决办法

问题

用NASM、GCC和LD开发包含引导加载程序、内核及UI代码的项目时,汇编kernel.asm遇到错误:

kernel.asm:2: error: parser: instruction expected

已检查语法、拼写,确认NASM版本兼容,仍无法解决问题。

涉事代码片段

[BITS 16]
ORG 0x8000

section kernel

extern ui_main   ; Declare the entry point of the UI code

start:
    mov ax, 0x07C0  ; Set up segment registers
    mov ds, ax
    mov es, ax

    call clearScreen
    call ui_main

    jmp $

clearScreen:
    mov ah, 0x00    ; Video BIOS - Set video mode
    mov al, 0x03    ; Mode 3 (Text mode: 80x25, 16 colors)
    int 0x10        ; Video interrupt
    ret

times 510 - ($ - $$) db 0
dw 0xAA55         ; Boot signature

已尝试的排查动作

  • 验证汇编代码语法正确性
  • 确认代码符合汇编语法规范
  • 检查拼写错误和字符遗漏
  • 确认NASM版本与代码兼容

解决方案

调整ORG指令的值即可解决问题:
原代码中ORG 0x8000的设置与后续段寄存器配置冲突——代码里将ds设为0x07C0,此时ORG应设为0(NASM默认值,可省略该指令)。修改后代码可正常汇编。

调整后的开头部分示例:

[BITS 16]
; ORG 0 为NASM默认值,可省略

section kernel

内容的提问来源于stack exchange,提问作者LevathonDeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 09:27:13