为什么报告“未绑定标签”?

时间:2019-08-28 09:44:24

标签: linux as86

我是学习as86和linux源代码的初学者,我想编写一段汇编代码进行测试。但是,编译时会报告“未绑定标签”。

环境是64位Ubuntu 18.04。编写此演示boot.s代码是为了进行测试,以在最初加载BIOS时显示“正在加载系统..”。当我使用as86 -0 -a -o boot.o boot.s进行编译时,在go: mov as,csmov sx,#0x1004上报告“未绑定标签”。我不知道“未绑定标签”的含义或原因。我不确定as86 16位编译模式是否会导致此错误。我有些困惑。代码如下:

!
! boot.s
!

.globl begtext, begdata, begdss, endtext, enddata,  endbss !global identifier
.text
begtxt:
.data
begdata:
.bss
begbss:
.text
BOOTSEG = 0x07c0

entry start
start:
    jmpi    go,BOOTSEG
go: mov as,cs
    mov ds,ax
    mov es,ax
    mov [msgl+17],ah
    mov cx,#20
    mov sx,#0x1004
    mov bx,#0x000c
    mov bp,#msgl
    mov ax,#0x1301
    int 0x10
loopl:  jmp loopl
msgl:   .ascii  "Loading system ..."
    .byte   13,10

.org 510
    .word 0xAA55
.text
endtext:
.data
enddata:
.bss
endbss:

错误消息是

00018 0005           8C0E       0000            go:    mov as,cs
***** unbound label.............................................^
00023 0014           C706       0000      1004      mov sx,#0x1004
***** unbound label.............................................^

感谢您提供有关修复方法的帮助。抱歉,这是一个愚蠢的问题。

0 个答案:

没有答案