mazur (04.03.2011 21:48, просмотров: 312) ответил mazur на Вот полученная мною подпрограмма. Напишите ее короче.
Думаю, оптимальнее уже не сделать.
; В r16 номер проверяемого бита.
clr ZH
mov ZL,r16 ; Номер бита в младший регистр указателя на битовый массив.
lsr ZL ; Деление
lsr ZL ; на
lsr ZL ; 8
subi ZL,LOW(-(INPUTS_FLAGS))
sbci ZH,HIGH(-(INPUTS_FLAGS))
ld r17,Z
andi r16,7
clr ZH
mov ZL,r17
subi ZL,LOW(-(Table_Bits*2))
sbci ZH,HIGH(-(Table_Bits*2))
lpm r16,Z
and r16,r17 ; and r0,r17 ; SREG,Z
ret
;-------------------------------------------------------------------------
Table_Bits:
.db 1, 2, 4, 8, 16, 32, 64, 128
;=========================================================================