Archiv verlassen und diese Seite im Standarddesign anzeigen : 8 u. 16 bit hex2dec routienen schnell und kurz
Import-Script
10.08.2003, 02:01
hi <BR> <BR>weil ich so was für meine füllstandsanzeige gebraucht habe und nichts gefunden was mir wirklich gefiel sind diese routienen entstanden. vielleicht spart es dem einen oder anderen etwas sucherei und grübelei... <BR> <BR>viel spaß damit <BR> <BR>PS: der quelltext ist undokumentiert und bleibt auch so (bin zu faul;-)<!--attachment: hex2dez8-8380.unk*attachment_icon.gif*application/octet-stream*0.3**hex2dez8%2easm --><center><table border=1><tr><td><img src="http://progshop.com/elektronik/diskussion/icons/attachment_icon.gif" align=left alt="application/octet-stream"><br><a href="http://progshop.com/elektronik/diskussion/messages/2066/hex2dez8-8380.unk" target="_blank"><b>hex2dez8.asm</b></a> (0.3 k)</td></tr></table></center><!--/attachment--><!--attachment: hex2dez16-8381.unk*attachment_icon.gif*application/octet-stream*0.6**hex2dez16%2easm --><center><table border=1><tr><td><img src="http://progshop.com/elektronik/diskussion/icons/attachment_icon.gif" align=left alt="application/octet-stream"><br><a href="http://progshop.com/elektronik/diskussion/messages/2066/hex2dez16-8381.unk" target="_blank"><b>hex2dez16.asm</b></a> (0.6 k)</td></tr></table></center><!--/attachment-->
Import-Script
20.10.2003, 23:16
Hallo! <BR> <BR>Ohne das ich dazu jetzt viel sagen will, ist eine gute routine! <BR> <BR>Aber hast du das "Atmel Instruction Set" ? <BR>Dort finded man nämlich ein gutes beispiel mit dem befehl "DA" <BR> <BR>viele grüße <BR>thomas roskam
Import-Script
21.10.2003, 21:10
servus <BR> <BR>das atmel-instruction-set hatte ich nicht sondern eines von siemens. ich hab's mir aber mal runtergeladen um nachzukuken. jedoch ist mir nicht ganz klar wie man mit dem DA befehl eine hex->dez umwandlung bewerkstelligen soll. das beispiel dort zeigt lediglich eine bcd addition. aber wenn's funktioniert... schreib doch mal wie du dir das denkst vielleicht ist es ja wirklich effizienter als meine routiene. <BR> <BR>tschau MACE
Import-Script
22.10.2003, 20:12
Was bitte genau macht diese Routine? Eine HEX nach DEC Wandlung? <BR> <BR>Nehmen wir mal an, eine HEX-Zahl soll an P1 des µC angelegt werden und als DEC-Zahl an P2 wieder ausgegeben werden. <BR> <BR>Hier der atemberaubende Quellcode: <BR> <BR>MOV R0, P1 <BR>MOV P2, R0 <BR> <BR>Ich hoffe der Groschen ist gefallen! <BR> <BR>
Import-Script
23.10.2003, 10:59
servus <BR>@das orakel <BR>ich weiß nicht so recht wie ich dein posting deuten soll <img src="http://progshop.com/elektronik/diskussion/clipart/crazy.gif" border=0> aber ich glaube bei dir ist der groschen noch nicht gefallen... <BR>dein "atemberaubender" code gibt lediglich deine hex-zahl von p1 (z.b. 55h) an p2 wieder aus. nach einer hex->dec wandlung würde aus der 55h eine 85 werden. das ließe sich sogar noch auf einem port ausgeben aber liegt an p1 b8h dann ist das dezimal 184 (merke: 3-stellig!) das kann man schon nicht mehr auf einem port ausgeben. ich will hoffen der unterschied ist klar... <BR>übrigens ich hab deinen "atemberaubenden code" noch mal optimiert denn so wie du das schreibst würde das nur microsoft machen: <BR> <BR>MOV P2,P1 <BR> <BR>toll nicht <img src="http://progshop.com/elektronik/diskussion/clipart/proud.gif" border=0> <BR> <BR>tschau MACE
Import-Script
23.10.2003, 19:16
@MACE <BR> <BR>Seit wann kann man denn zwischen P1 und P2 direkt Daten hin und her schieben??? <BR> <BR> <BR>
Import-Script
23.10.2003, 19:31
@Besser-Wessi: seit 13 Jahren, als das Brett vorm Kopf gefallen ist und wir Wessis den Ossis mal über die Schulter geschaut haben, wie die das machen mit nur halb soviel Speicher einen funktional identischen Computer zu bauen. <BR>Hätten die mal ihre fortschrittliche Technologie für sich behalten und schön mit der Mauer gegen uns abgeschottet, wären die jetzt nicht von Wessi-Windows und Konsorten mit Gigabyte-Hauptspeicherbedarf überrollt worden... <BR> <BR>Das war der Sinn der Mauer!!!<img src="http://progshop.com/elektronik/diskussion/clipart/smile.gif" border=0> <BR>(haben die offiziell jedenfalls behauptet).. <BR> <BR>Rechnung natürlich ohne Motorola 68000 gemacht: <BR>MOVE.L D0,D1 gab´s 32bittig bereits ca. 1970 <BR> <BR>auch mit Speicher... <BR>Speicher1: ORG 123765 <BR>Speicher2: ORG 657890 <BR> <BR>MOVEM.L Speicher1,Speicher2 ; mov(ed) 4 Byte in einem Rutsch!!!
Import-Script
23.10.2003, 21:02
servus <BR> <BR>nun um deine frage zu beantworten würde ich sagen etwa seit dem folgende zeilen in der instruction deffinition stehen <BR> <BR>MOV direct, direct <BR>Bytes : 3 <BR>Cycles : 2 <BR>Encoding : 1 0 0 0 0 1 0 1 dir. addr. (src) dir. addr. (dest) <BR>Operation : MOV <BR>(direct) u (direct) <BR> <BR>übrigens es ist nicht wichtig zu wissen seit wann das geht sondern das es geht! <img src="http://progshop.com/elektronik/diskussion/clipart/wink.gif" border=0> <BR> <BR>tschau MACE
Unregistriert
14.06.2004, 16:01
Bei der 8 Bit Variante von hex2dec kann man den Divisionsbefehl
des 8051 elegant nutzen. Der Code wird dadurch kuerzer und
schneller.
;hex-zahl in r4
;dezimalzahl 3 stellen bei @r0
;zerstört A, B
;Funktion nutzt den 8Bit Divisionsbefehl des 8051.
hex2dez8.asm
============
hex2dez8:
MOV B,R4
MOV A,#64 ; dezimal 100 (== hex 64)
LCALL Digit
MOV A,#0A ; dezimal 10 (== hex 0a)
LCALL Digit
MOV A,#1 ; dezimal 1 (== hex 1)
Digit:
XCH A,B
DIV AB
MOV @R0,A
INC R0
RET
Powered by vBulletin® Version 4.1.12 Copyright ©2012 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.