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]
。