Forum: Mikrocontroller und Digitale Elektronik Hexadezimal in Assembler


von Kcf K. (mt1988)


Lesenswert?

Moin moin,

Seit kurzer Zeit beschäftige ich mich mit Assembler.
Aber eins verstehe ich garnicht.

Warscheinlich wurde euch die frage schon 1000x gestehlt, aber was ich 
bis jetzt gefunden hab leider nicht weiter geholfen

Warum wird das Hexadezimal upt benötigt, wenn das assemlieren den Text 
code in binär umgewandelt wird.

Würde mich über eure antwort freuen.

lg mt1988

von Er (Gast)


Lesenswert?

>Hexadezimal upt
Mir ist in knapp 30 Jahren niemals ein "Hexadezimal upt" begegnet. 
Wahrscheinlich ein Tippfeler oder ? Zitat?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> Warum wird das Hexadezimal upt benötigt, wenn das assemlieren den Text
> code in binär umgewandelt wird.
Häh...?
Bis dahin konnte ich dir noch folgen...

> die frage schon 1000x gestehlt
stehlen -> gestohlen
stellen -> gestellt

von Karl H. (kbuchegg)


Lesenswert?

Die Zahlendarstellung die man als Mensch benutzt, richtet sich nach dem 
was man an dieser Stelle ausdrücken möchte.
Prinizipiell ist es egal, welche Darstellungsform man für Zahlen 
benutzt. Hex, Dezimal oder Binär sind alles nur unterschiedliche 
Präsentationsformen desselben Sachverhaltes: einer Zahl.

Aber je nach Aufgabenstellung und an welcher Stelle man sich im Programm 
gerade befindet, kann die eine oder die andere Darstellungsform insofern 
besser sein, als sie sich gerade hier anbietet.

Benötigst du in einem Programm zb die Anzahl der Sekunden in einer 
Minute (=60), dann wird es unsinnig sein, dafür eine Hex-Repräsentierung 
zu nehmen und einen Kommentar daneben hinzuschreiben

    ldi   r17, 0x3C     ; 1 Minute hat 60 Sekunden

schreib doch gleich 60 in dezimaler Schreibweise
    ldi   r17, 60       ; 1 Minute hat 60 Sekunden

dann kannst du dir den Kommentar sparen, bzw. du ermöglichst dem Leser 
die einfache Kontrolle, ob du auch wirklich 60 geschrieben hast.

Selbiges mit den anderen Darstellungsformen. Manchmal ist Binär besser, 
weil man sich tatsächlich auf Bitebene bewegt. Manchmal ist Hex besser. 
Hex nimmt man, weil man von Hex leicht auf die Bitdarstellung kommt.

Manchmal ist aber auch gar keine Zahlendarstellung die Beste
     ldi  r17, 'A'     ; ein 'A' per UART verschicken
kontra
     ldi  r17, 0x41    ; ein 'A' per UART verschicken

von Er (Gast)


Lesenswert?

Womit wir nun auch über dieses Geheimnis des Lebens endlich aufgeklärt 
wären. ;-)

von Reinhard R. (reirawb)


Lesenswert?

Ob Du eine Wert hexadezimal, oktal, binär oder dezimal darstellst, ist 
egal und eigentlich eine Frage der Les- und Interpretierbarkeit Deines 
Codes. Der Assembler macht daraus sowieso die dem Maschinencode 
entsprechenden Bits und Bytes. Wenn Du Dir den Maschinencode ansiehst, 
wird dieser meist auch im Hexadezimalformat dargestellt. Dies ist eben 
auch nur eine Art der Darstellung, Du könntest ihn Dir auch im 
Binärformat oder im Dezimalformat ansehen. Wäre aber viel 
unübersichtlicher :-)

Reinhard - der nie verstanden hat, warum IP-Adressen dezimal geschrieben 
werden, wo es sich doch um Bytes handelt, die hexadezimal viel 
verständlicher sind :-)

von Hc Z. (mizch)


Lesenswert?

Reinhard R. schrieb:

> Reinhard - der nie verstanden hat, warum IP-Adressen dezimal geschrieben
> werden, wo es sich doch um Bytes handelt, die hexadezimal viel
> verständlicher sind :-)

Ein Wunsch, der mit IPv6 in Erfüllung gehen wird.

von Purzel H. (hacky)


Lesenswert?

..der nie verstanden hat, warum IP-Adressen dezimal geschrieben
werden, wo es sich doch um Bytes handelt, die hexadezimal viel
verständlicher sind

Schon mal einen Hackerfilm gesehen. zB Sandra Bullock als Hackerin, die 
die Welt rettet ? Wenn man dann IP's sieht, die zB 192.168.344.39 
lauten, weiss man was Sache ist.

von Karl H. (kbuchegg)


Lesenswert?

Nebliger Tag schrieb:
> ..der nie verstanden hat, warum IP-Adressen dezimal geschrieben
> werden, wo es sich doch um Bytes handelt, die hexadezimal viel
> verständlicher sind
>
> Schon mal einen Hackerfilm gesehen. zB Sandra Bullock als Hackerin, die
> die Welt rettet ? Wenn man dann IP's sieht, die zB 192.168.344.39
> lauten, weiss man was Sache ist.

Dazu passend:

Schon alt, aber immer wieder gut!
http://www.stophiphop.com/modules/news/article.php?storyid=184

von Er (Gast)


Lesenswert?

Witzig

<bitchchecker> mach fire wall aus dann schick ich dir einen virus f...
<Elch> Nöö

von Rolf Magnus (Gast)


Lesenswert?

> Reinhard - der nie verstanden hat, warum IP-Adressen dezimal geschrieben
> werden, wo es sich doch um Bytes handelt, die hexadezimal viel
> verständlicher sind :-)

Kommt drauf an. Eigentlich können sie auch in Hex geschrieben werden 
(allerdings dann mit 0x vor den Teil-Zahlen), aber das unterstützen 
viele Programme heute nicht mehr. Zumindest unter Linux geht aber noch 
ein
1
ping 0x7f.0x00.0x00.0x01

oder gar
1
ping 0x7f000001

von Reinhard R. (reirawb)


Lesenswert?

Rolf Magnus schrieb:
>> Reinhard - der nie verstanden hat, warum IP-Adressen dezimal geschrieben
>> werden, wo es sich doch um Bytes handelt, die hexadezimal viel
>> verständlicher sind :-)
>
> Kommt drauf an. Eigentlich können sie auch in Hex geschrieben werden
> ...
Ja, man kann. Aber die allgemeine Schreibweise ist Dezimal. Ich wollte 
ja auch nur mal so bemerken, dass ich z.B. aus einer Netzmaske 
FF.FF.FF.F8 die Netzstruktur besser auslesen kann als aus 
255.255.255.248. Nur so am Rande.

Reinhard

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.