ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
28 марта
1072711 Топик полностью
Adept (27.01.2021 23:28, просмотров: 494) ответил ILYAUL на Упростил слегка
ну да, можно и так, "те же яйца, только вид сбоку" ну и на 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") - признак, что весь массив входных данных был нулевым
...делать нужно так, как нужно. А как ненужно - делать не нужно (С) Винни-Пух :)