Hat bitte wer eine Assembler-Befehlsreferenz?
lima-city → Forum → Programmiersprachen → Sonstige Programmiersprachen
assembler
aufgerufenen punkt
beachten
befehl
befehlssatz
bit
controller
dokument
dokumentation
empfehlen
erweiterung
http
promille
prozessor
register
speichern
system
unbedingter sprung
unterschied
weit springen
-
Und/Oder kann mir wer diese Befehle erkären:
mov, cli, sti, times und den Unterschied zwischen call und jmp? Ich denke der Unterschied ist dass call nach den Ausführen wieder zum Aufrufpunkt zurückkehrt und jmp (was wohl für \"jump\" steht) nach dem aufgerufenen Punkt weitermacht.
Wenn möglich eine Referenz in deutsch.
Beitrag geändert: 3.3.2008 17:38:51 von lol4me -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
http://www.i8086.de/asm/8086-88-asm.html
:), das kann sich aber vom Prozesor zu Prozesor unterscheiden, musst einfach in die Doku deines CPUs schauen, aber die Befehle sollten auf allen Prozesoren gehen
greets -
Die von itagame genannte Referenz scheint (nach kurzem Überfliegen) etwas kurz zu sein. Ein moderner Prozessor kennt ja über 200 Befehle ^^
Ansonsten sieht sie aber nicht schlecht aus, die gängigsten Befehle sind sicherlich drin. Brauchst du irgendwo mal ein Detail oder willst du weitere Möglichkeiten kennenlernen, kann ich dir noch die Befehlsreferenz vom NASM empfehlen (nicht alles was dort steht muss auch für andere Assembler gelten): http://www.cs.uaf.edu/2003/fall/cs301/doc/nasmdocb.html
Eine gute deutschsprachige Doku kenne ich nicht, möglicherweise gibt es gar keine (vollständige). Selbst die gedruckte Intel-Befehlsreferenz die wir an der Uni haben ist nur auf englisch ^^
lol4me schrieb:
mov, cli, sti, times und den Unterschied zwischen call und jmp? Ich denke der Unterschied ist dass call nach den Ausführen wieder zum Aufrufpunkt zurückkehrt und jmp (was wohl für \'jump\' steht) nach dem aufgerufenen Punkt weitermacht.
call und jmp hast du schon richtig erfasst, wobei jmp ein unbedingter Sprung ist. Zu beachten ist dabei, dass immer nur near jumps möglich sind (also Sprünge innerhalb des aktuellen Speichersegments), aber das merkst du schon wenn du zu weit springen willst ;)
mov ist einer der wichtigsten Befehle: Er kopiert Daten, wobei das wahlweise 1, 2 oder 4 Bytes sind. mov kann folgende Transaktionen:
Register <-> Register
Register <-> Speicher
Speicher <-> Register
Nur Speicher <-> Speicher geht nicht, da die Länge fehlt.
Die anderen Befehle kenne ich nicht, lediglich times hab ich zumindest schonmal gesehen, kann jetzt aber nicht sagen was es tut (bin selber erst Assembler-Anfänger).
MfG,
thw
-
hmmm...
also wenn du in asssembler programmieren willst, solltest du gut englisch können!
und mal ehrlich, am besten sind immer noch die dokumente von AMD und Intel.
Die befehlsreferenz die von itagame ist nur für 16 bit prozessoren gedacht.
also fehlen die 32 und 64 bit befehle koplett.
und wenn dein System etwas anderes als DOS ist, wirst du auch probleme kriegen.
Die sache mit dem Englischen wird besser.
je mehr du liest desto besser verstehst du die Dokumentationen.
ich bin mal in englisch an ner 5 vorbeigeschrammt (5. klasse)
aber heute lese ich die original englischen dokumente und versteh sie selbst mit über einem promille noch super! das kommt mit der zeit -> übung übung übung.
und was noch hilft, ist jemand der ahnung hat, weiß wo die dokumente sind, weiß wonach man suchen muss und dir bei jeder frage helfen kann.
(so wie ich z.B.)
-
Ich habe kürzlich auch nach Informationen zur Assembler-Programmierung für Pentium-Systeme gesucht und dabei bin ich auf folgende Seite gestoßen:
http://de.wikibooks.org/wiki/Assembler
Die Seite bietet momentan nur Grundlegendes, aber es ist dennoch ein guter Einstieg in die Thematik. Wenn man sich wirklich mit der gesamten Materie befassen möchte kommt man um ein richtiges Buch nicht drumherum. Ich selbst habe mir eines gekauft das alles recht anschaulich beschreibt. Darin sind auch einige Befehlssatz-Erweiterungen (MMX & SSE) beschrieben. Leider weiß ich nicht ob ich es hier nennen darf (von wegen Werbung und so) aber wenn du möchtest schicke ich dir eine PN.
MfG
DCBlaze
Beitrag geändert: 15.4.2008 21:21:02 von dcblaze -
Weiß ja nicht genau, was du vor hast, mit \"AVR Studio\" (Atmel Prozessoren) kannst du ein paar einfache Examples machen, da hast du auch die Möglichkeit zu debuggen und nachzusehen, was die einzelenen Befehle im Speicher so alles anstellen
-
call und jmp hast du schon richtig erfasst, wobei jmp ein unbedingter Sprung ist. Zu beachten ist dabei, dass immer nur near jumps möglich sind (also Sprünge innerhalb des aktuellen Speichersegments), aber das merkst du schon wenn du zu weit springen willst ;)
Bei unserem Controller an der Schule gibt es noch den Befehl ljmp, bei dem wird dann die absolute Adresse angegeben ;)
Unser Controller ist der Atmel 89C51ED2 -
Hi, eine gute deutsche Anleitung: http://www.robsite.de/tutorials.php?tut=assembly von Thomas Peschko, gibts als PDF.
Dann ist auf jeden Fall das klassische Tutorial von Iczelion zu empfehlen: http://win32assembly.online.fr/
Und darauf hat einer unserer Trainer geschworen (Der schreibt zum Spass BIOSe für x86er ...): http://www.jegerlehner.ch/intel/index_de.html
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage