Hi folks...
habe da ein kleines Begriffsproblem... und ihr Spezialisten könnt mir da sicher weiterhelfen...
Was genau versteht man unter "...hart kodierter Software..."?
Ist darunter auch zu verstehen dass zB. SW auf ein ROM oder EEPROM geschrieben wird? Ist das "hart kodiert"?
Vielen Dank für eure Hilfe...
Gruss,
Turbo
Programmieren - alles kontrollieren 4.941 Themen, 20.708 Beiträge
Nee. Jeder Prozessorbefehl entspricht einer Zahl. So steht zB. 0x90 für den Befehl "nop". Du kannst nun in ein Assemblerprogramm entweder
nop schreiben oder DB 0x90. Das zweite ist dann hart kodiert. Zum harten kodieren könntest du auch nen Hexeditor nehmen und nacheinander Zahlen eintippen...nur: du kommst nicht weit.
Dank Dir vielmals für Deine Antwort... und entschuldige meine Unwissenheit...
aber wo wird dann der im Assemblerprogramm hart kodierte Code abgelegt? Und WAS steht dann WIE im ROM drinn?
Vielen Dank für Deine Mühe,
Gruss,
Turbo
Deine Unwissenheit sei dir vergeben oh Unwürdiger *g.
Der harte Code wird genauso abgeladen wie jeder andere Code auch.
B.:
für .com:
org 0x100
push cs
pop ds
mov ax, 3
DB 0x90
nop
der Prozessor führt dann DB 0x90 und nop genauso aus, weil nop vom Assembler zu 0x90 übersetzt wird.
Im ROM steht meist so Zeuchs wie das BIOS drin. ... hat aber nix mit Assembler zu tun.
Tut mit leid JB aber so eine definition von Hartcodiert hab ich noch nie gesehen. Du beschreibst den Unterschied zwischen Maschinensprache und Maschinencode.
Ob ein Programm hartkodiert ist, bezieht sich meist darauf wie der Quellcode aufgebaut ist! In Hartcodierten Programmen wird an jeder stelle an der ein Wert verwendet wird eine Zahl eingesetzt, nicht hardcodierte Programme verwenden an dieser Stelle eine Variable die mit dem Wert vorbelegt ist. Der Vorteil von hardkodierten Programmen ist das sie unter Umständen minimal schneller sind, dafür sind nicht Hardcodierte Programme leichter zu warten.
z.B: ein programm das zuerst 100 zufallszariablen in einem Array erzeugt und dann in einem zweiten Array die Mittelwerte je zweier Zufallswerte speichert. (Sinnlos aber lehrreich)
Hardkodiert (fast echter Code)
int i;
int *a = new int[100];
for (i=0; i a[i] = rand;
int *b = new int[99];
for (i=0; i b[i] = (a[i]+a[i+1])/2;
Nicht Hardkodiert
int ARRAYSIZE = 100;
int i;
int *a = new int[ARRAYSIZE];
for (i=0; i
Jetzt hab ich's glaub gerafft...
thx a lot jamesbomb...
cu out here...
Gruss,
Turbo
Kaum passt man mal ein paar tage nicht auf, schon kursieren hier die interesantesten gerüchte. Was dir James Bomb da so schön erklärt hat ist der Unterschied zwischen Maschinensprache(Assembler) und Maschinencode (das was dein kleiner AMD/Intel versteht)
Ob ein Programm hartkodiert ist, bezieht sich meist darauf wie der Quellcode aufgebaut ist! In Hartcodierten Programmen wird an jeder stelle an der ein Wert verwendet wird eine Zahl eingesetzt, nicht hardcodierte Programme verwenden an dieser Stelle eine Variable die mit dem Wert vorbelegt ist. Der Vorteil von hardkodierten Programmen ist das sie unter Umständen minimal schneller sind, dafür sind nicht Hardcodierte Programme leichter zu warten.
z.B: ein programm das zuerst 100 zufallszariablen in einem Array erzeugt und dann in einem zweiten Array die Mittelwerte je zweier Zufallswerte speichert. (Sinnlos aber lehrreich)
Hardkodiert (fast echter Code)
int i;
int *a = new int[100];
for (i=0; i a[i] = rand;
int *b = new int[99];
for (i=0; i b[i] = (a[i]+a[i+1])/2;
Nicht Hardkodiert
int ARRAYSIZE = 100;
int i;
int *a = new int[ARRAYSIZE];
for (i=0; i
Hi Dreamforger...
habe übers Wochenende noch bei ein paar weiteren Typen nachgefragt... und da meinten die Jungs genau dasselbe wie Du hier jetzt geschrieben hast... (am Anfang war's ja ziemlich verwirrend, da ich nur JB's Antw. gelesen hab.... aber da Du jetzt unabhängig genau die gleiche Antwort geschrieben hast ist die Sache jetzt so klar wie ein Gebirgswässerchen... )
Dank Dir vielmals...
cu,
Turbo