Hi leuts
ich wollt fragen ob einer von euch ein Tutorial / Manual zu Binärcode/Maschinencode hat?
ich möchts nicht lernen, aber mal son bissle reinschnuppern![]()
mfg,
André
Hi leuts
ich wollt fragen ob einer von euch ein Tutorial / Manual zu Binärcode/Maschinencode hat?
ich möchts nicht lernen, aber mal son bissle reinschnuppern![]()
mfg,
André
Ich nehme an du meinst Assembler, da man Biärcode wohl kaum "lernen" wird...
Es ist hilfreich wenn du dich vorher mit der Zahlendarstellung in Rechnern vertraut machst. Grundwissen über den Aufbau und die Arbeitsweise von Prozessoren sind Pflicht.
Um leichter zu verstehen was du tust könntest du dir einen "kleinen Prozessor" (zB: Microcontroller 8051 oä) besorgen und damit zu arbeiten beginnen.
Ich habe dazu das Buch "Microcomputertechnik" ISBN:3-446-22089-5 verwendet. Ich empfand das Buch als sehr einsteigerfreundlich.
Hier kannst du dir ja einmal ansehen was dich erwartet:
http://andremueller.gmxhome.de/toc.html
http://your.orf.at/teletext/cbarchiv....htm#ASSEMBLER
http://www.oszkim.de/materi/edemi/inhalt.html
http://members.aol.com/peschko/
Gesegnet seien jene, die nichts zu sagen haben und den Mund halten. (Oscar Wilde)
Ich nehme an, wenn er schreibt "Binärcode/Maschinencode", dann meint er auch Binärcode/Maschinencode.Zitat von georg
Ich gehe einmal davon aus, dass du den Instruktionscode der 80x86-kompatiblen CPUs meinst.Zitat von Quiz-Master
Als Grundregel kannst du dir merken, dass der Code ein allgemeines Standardformat hat, d.h. bei verschiedenen Instruktionen sind Informationen wie z.B. die adressierten CPU-Register immer gleich codiert.
Ein einfaches Beispiel ist die Instruktion "XOR DWord reg32" - in den folgenden Beispielen ein 32bit XOR zweier Register.
Das allgemeine Format dieser Instruktion ist (binär:)
0011000[i]w [mod][TTT][r/m]
- also 0x30 oder 0x31, jeweils plus einem Byte als Argument
w ist ein Bit, also entweder 0 oder 1; es steuert, ob die Register AL, BL, CL und DL oder die
Register AX, BX, CX und DX adressiert werden.
Die Instruktion ist außerdem vom Betriebsmodus des Prozessors abhängig (konkret vom sogenannten D-Bit des aktiven Codesegments), das in unserem Beispiel (im Protected Mode unter einem UNIX-Betriebssystem) dafür sorgt, dass die Register mit 32 bit Länge benutzt werden (sie werden dann üblicherweise EAX, EBX, ECX und EDX genannt)
mod sind die ersten 2 Bit des Argumentbytes, sie legen beispielsweise fest, ob weitere Byte zur Adressierung von Speicheradressen oder direkt angehängten Daten folgen, oder ob direkt z.B. CPU-Register adressiert werden, wie in unserem Beispiel.
TTT sind 3 Bits, und sie dienen zu Instruktionsspezifischen Zwecken, in dieser Instruktion haben sie die gleiche Bedeutung wie die 3 r/m bits.
r/m steht für register/memory, das sind 3 Bits, in denen, wie der Name schon sagt, beispielsweise Register adressiert werden, oder z.B. auch Speicher über eine in einem Register gespeicherte Adresse adressiert wird.
In den Beispielen wird deutlich, wie die Register bei dieser Instruktion codiert sind:
0x31 0xC0 == 00110001 11[rot]000[/rot][blau]000[/blau] == xorl [rot]%eax[/rot],[blau]%eax[/blau]
0x31 0xDB == 00110001 11[rot]011[/rot][blau]011[/blau] == xorl [rot]%ebx[/rot],[blau]%ebx[/blau]
0x31 0xC9 == 00110001 11[rot]001[/rot][blau]001[/blau] == xorl [rot]%ecx[/rot],[blau]%ecx[/blau]
0x31 0xD2 == 00110001 11[rot]010[/rot][blau]010[/blau] == xorl [rot]%edx[/rot],[blau]%edx[/blau]
0x31 0xC2 == 00110001 11[rot]000[/rot][blau]010[/blau] == xorl [rot]%eax[/rot],[blau]%edx[/blau]
0x31 0xD9 == 00110001 11[rot]011[/rot][blau]001[/blau] == xorl [rot]%ebx[/rot],[blau]%ecx[/blau]
Wenn man ein paar Instruktionen auswendig weiß, und dieses allgemeine Instruktionsformat kennt, kann man mit halbwegs akzeptablem Aufwand ohne besondere Hilfsmittel Maschinencode schreiben - ein Editor, mit dem jedes Byte erzeugt werden kann, oder eine UNIX-Shell, die octale Escapesequenzen ermöglicht, reicht dafür aus.
MfG,
octogen
Segmentation fault (core dumped)
jo ihc habe binärcode gemeint ^^
ich habe assembler gelernt und das hat mich schwer beeindruckt... ^^
deswegen wollt ich mal sehen wie sowas funktioniert!
und thx octogen das hat mir echt geholfen!
aber hast du nicht noch irngedne liste mit den befehlen für die prozessoren? google leider schon ewig, aber ohne ergebnis :'(
hab sogar schon entwickler von asm's gefragt nicht mal die konnten mir helfen ^^
mfg,
André
Google mal nach The Art Of Assembly.
mfg Bunny
Wir denken nur, wenn wir mit einem Problem konfrontiert werden. John Dewey
Guckst du hier, steht alles drin:
http://developer.intel.com/design/pe...als/253666.htm
ui thx
hab da auch gesucht aba *blind bin*![]()
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)