Gast
#57746
Hallo zusammen, Ich habe einen Routine gesucht um eine hex Zahl in einen ASCII Wert umzuwandeln. Von diesem Code schwirrt ja hier genug rum. Ich habe mich für eine Routine entschieden die wohl schon mal mit Erfolg getestet worden ist (auf nem AVR). AVR Code: ;input: R16= 0...255 ;output: R18,R17,R16 (ASCII) ldi r18,-1 + '0' _bcdi: inc R18 subi R16,100 brcc _bcd1 ldi R17,10 + '0' _bcd2: dec R17 subi R16,-10 brcs _bcd2 subi R16, -'0' ret Meine C51 Interpretation (die nicht funktioniert) mov RR8,#47 _bcdi: inc RR8 mov a,RR6 subb a,#100 mov RR6,a jnc _bcdi mov RR7,#58 _bcd2: dec RR7 mov a,RR6 subb a,#-10 mov RR6,a jc _bcd2 mov a,RR6 subb a,#-48 mov RR6,a ret Hat jemand ne Ahnung wo da der Wurm drin ist ? Die RR6 Stelle scheint zu funktionieren, der Rest ist nur Müll. Habe irgendwie die befürchtung das der mit der subtraktion mit den negativen Zahlen nicht klar kommt... Gruß Alex