This has picked my curiosity, so here's a little benchmark test
IF-THEN-ELSE: 432 WORDS, 1608 UsEC
FOR-TO-NEXT: 103 WORDS, 2241 UsEC
REPEAT - UNTIL: 99 WORDS, 2200 UsEC
WHILE - WEND: 101 WORDS, 2225 UsEC
Interesting eh!
and the code to evaluate it, Darrel may recognize some of his tricks 
Code:
<font color="#000000"> @ __CONFIG _XT_OSC & _LVP_OFF
<font color="#000080">DEFINE </font>HSER_RCSTA 90h <font color="#008000">' Enable serial port & continuous receive
</font><font color="#000080">DEFINE </font>HSER_TXSTA 24h <font color="#008000">' Enable transmit, BRGH = 1
</font><font color="#000080">DEFINE </font>HSER_SPBRG 25 <font color="#008000">' 9600 Baud @ 4MHz, 0.16%
</font>@TMR1=TMR1L
TMR1 <font color="#000080">VAR WORD </font>EXT
T1CON = 0
ML_Value <font color="#000080">VAR BYTE</font>[8]
Summe_Alarm <font color="#000080">VAR BYTE
</font>TEMP <font color="#000080">VAR BYTE
</font>ADDR <font color="#000080">VAR WORD
</font>TWOCHAR <font color="#000080">VAR WORD
</font>CHAR <font color="#000080">VAR BYTE
</font>size <font color="#000080">VAR WORD
GOTO </font>START
<font color="#000080">ASM
SIZESTART macro
MOVE?CT 0,T1CON,TMR1ON </font><font color="#008000">; Stop timer
</font><font color="#000080">MOVE?CW 0,TMR1 </font><font color="#008000">; clear Timer value
</font><font color="#000080">BLOCKSTART = $ </font><font color="#008000">; set CodeBlock Start address
</font><font color="#000080">MOVE?CT 1,T1CON,TMR1ON </font><font color="#008000">; start Timer
</font><font color="#000080">ENDM
SIZEEND MACRO BLOCKNAME
MOVE?CT 0, T1CON,TMR1ON </font><font color="#008000">; stop timer
</font><font color="#000080">MOVE?CW ($ - BLOCKSTART - 2), _size </font><font color="#008000">; calculate code block size
; remove 2 word for timerstart/stop
</font><font color="#000080">LOCAL STRING,JUMPSTRING
GOTO JUMPSTRING
STRING DA BLOCKNAME,0 </font><font color="#008000">; store codeblock name
</font><font color="#000080">JUMPSTRING
CHK?RP _ADDR
MOVE?CW STRING,_ADDR </font><font color="#008000">; get string sddress
</font><font color="#000080">L?CALL _DisplayResult </font><font color="#008000">; show results via serial comm
</font><font color="#000080">endm
ENDASM
</font>START:
<font color="#000080">@ SIZESTART
IF </font>(ML_Value[0] <= $5A) <font color="#000080">OR </font>(ML_Value[0] => $82) <font color="#000080">THEN </font>Summe_Alarm.0 = 1
<font color="#000080">IF </font>(ML_Value[1] <= $5A) <font color="#000080">OR </font>(ML_Value[1] => $82) <font color="#000080">THEN </font>Summe_Alarm.1 = 1
<font color="#000080">IF </font>(ML_Value[2] <= $5A) <font color="#000080">OR </font>(ML_Value[2] => $82) <font color="#000080">THEN </font>Summe_Alarm.2 = 1
<font color="#000080">IF </font>(ML_Value[3] <= $5A) <font color="#000080">OR </font>(ML_Value[3] => $82) <font color="#000080">THEN </font>Summe_Alarm.3 = 1
<font color="#000080">IF </font>(ML_Value[4] <= $5A) <font color="#000080">OR </font>(ML_Value[4] => $82) <font color="#000080">THEN </font>Summe_Alarm.4 = 1
<font color="#000080">IF </font>(ML_Value[5] <= $5A) <font color="#000080">OR </font>(ML_Value[5] => $82) <font color="#000080">THEN </font>Summe_Alarm.5 = 1
<font color="#000080">IF </font>(ML_Value[6] <= $5A) <font color="#000080">OR </font>(ML_Value[6] => $82) <font color="#000080">THEN </font>Summe_Alarm.6 = 1
<font color="#000080">IF </font>(ML_Value[7] <= $5A) <font color="#000080">OR </font>(ML_Value[7] => $82) <font color="#000080">THEN </font>Summe_Alarm.7 = 1
<font color="#000080">IF </font>(ML_Value[0] > $5A) <font color="#000080">AND </font>(ML_Value[0] < $82) <font color="#000080">THEN </font>Summe_Alarm.0 = 0
<font color="#000080">IF </font>(ML_Value[1] > $5A) <font color="#000080">AND </font>(ML_Value[1] < $82) <font color="#000080">THEN </font>Summe_Alarm.1 = 0
<font color="#000080">IF </font>(ML_Value[2] > $5A) <font color="#000080">AND </font>(ML_Value[2] < $82) <font color="#000080">THEN </font>Summe_Alarm.2 = 0
<font color="#000080">IF </font>(ML_Value[3] > $5A) <font color="#000080">AND </font>(ML_Value[3] < $82) <font color="#000080">THEN </font>Summe_Alarm.3 = 0
<font color="#000080">IF </font>(ML_Value[4] > $5A) <font color="#000080">AND </font>(ML_Value[4] < $82) <font color="#000080">THEN </font>Summe_Alarm.4 = 0
<font color="#000080">IF </font>(ML_Value[5] > $5A) <font color="#000080">AND </font>(ML_Value[5] < $82) <font color="#000080">THEN </font>Summe_Alarm.5 = 0
<font color="#000080">IF </font>(ML_Value[6] > $5A) <font color="#000080">AND </font>(ML_Value[6] < $82) <font color="#000080">THEN </font>Summe_Alarm.6 = 0
<font color="#000080">IF </font>(ML_Value[7] > $5A) <font color="#000080">AND </font>(ML_Value[7] < $82) <font color="#000080">THEN </font>Summe_Alarm.7 = 0
<font color="#000080">@ SIZEEND "IF-THEN-ELSE"
@ SIZESTART
FOR </font>TEMP = 0 <font color="#000080">TO </font>7
<font color="#000080">IF </font>(ML_Value[TEMP] <= $5A) <font color="#000080">OR </font>(ML_Value[TEMP] => $82) <font color="#000080">THEN </font>Summe_Alarm.0[TEMP] = 1
<font color="#000080">IF </font>(ML_Value[TEMP] > $5A) <font color="#000080">AND </font>(ML_Value[TEMP] < $82) <font color="#000080">THEN </font>Summe_Alarm.0[TEMP] = 0
<font color="#000080">NEXT </font>TEMP
<font color="#000080">@ SIZEEND "FOR-TO-NEXT"
@ SIZESTART
</font>TEMP = 0
<font color="#000080">REPEAT
IF </font>(ML_Value[TEMP] <= $5A) <font color="#000080">OR </font>(ML_Value[TEMP] => $82) <font color="#000080">THEN </font>Summe_Alarm.0[TEMP] = 1
<font color="#000080">IF </font>(ML_Value[TEMP] > $5A) <font color="#000080">AND </font>(ML_Value[TEMP] < $82) <font color="#000080">THEN </font>Summe_Alarm.0[TEMP] = 0
TEMP=TEMP+1
<font color="#000080">UNTIL </font>TEMP = 8
<font color="#000080">@ SIZEEND "REPEAT - UNTIL"
@ SIZESTART
</font>TEMP = 0
<font color="#000080">WHILE </font>TEMP!=8
<font color="#000080">IF </font>(ML_Value[TEMP] <= $5A) <font color="#000080">OR </font>(ML_Value[TEMP] => $82) <font color="#000080">THEN </font>Summe_Alarm.0[TEMP] = 1
<font color="#000080">IF </font>(ML_Value[TEMP] > $5A) <font color="#000080">AND </font>(ML_Value[TEMP] < $82) <font color="#000080">THEN </font>Summe_Alarm.0[TEMP] = 0
TEMP=TEMP+1
<font color="#000080">WEND
@ SIZEEND "WHILE - WEND"
</font>here: <font color="#000080">GOTO </font>here
DisplayResult:
<font color="#000080">READCODE </font>ADDR, TWOCHAR
CHAR = TWOCHAR >> 7
<font color="#000080">IF </font>CHAR =0 <font color="#000080">THEN </font>EndString
<font color="#000080">HSEROUT</font>[CHAR]
CHAR = TWOCHAR & $7F
<font color="#000080">IF </font>CHAR = 0 <font color="#000080">THEN </font>EndString
<font color="#000080">HSEROUT </font>[CHAR]
ADDR=ADDR+1
<font color="#000080">GOTO </font>DisplayResult
EndString:
<font color="#000080">HSEROUT </font>[": ",<font color="#000080">DEC </font>size," WORDS, ",<font color="#000080">DEC </font>TMR1, " UsEC",13,10]
<font color="#000080">RETURN
</font>
Is it me, or i see some interrogation mark over some head?
Bookmarks