PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmiersprache aus HEX-Zahlen



Black-Hand
25.02.2001, 10:36
Hallo,

ich hab mal wo gehört das man allein mit Hex-zahlen programmieren kann!Wie heißt diese Sprache?Kennt die jemand?

Ich wollte einfach nur infos über die Sprache!

THX

knoedel
25.02.2001, 10:39
Maschinensprache, das zu lernen ist schwachsinn, lerne Assembler das ist einfach die Maschinensprache in etwas lesbarer Form.

Black-Hand
25.02.2001, 11:14
Hallo,

Nein nein ich will es nicht richtig lernen!Wenn ich ein Progz brauche dann code ich es mir in C!

Mich würde es einfach mal interessiern!Ein bisschen einlesen und vielleicht zwei drei Programm darin "coden"!

Hast du vielleicht einen Buch Tip zur Sprache?Oder unter was sollte ich suchen das ich das richtige Buch finde!

cu und THX

singleblue
25.02.2001, 11:26
Boah, da will wirklich jemand wisse, wie man nur mit Hilfe der Hex-Zahlen coded. Ist der Irre oder was? N Kumpel von mir hat sich mal von unserem Informatiklehrer lauter Zeugs darüber ausgeborgt, es aber dann doch sein gelassen, weil es so kopliziert war.
Lerne lieber Assembler, ist mehr oder weniger das gleiche, nur lesbar. Schau mal unter http://kickme.to/tiger nach, da gibt's Bücher. Ansonsten suche einfach nach dem Begriff Assemblerbuch, ich wurde sofort fündig. Aber ich gehe da doch lieber in die Bibliothek und leihe mir'n Buch darüber aus. 1. muß man dann nicht soviel Stromkosten bezahlen, da der PC doch hofentlich nicht die Ganze Zeit an ist und 2.ist das einfach besser für die Augen. Möchte nicht wissen, wie sich das anfühlt nen 1000 Seiten Buch am Pc durchzulesen.
Aber kann es echt empfehlen Assembler zu lernen. Damit kann man seine Prog bezüglich geschwinidigkeit verbessern, man lernt sehr viel über die Hardware und die funktionsweise von PC's dazu, aber vorsicht, total viel Theorie. Außerdem, kann man damit Treiber, Betriebssysteme usw. coden, aber dazu braucht man schon ein wenig Übung. Naja, Asm ist auch noch die Sprache, mit der die huptsächlich Progz gecrackt werden. Kurzgesagt, Asm ist sehr vielseitig und total schnell, aber auch genauso schwer anzuwenden/lernen.

Black-Hand
25.02.2001, 11:47
Hallo,

Ich weiß.Ich werde es auch nicht lernen!Mich interessiert das einfach!Ich kenne Assembler und programmiere auch darin!!(mehr oder weniger!).

Mich würde das einfach mal interessieren wie das ganz da so aufgebaut ist usw.

Ein Buch zu Assembler würde auch auch finden!(ich hab sogar eins!)

ABer mich interessieren die HEX-ZAHLEN!!

THX für euer schnellen antworten!

Falls jemand so ein Buch hat,kennt, bitte posten!

THX

RFC822
25.02.2001, 12:28
Man nehme ein Assembler-Programm, löse eventuelle Referenzen, Variablennamen etc. auf und übersetze das ganze in "Hex-Zahlen", sogenannte Opcodes.
Beispiel: einfaches COM-Programm für DOS.

In Assembler:


org 0x100

push cs
pop ds
mov ah,9
mov dx,HelloStr
int 0x21
mov ax,0x4C00
int 0x21

HelloStr db "Hello world",13,10,"$"


Erster Übersetzungsdurchgang:


CS:0100 0E ; push cs
CS:0101 1F ; pop ds
CS:0102 B4 09 ; mov ah,09
CS:0104 BA HelloStr ; mov dx,HelloStr
CS:0107 CD 21 ; int 21
CS:0109 B8 4C00 ; mov ax,4C00
CS:010C CD 21 ; int 21

; HelloStr
CS:010E "Hello world",13,10,"$"


Zweiter Durchgang:


0E
1F
B4 09
BA 0E 01
CD 21
B8 00 4C
CD 21
"Hello world" 0D 0A "$"


Endergebnis:


0E 1F B4 09 BA 0E 01 CD
21 B8 00 4C CD 21 48 65
6C 6C 6F 20 77 6F 72 6C
64 0D 0A 24


Wenn du das obige jetzt mit einem Hex-Editor in eine .com-Datei schreibst und die ausführst, gibt sie "Hello world" aus, wie das Assembler-Programm eben.

Genaueres über die Opcodes und ähnliches findest in der Intel Instruction Set Reference zu den Prozessoren, siehe http://developer.intel.com/design/pentium4/manuals/ .

knoedel
25.02.2001, 13:39
Jupp, so ist dass, genau dasselbe passiert übrigends mit allen Compilersprachen. Geh hin code ein C Proggie und compiliere es zu einer .exe dann nimmste einen Hexeditor und liest das .exe File ein, und schon haste dein Maschinenprogramm. Purer Assembler macht nichts anderes als die Mnemonics in Bitwerte zu codieren denn in endeffekt kann dem Rechner nur Bits/Bytes zugeführt werden, also wenn du gnadenlos sein willst dann nimm nicht einen Hexeditor sondern einen Bit Editor und löse alles in seine Bits auf !! Ist genau dasselbe nur noch etwas kryptischer !

