/* * fsqrt16V2.asm * * Created: 08.09.2011 15:00:06 * Author: Marko Surup * Optimizer: Johann L. (gjlayde) * Register r1:r0 Arbeitsregister (fix) * r25:r24 Zahl * r23 Ergebnis,Integeranteil * Laufzeit 52 Takte !!!, fix */ .org 0x00 rjmp init .equ Zahl = 34567 .def ergeb = r23 init: ldi r16, HIGH(RAMEND) out SPH, r16 ldi r16, LOW(RAMEND) out SPL, r16 ldi r25, HIGH(Zahl) ldi r24, LOW(Zahl) fsqrt16:ldi ergeb, 128 cpi r25, 64 brcc PC+2 subi ergeb, 128 subi ergeb, 192 mul ergeb, ergeb cp r24, r0 cpc r25, r1 brcc PC+2 subi ergeb, 64 subi ergeb, 224 mul ergeb, ergeb cp r24, r0 cpc r25, r1 brcc PC+2 subi ergeb, 32 subi ergeb, 240 mul ergeb, r23 cp r24, r0 cpc r25, r1 brcc PC+2 subi ergeb, 16 subi ergeb, 248 mul ergeb, ergeb cp r24, r0 cpc r25, r1 brcc PC+2 subi ergeb, 8 subi ergeb, 252 mul ergeb, ergeb cp r24, r0 cpc r25, r1 brcc PC+2 subi ergeb, 4 subi ergeb, 254 mul ergeb, ergeb cp r24, r0 cpc r25, r1 brcc PC+2 subi ergeb, 2 subi ergeb, 255 mul ergeb, ergeb cp r24, r0 cpc r25, r1 sbci ergeb, 0 end: rjmp end