指定された文字列の長さを取得するために 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
私の間違いを整理するのを手伝ってもらえますか?
ありがとうございました