Diskussion:Assembler-Programmierung für x86-Prozessoren/ Grundlagen

Seiteninhalte werden in anderen Sprachen nicht unterstützt.
Aus Wikibooks

Ich bin kein blutiger Anfänger, weshalb die Wichtigkeit meines Problemes nicht gut einschätzen kann, da ich alles verstanden habe. Aber ich fände es gut, wenn irgendwo mal erwähnt wird, dass (in der Computerwelt) Hexadezimale Zahlen dadurch gekennzeichnet werden, dass man ein "x" dranhängt, bevor diese Notation verwendet wird (unten bei den Bereichen des ASCII). -- 84.151.244.32 13:41, 13. Mai 2005 (UTC)

negativen Zahlen[Bearbeiten]

Im Tutorial steht folgendes: Beim Rechnen mit negativen Zahlen kann es zum Überlauf (engl. Overflow) kommen. Bei einer negativen 8 Bit Zahl lassen sich beispielsweise nur Zahlen zwischen -128 bis +127 darstellen. Im folgenden Beispiel werden die Zahlen 100 und 50 addiert:

 __01100100 (100)
 + 00110010 (50)
 Ü 11
 ------------
 __11010110 (-21)

Das Ergebnis müsste nun eigentlich 170 sein, was aber nicht mehr im Bereich von -128 bis +127 liegt. Wenn wir die Zahl allerdings als vorzeichenbehaftete Zahl interpretieren, erhalten wir das Ergebnis -21.


aber 100 + 50 wäre doch 150 und nicht 170? und wie kommt man nun auf -21? (11010110)128+64+16+4+2=214? oder (00101001)32+8+1=41? oder (00101000)32+8=40? oder (11010011)128+64+16+2+1=211? oder (00101100)32+8+4=44? Ich habe versucht beim Umrechnen mitzudenken dass ja eins dazugezählt wurde, ich komme aber trotzdem nicht zu dem richtigen Ergebnis.


Das Zweierkomplement berechnet sich so: Das fehlende oberste Bit wird ausgeborgt und vor die 0 geschrieben, also aus 0 wird 256. Anschließend wird das normale Ergebnis subtrahiert also 256 - 170 = 86. Nun das Vorzeichen davor setzen, damit ist das Ergebnis -86!
Gleiches gilt für die 150. das oberste Bit wird ausgeborgt 256 - 150 = 106. Anschließend wird es vorzeichenbehaftet gelesen, weil wir uns ein Bit ausleihen mussten. Damit ist das Ergebnis -106. Addiert man zur -106 eine einfache 106 so muss das Ergebnis 0 sein.
Das zweierkomplement darf nicht mit dem einerkomplement (NOT) verwechselt werden, da ist das Ergebnis 85.
Die Zahlen 0 bis 127 werden normal dargestellt die Zahl
128 ist -128
129 ist -127
...
169 ist -87
170 ist -86
...
255 ist -1
(ThePacker) -- ThePacker 15:11, 7. Jul 2006 (UTC)
Das Ergebnis für den obigen Fall ist damit -106 256-150 = 106

"Unser Programm muss den Computer wissen lassen, ob er das Ergebnis als Zweierkomplement oder als vorzeichenlose Binärzahl ansehen muss." Wie lasse ich den Computer das wissen, bzw. wie macht mein Programm das? Wird das später erklärt? Wiesenkraut 19:12, 12. Apr. 2013 (CEST)[Beantworten]

Eigentlich muss es der Programmierer wissen, ob das Ergebnis aus einer vorzeichenbehafteten oder vorzeichenlosen Rechnung stammt. Und er muss es im weiteren Rechengang berücksichtigen. -- Klaus 22:46, 22. Apr. 2013 (CEST)[Beantworten]

Neuer Standard[Bearbeiten]

Sollte sich so ein Lehrbuch nicht nach dem neuen Standard richten und KiB anstatt KB (usw..) verwenden? Ich meine einer muss doch mal den Anfang machen und die richtige Bezeichnung verwenden...

--Anonym001 20:48, 26. Feb 2006 (UTC)

Die neuen Bezeichnungen scheinen sich immer mehr durchzusetzen, also aendere ich das mal ab wo ich beim Lesen drauf stolpere. Havaniceday 07:29, 20. Feb. 2011 (CET)[Beantworten]

Zeichensätze[Bearbeiten]

Bevor Unicode die Weltbühne betrat und auch noch heute ist die Familie der ISO-8859-Zeichensätze wichtig. M.E. ist insb. ISO-8859-1 der einzige wirklich weit verbreitete und fast überall akzeptierte echte 8-Bit-Zeichensatz. Fast alle Unix-Systeme benutzen ihn und in der HTML-Welt ist er ebenso beliebt (jeder Browser beherrscht ihn). Gruß --Mrieken 15:12, 7. Jun 2006 (UTC)

Noch eine Anmerkung zu ASCII: ASCII ist ein 7-Bit-Code! Zitat aus wikipedia "Keine dieser Acht-Bit-Erweiterungen sollte aber als ASCII bezeichnet werden, um Verwirrung zu vermeiden – ASCII bezeichnet nur den einheitlichen Sieben-Bit-Code." FG --Michael R. 17:29, 8. Jun 2006 (UTC)

Fachgesimpel[Bearbeiten]

"Den Zahlenwert X erhält man durch aufsummieren aller Ziffern zi, die mit ihrem Stellenwert bi multipliziert werden:"

=> das ist für anfänger unverständlich, die mathematische Formel danach sowieso!! Das Fachgesimpel hat gleich in der Einführung am Anfang nix zu suchen. Die Form: 125 dezimal 1 * 10^2 + 2 * 10^1 + 5 * 10^0

1011 binär 1 * 2^3 + 0 * 2^2 + 1 * 2^1 + 1 * 2^0

ist tausendmal verständlicher, und das formelzeug völlig überflüssig. das verwirrt nur ziemlich, zumindest ging es mir so. das ist ein schlechter einstieg für ein buch und schreckt vor dem weiterlesen ab!

Zustimmung 84.174.77.95 20:44, 1. Mai 2007 (CEST)[Beantworten]

Umrechnen vom Dualsystem ins Hexadezimalsystem[Bearbeiten]

Es ist im Kapitel folgende Zahl gegeben: 10 1011 1101

Danach ist zu lesen: "Anschließend rechnen wir die Blöcke einzeln um:

10 = 2 1110 = E 1101 = D [1011101101]2 = [2ED]16"

Muss der 2. Block nicht den Wert 1011 haben? Dann ergäbe die Umrechnung 2BD. Ich bin mir ziemlich sicher, dass das ein Fehler ist und bitte jemanden, der sich damit auskennt, um eine Korrektur. --87.123.8.117 11:45, 27. Mai 2007 (CEST)[Beantworten]