ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Суббота
29 июня
241655 Топик полностью
MBedder, терминатор (04.03.2011 12:26 - 25.03.2011 03:21, просмотров: 378) ответил 580BM80 на Вот код, который покороче будет:
"Не корысти ради"(с) - еще чуток покороче и побыстрее :)) ; Arbitrary bit structure address, 21 clocks ANY case, 18 program memory words, 5 registers ; Input: ZH:ZL = bit structure starting address, r16 = bit # to be tested btest: ldi r17,32 mulu r16,r17 ; r1 = byte # clr r17 add ZL,r1 adc ZH,r17 ; [Z] = byte to be tested ld r18,Z ; r18 = byte to be tested andi r16,7 ; r16 = bit position to be tested ldi ZL,low(masks*2) ldi ZH,high(masks*2) add ZL,r16 adc ZH,r17 lpm r16,Z ; r16 = bit mask ("1" in a bit to be tested) and r16,r18 ; SREG.Z = tested bit ret masks: .db 1,2,4,8,16,32,64,128