Страница 1 из 1

Как определить длину строки?

Добавлено: 18 апр 2005, 17:36
PavelA
Помогите составить функцию определения длины строки!
Спасибо.

Добавлено: 18 апр 2005, 20:41
Romeo

Код: Выделить всё

mov ax, ds
mov es, ax

mov di, ofset my_string
mov cx, 0FFh
xor ax, ax
repnz cmpsb

not cx
inc cx
И того в cx - длина строки. Возможно последняя команда лишняя - проверь. У меня нет под рукой асма.

Добавлено: 18 апр 2005, 22:07
Andy
Romeo, не будет работать :) Ты же cmpsb делаешь, а si не задан. Со scasb перепутал? :)
Будет типа этого:

Код: Выделить всё

	mov di, offset my_string 
	mov cx, 0FFFFh 
	xor ax, ax 
	repnz scasb 

	not cx 
	dec cx 
Это если строка с завершающим нулем. Иначе в AL другое значение.

Добавлено: 18 апр 2005, 22:24
Romeo
Точно scasb, опечатался. Да и вообще практики нет, забывается всё :)