asve79
;zill zero string => fill zero string?
Присмотритесь для поиска нуля в строке к команде CPIR - будет эффективнее по скорости. Вот, например, как это реализовано в SDCC:
А вот так, если длина строки не более чем len (будет достигнут 0 или строка закончится по длине - без 0). Экзотика, но это я для Оберона делал. Более безопасная работа со строками:Код:unsigned int Strings_Length (unsigned char *str) __z88dk_fastcall { __asm XOR A LD B,A LD C,A CPIR LD HL,#0xFFFF SBC HL,BC __endasm; }
Код:unsigned int Strings_LengthEx (unsigned int len, unsigned char *str) __z88dk_callee { __asm POP HL POP BC ; len EX (SP), HL ; str LD E, C LD D, B XOR A CPIR EX DE, HL RET NZ SBC HL, BC DEC HL __endasm; }




Ответить с цитированием