0
我試圖在NASM中編寫代碼來獲取給定字符串的長度。但是會給出一些垃圾值作爲長度。該代碼是以下之一:使用NASM的字符串的長度
section .data
a db "nitin",10,0
msg db "length = %d",10,0
section .text
global main
extern printf
main:
nop
xor eax,eax
mov eax, a
xor edx,edx
length:
mov dl, byte[eax]
cmp dl,0
je print
inc eax
jmp length
print:
pusha
push eax
push msg
call printf
add esp,8
popa
done:
nop
結果顯示: 長度= 132445678
能否請你幫我理清我的錯誤?
謝謝
謝謝你的回覆。我已經使用計數器寄存器ecx解決了它。然而,我想知道如何使用eax來解決這個問題,對不起,導師,我仍然沒有得到如何使用eax解決它。 – sabu 2013-03-14 15:12:40
其實,最快的方法就是al rep = 0的'rep scasb'。讓你完全避免循環。 – 2013-03-14 18:27:27
夢幻般的anaysis.A學生只需要這個.Fantastic,我的導師 – sabu 2013-03-15 07:47:52