Bits, bytes, words und dwords - wenn zu verwenden, was in der Montage?
Ich versuche Assembler zu lernen (mehr wie kämpfen) und ich haben die Datentypen bytes, words, dwords usw..
Was wirklich verwirrt mich ist, wenn Sie wissen, verwenden Sie einen über den anderen. Offensichtlich wollen Sie das konservativste option, aber wie kann ich wissen, zu wählen ein byte über ein Wort? Zum Beispiel 1 Wort = 16 bits oder 2 bytes. Heißt das, ich kann passen 16 Zeichen innerhalb 1 Wort? Damit zu retten, das alphabet würde ich deklarieren müssen 2 Wörter?
Gleiche gilt für die Register (16 bit, 32 bit und 64 bit). Ich weiß, Sie können kleinere Register wie al
und ah
statt eax
wenn Sie so manipulieren, dass die kleineren Größen der Daten. Für ein 16-bit-register können Sie einen Daten-Typ, die größer als ein Wort hinein, denn da es 16 bit, kann es passen ein 16-bit Wort?
Umhüllung meinem Kopf, um dieses ganze Konzept ist schwierig. Wenn jemand zufällig irgendwelche guten Mittel oder Informationen, die ich mir ansehen kann, das wäre toll. Prost!
Deine Frage macht für mich keinen Sinn.
InformationsquelleAutor user99545 | 2012-02-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wahl der richtigen Daten-Breite zu verwenden, kann anfangs schwer sein, aber es wird einfach, sobald man ihn verwendet. Hier sind einige Fragen zu berücksichtigen, mit die wichtigsten Aspekte, die zuerst erwähnt.
Wird der Algorithmus korrekt Verhalten? Sagen Sie, dass Sie wollte, um zu berechnen, 180 × 247 und drucken Sie das Ergebnis. Jeder operand passt in ein byte ohne Vorzeichen, aber das Produkt nicht. Oder sagen Sie, Sie wollten darstellen, die Größe einer Datei, die leicht mehrere Megabyte groß. Dann müssen Sie etwas breiter als ein 16-bit-Ganzzahl zur Darstellung der Größe.
Was ist der input/output-format? Wenn Sie erwarten, dass andere code die Funktion aufrufen, die mit einem array von bytes ist, müssen Sie Lesen die Daten-Elemente als Byte, es gibt keine andere Wahl. Sie können zu konvertieren eine breitere Darstellung, die vorübergehend für die Verarbeitung, aber.
, Wie viel Speicher Sie verwenden? Wenn Sie eine Milliarde Datensätze und jeder Datensatz verwendet ein byte, dann ist die Gesamtzahl der Daten, die Größe wäre 1 GB. Wenn jeder Eintrag einen dword-Wert, dann ist die gesamte Größe der Daten würde 4 GB. Kleine Unterschiede, wenn Sie multipliziert mit riesigen zahlen geben große Unterschiede.
In Zusammenfassung, ist es eigentlich egal, welche Daten-Breite, die Sie verwenden, solange Sie schreiben können, die richtigen Codes Schnittstelle mit anderen code, und halten Sie die Speichernutzung klein genug, dass Sie Ihr Programm auszuführen. Also mit dword als Standard wäre keine schlechte Idee.
InformationsquelleAutor Nayuki
Etwas ist nicht ein Zeichen. Es ist eine einzelne binärziffer, 0 oder 1. Zwei bits entweder 00, 01, 10 oder 11. Lesen Sie, binäre Arithmetik (und die Umstellung auf/von dezimal-zu überprüfen, Ihre Antworten) und Darstellungen von Daten-Typen. Dies ist die grundlegende Dinge, die nicht gehen ohne absolut sicher, was ein byte ist und welche Werte es enthalten kann, und was könnten Sie verwenden es für.
word
ist ein Daten-Typ, 16 bit oder 2 bytes, die in unserem Fall. Also, wenn wir die paraphrase Ihre Frage, es wird:Dies ist die Inkohärenz erwähnt von @Ignacio Vazquez-Abrams.
InformationsquelleAutor aib