Assembly 程序集(使用Nasm):无效的有效地址错误

Assembly 程序集(使用Nasm):无效的有效地址错误,assembly,nasm,Assembly,Nasm,所以,我正在编写一个汇编程序,在其中我将一条消息打印到屏幕上,但我遇到了一点问题 承认我的装配知识并不丰富,四处搜索似乎并不能提供答案,所以我希望你们能提供更多的见解 我的程序如下所示: section .text main: mov ebx, message mov ecx, 0xb8000 readloop: mov ecx, [bl] inc ecx mov ecx, 0x1f inc ebx inc ecx cmp

所以,我正在编写一个汇编程序,在其中我将一条消息打印到屏幕上,但我遇到了一点问题

承认我的装配知识并不丰富,四处搜索似乎并不能提供答案,所以我希望你们能提供更多的见解

我的程序如下所示:

section .text

main:

    mov ebx, message
    mov ecx, 0xb8000

readloop:

    mov ecx, [bl]
    inc ecx
    mov ecx, 0x1f
    inc ebx
    inc ecx
    cmp ebx, 0
    jne readloop
    hlt

section .data

    message: db "Words to be read", 0
mov-ecx,[bl]
行是导致我出错的原因,但我不明白为什么。据我(有限)所知,它不应该给我带来麻烦


有人能帮上忙吗?

比如
nasm
说,
[bl]
不是有效地址。请参阅的第2卷中的“ModR/M和SIB字节的寻址模式编码”一节,以了解有效的地址格式表。要说明显而易见的情况,地址是32位模式下的32位值,因此该行上的地址引用必须是32位值,例如
[ebx]