ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
25 ноября
33540 Топик полностью
AVR (16.06.2005 20:31, просмотров: 1) ответил Сергей Борщ на Теперь я спрошу про АВРовый асм - как оптимальнее скопировать флаг Z в С?
Варианты Твой код заталкивает в регистр 0 при равенстве и 1 при неравенстве, а не просто 1 при неравенстве, как это можно было понять из вопроса. Если так и нужно, то вариант WOLFa оптимален:
	subi	r18,1
	rol	r19
	subi	r18,-1 ;Это-если надо восстановить r18 (т.е. +255)
Если же нужно заталкивать в регистр 1 при ненулевом r18 и не заталкивать ничего при нулевом, то можно так:
	cpi	r18,0	;Установить Z, если r18=0
	sec		;Установить С безусловно
	breq	noshift ;Пропустить сдвиг, если z=1
	rol r19
noshift: