ну да, можно и так, "те же яйца, только вид сбоку" ну и на 10%
быстрее - тоже дело :)) я тут тоже немного подрихтовал убрав дополнительный регистр Zero (зачем он, если есть пустующий теперь рабочий Y :)
теперь ещё посимпатичнее :) Спасибо, перенесу это в финальный вариант.
FindMax256:
//поиск первого ненулевого значения "сверху" в массиве 256 байт
ser XL ;массив должен быть выровнен в адресном пространстве кратно 256 байт
clr YL ;ноль для сравнения
WorkCycle:
ld TMP,-X ;читаем очередной байт массива
cpse TMP,YL ;если 0
rjmp BREAK_ ;как только нашли ненулевой байт - выходим
cpse XL,YL ;сравнение с границей массива (дошли ли до конца)
rjmp WorkCycle ; то продолжаем цикл чтения/сравнения
BREAK_:
STOP ;нулевой результат ("ТMP") - признак, что весь массив входных данных был нулевым