PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Signed integer-Werte Vergleichen



*Mario*
21.06.2006, 10:40
Hallo zusammen,

ich dachte nicht, dass ich jemals ein Problem haben werde zwei zahlen zu vergleichen. Allerdings wenn man zu signed integers schaut, dann habe ich festgestellt, das der vergleich zweier Zahlen keineswegs tivial ist.

Ich habe für zwei signed 1-Byte Werte die folgende Sequenz:


movf b,w ; if ( a < b )
xorwf a,w
andlw 0x80
btfsc STATUS,Z ; Bit 7 set, if yes then skip next command.
goto $+3
rlf b,w
goto $+3
movf b,w
subwf a,w
btfss STATUS,C
goto do_else ; Condition false
do_true
movf a,w ; Condition true.
movwf b
do_else ; Condition false
...


Hat jemand von euch ein eine bessere (=kürzere) Variante?

Grüße
Mario

PicNick
21.06.2006, 12:09
Ich bin PIC-mäßig schon ein wenig entwöhnt. Aber schau mal da rein
http://www.myke.com/basic.htm#byterange
Das sind verschiedene Schmankerl für verschiedene Problemchen mit PICs