我是学习as86
和linux源代码的初学者,我想编写一段汇编代码进行测试。但是,编译时会报告“未绑定标签”。
环境是64位Ubuntu 18.04。编写此演示boot.s
代码是为了进行测试,以在最初加载BIOS时显示“正在加载系统..”。当我使用as86 -0 -a -o boot.o boot.s
进行编译时,在go: mov as,cs
和mov 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.............................................^
感谢您提供有关修复方法的帮助。抱歉,这是一个愚蠢的问题。