singleblue
25.02.2001, 15:05
Wen willst denn du damit foltern, ein Progie, daß denCode in Bits ausgibt. Ich glaube nicht, daß damit jemand programmieren würden, naja vielleicht wäre es ja noch für Studenten interessant, die sich mit Maschinensprache und Prozessorprogrammierung auseinandersetzen. Kannst ja mal n Prog schreiben, indem man alles in Bit-Werten manipulieren kann, wie n Hex-Editor und das in die Rubrik, Programme die die Welt nicht braucht miteinordnen.
cu

Tharkun
25.02.2001, 15:40
Also wir haben das in Informatik gemacht ;) Turing Maschinen um genau zu sein, da programmierst du einzig und allein in 0 und 1. Schau dich mal im netz zu turing maschinen um (oder auch klopapiercomputer ;))

Bunny
25.02.2001, 17:17
Erst mal brauchst du ne vernünftigen Assembler-Referenz. Darin muss der Opcode für die Mnemonics stehen. Noch besser ist ne Opcodetabelle. Steht ja alles schon oben. Die Programme kannst du mit dem super modernen Programm Debug schreiben (Ist bei Microsoft Betriebsystem immer dabei :-). Also, starte Ms-Dos-Eingabeauffoderung, tipp debug ein. Mit ?zeichen kannst du erfahren was das Programm alles so drauf hat. Mit e 100 kann’s dann endlich losgehen. (offset 100h – .model tiny). z. b B4 0E AC CD 10 EB FB. Zwischen den Bytes muss man Space drücken(ein Byte sind zwei Hexzahlen zahlen: xx). Mit Return schließt man die Eingabe ab. Mit u100 kann man dann sein Werk an schauen. Wenn du das Programm speichern willst musst du erst den Zähler die Anzahl der Bytes des Programm mitteilen:
-rcx
CX 0000
:7
-n matrix.com
-w
Du kannst das Programm mit g107 auch starten.

toxic
25.02.2001, 18:08
HEX? Echte Programmierer benutzen Lochkarten. *g*

Man kann´s auch übertreiben...

[Dieser Beitrag wurde von toxic am 25. Februar 2001 um 19:09 Uhr editiert.]

morpheuz
25.02.2001, 19:00
oh man, es gibt auch leute die es wirklich nötig haben

b0nzai
25.02.2001, 19:06
Also, ich schliess einfach immer unterschiedliche Kontakte in meinem Rechner kurz, bis ich das gewünschte bekomme :D

b0nzai

Tharkun
25.02.2001, 19:34
Tiefer als ich kommst du damit aber nicht, ich habe ja schonmal auf den Klopapiercomputer hingewiesen. Turing Maschinen kannst du auch mit zwei Klopapierrollen basteln auf denen du dann deine bits hin und herschiebst bis dein Programm zu Ende ist, aufgrund der Unhandlichkeit von so viel Klopapier haben wir damals in Info allerdings einen Turing Maschinensimulator auf nem 386 gehabt ;)

RFC822
25.02.2001, 22:44
Natürlich gehts noch etwas einfacher, der Quantenmechanik und Biochemie sei Dank ;)

knoedel
26.02.2001, 06:03
Turnigmaschinen haben wir auch in Informatik gemacht, die Theorien sind ja ganz nett aber richtig damit zu proggen ist etwas aufwendig und Klopapier benutze ich nur um den Geschmack davon zu testen :D :D

Aber mal im Ernst, echte Maschinensprache coded kein normaler Mensch mehr der noch einen funken Verstand hat.

singleblue
26.02.2001, 10:56
Es mag ja sein, daß keiner mehr maschinensprache benutzt, aber es ist doch mal interessant zu sehen, wie das alles funzt und sich darüber lustig zu machen, wie man sich früher abrackern mußte.

Tharkun
26.02.2001, 13:32
Natürlich macht das niemand der bei Verstand ist, sonst hätten sie ja nicht darauf aufbauend höhere Programmiersprachen geschaffen. Aber ist auf jeden Fall mal interessant zu sehen wie das überhaupt funktioniert !

Bissle Offroad jetzt aber habt ihr mal so erste Rechenmaschinen gesehen, wo man seine Zahlen eingetragen hat und dann fein die Krubel dreht und dann kommt sogar das richtige raus ? Macht heute auch keiner mehr aber interessant wie das alles anfing und "damals" funktionierte.

toxic
26.02.2001, 14:34
Naja, ein paar Sachen weiß ich auswendig,
CD XX = INT XX
90 = NOP (Das braucht man zum Cracken ;))
66 = 32/16 Bit Operand Size Prefix (kommt vor einen 16bit-Befehl in einem 32bit Code-Segment und andersrum)
67 = Address Size Prefix

Sonst fällt mir grade nichts ein...

singleblue
26.02.2001, 14:34
Jup, hab letztens einige gesehen, man gleut garnicht,daß man damit mal gerechnet hat. A propos Rechenmaschinen, weiß hier irgendjemand, ob es nen Schaltplan von der Z3 gibt, war bisher nicht erfolgreich nach der Suche danach.

knoedel
26.02.2001, 16:59
hmm,
da fällt mir gerade die gute alte Zeitschrift 64'er ein, die Mutter aller PC Magazine, da gabs immer seitenlange Listings im Hexcode den man dann abtippen konnte :)) Das war noch Knocharbeit :)

Wowbagger
28.02.2001, 20:25
@Singleblue
http://www.zib.de/zuse/Inhalt/Kommentare/Html/0681/0681.html (zwar nur die Z1, aber vielleicht auch Interessant)

http://irb.cs.tu-berlin.de/~zuse/Konrad_Zuse/Z3-detail.htm
http://home.t-online.de/home/horst.zuse
http://irb.cs.tu-berlin.de/~zuse/Konrad_Zuse/en/Rechner_Z3.html
oder in deutsch:
http://irb.cs.tu-berlin.de/~zuse/Konrad_Zuse/de/Rechner_Z3.html