當我試圖使用NASM作出彙編代碼程序,但由於某些原因,它不斷給我一個錯誤。它表示在我聲明一個字符串後,它期待逗號,冒號,裝飾器或行尾,但我不明白它是如何成爲問題的。請指教。NASM:「逗號,冒號,裝飾或操作結束後的預計行結束」聲明字符串
section .text
global main
main:
mov edi,str
lab3:
cmp [edi],' '
je lab1
cmp [edi],0x0
je lab2
mov eax,4
mov ebx,1
mov ecx,edi
mov edx,1
int 0x80
inc edi
jmp lab3
lab1:
inc edi
mov eax,4
mov ebx,1
mov ecx,nwln
mov edx,1
int 0x80
jmp lab3
lab2:
mov eax,1
int 0x80
section .data
str db 'this is a test',0x0 ;this is the line giving the error
nwln db 0xa
nasm在標籤後面需要冒號,即'str:db'這是一個測試',0x0 – Jester
@Jester:不,它不會,只有當它們也是有效的助記符時:P這就是爲什麼'-Worphan-標籤「選項存在。 OP的程序在將'str'改爲'str1'時進行彙編。 (除了'cmp mem,immediate'指令中丟失的操作數大小以外) –
總是使用它更好,而不是頭痛。另外,如果明年英特爾推出一個與您的標籤名稱相沖突的新指令,會發生什麼...... – Jester