Я пытаюсь создать программу с использованием NASM, которая принимает данные из аргументов командной строки. Поскольку длина строки не указана, я пытаюсь создать функцию для вычисления своей собственной. Вот моя попытка, которая берет указатель на строку в регистре ebx
и возвращает длину строки в ecx
:
len:
push ebx
mov ecx,0
dec ebx
count:
inc ecx
inc ebx
cmp ebx,0
jnz count
dec ecx
pop ebx
ret
Мой метод состоит в том, чтобы пройти строку, символ за символом, и проверить, является ли это нулем. Если это не так, я увеличиваю ecx
и перехожу к следующему символу. Я считаю, что проблема в том, что cmp ebx,0
неправильно для того, что я пытаюсь сделать. Как мне правильно проверить, является ли персонаж нулевым? Кроме того, есть ли другие вещи, которые я мог бы сделать лучше?