ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Programmierung > Welcher Assembler ist der Beste? | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
09.03.2009, 11:16 Uhr Mindshadow Posts: 1 Nutzer |
Ich beschäftige mich schon seit einiger Zeit mit 6502/6510-Assembler-Programmierung auf dem C-64 und interessiere mich auch für 68k-Assembler. Welche Tools (Assembler, Diassembler, Monitore etc.) sind Eurer Meinung nach die Besten? Danke und Gruss, Mindshadow [ - Antworten - Zitieren - Direktlink - ] |
09.03.2009, 11:31 Uhr MaikG Posts: 5172 Nutzer |
ASMPro [ - Antworten - Zitieren - Direktlink - ] |
09.03.2009, 12:29 Uhr Gurujaeger Posts: 164 Nutzer |
Vasm Hat den Vorteil das er auch mit 6502 und PPCs etc. was anzufangen weiß und zu VBCC paßt! Also jetzt und auch in zukunft braucht es da nur ein Tool für alte,aktuelle und neue Projekte! Außerdem ist Frank Wille auch immer noch am machen (Letzte Version Vasm ist vom 17.01.2009),im Gegensatz zu anderen Projekten die schon seit mehreren Jahren mindestens stehen obwohl Fehler bekannt sind. [ - Antworten - Zitieren - Direktlink - ] |
09.03.2009, 15:00 Uhr AGSzabo Posts: 1663 Nutzer |
@Gurujaeger: ich benutze phxass, das ist der vorgänger von vasm und schon auch sehr gut. noch ne frage: wie debugge ich wenn die herkömmlichen tools alle nicht funktionieren (enforcer, muforce, guardian)? da gibts zB den powervisor oder so aber wie benutzte ich die zum debuggen einer library?? der winuaeenforcer bringt bei nem absturz so viele hits das man nicht schnell genug das logfenster anhalten kann! gruesse, Andreas -- e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110 [ Dieser Beitrag wurde von AGSzabo am 09.03.2009 um 15:05 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
10.03.2009, 18:48 Uhr Holger Posts: 8116 Nutzer |
Zitat:Spezielle Tools oder Modi zum Debuggen einer Library gibt es afaik nicht. Da hilft nur, ein kleines Testprogramm zu schreiben, das die Library benutzt, und dieses zu debuggen, während man gleichzeitig sicherstellt, dass kein anderes Programm die Bibliothek benutzt. Zitat:Ich schätze, genau dafür wurde die Option, den Output in eine Datei zu schreiben, geschaffen... mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
10.03.2009, 22:37 Uhr DieterG Posts: 164 Nutzer |
@Holger: Es gab da mal LibSnooper, damit konnte man alle libraryaufrufe mitschreiebn, und das war recht einfach zu benutzen. Aber ich weiß nicht, auf welchem OS das lief, wird eventuell auf neueren nicht mehr richtig funktionieren, unter os4 stürzt es jedenfalls bei der auswahl einer funktion einer library sofort ab, aber das ist ja auch nicht der Sinn des programmes gewesen, unter os3.9 könnte es eventulle noch arbeiten, müsste man mal testen. Als Assembler nutze ich auch den ASM-Pro,der hat zwar einige Fehler, aber die kennt man, und kann sie leicht umgehen. Der erzeugte Code ist jedenfalls fehlerfrei und man hat sozusagen direkt ein komplette IDE, was bei vasm ja nicht der Fall ist. Später kann man seinen Code immer noch durch den vasm schicken, wenn er erstmal unter ASM-Pro läuft, die Eigenheiten kann der beiden Assembler kann man mittels suchen/ersetzen (auch automatisiert) relativ leicht konvertieren. [ - Antworten - Zitieren - Direktlink - ] |
10.03.2009, 22:58 Uhr AGSzabo Posts: 1663 Nutzer |
@Holger: >Ich schätze, genau dafür wurde die Option, den Output in eine Datei zu schreiben, geschaffen... mit "winuaeenforcer 2" (wie im .txt file angegeben) geht es jedenfalls nicht. unter windos stürzt es ab unter linux passiert garnix ausser das alles ganz langsam wird... -- e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110 [ - Antworten - Zitieren - Direktlink - ] |
11.03.2009, 08:21 Uhr Thore Posts: 2266 Nutzer |
Kannst Du die LibFuncs als Unterprogramme testen, ohne Lib-Aufruf sondern direkt in einem Testprogramm? Wenn sie dann funktionieren, kannst Du sie in die Lib zurückschreiben. [ - Antworten - Zitieren - Direktlink - ] |
11.03.2009, 08:34 Uhr AGSzabo Posts: 1663 Nutzer |
@Thore: nein, das hängt ziemlich alles zusammen. was ich machen kann und mache ist das ich an bestimmten stellen "stops" einbaue und/oder reigster nach $70000 oder so schreibe und dann mit nem monitor da hin schaue um zu sehen ob meine variablen die richtigen werte beinhalten. natürlich ist das eine ziemliche fitzelarbeit... gruesse, Andreas -- e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110 [ - Antworten - Zitieren - Direktlink - ] |
11.03.2009, 08:48 Uhr Thore Posts: 2266 Nutzer |
Da solltest Du vorher Speicher reservieren und den Zeiger darauf der Lib mitgeben, z.B. nach a0 speichern, dann die Lib aufrufen und dort a0 als Debug-Speicherstelle benutzen. Zwar klappt es meist die Adresse direkt zu verwenden, doch sobald benötigte Daten drinstehen kann es seltsame Auswirkungen haben. Was du auch machen kannst, sind Textausgaben nach stdout. [ - Antworten - Zitieren - Direktlink - ] |
12.03.2009, 11:19 Uhr Holger Posts: 8116 Nutzer |
Zitat:Das kann Snoopy auch. Hier geht's aber um mehr als nur die Aufrufe mitloggen. Zitat:Versteh ich nicht. Ich hab früher mit Devpak und dessen Debugger MonAm gearbeitet und konnte problemlos in Library-Funktionen wie in normale Unterprogramme schrittweise hineingehen oder auch ganz normale Breakpoints setzen. Und die Variablen inspizieren natürlich auch. Zitat:Dann kann man auch gleich einen Bereich innerhalb der eigenen Library-Struktur dafür reservieren. Allerdings sollte das sowieso der Bereich sein, in dem die Variablen liegen, also wozu dann noch mal woanders hin kopieren... mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
12.03.2009, 14:43 Uhr AGSzabo Posts: 1663 Nutzer |
@Holger: >Versteh ich nicht. Ich hab früher mit Devpak und dessen Debugger MonAm gearbeitet und konnte problemlos in Library-Funktionen wie in normale Unterprogramme schrittweise hineingehen oder auch ganz normale Breakpoints setzen. Und die Variablen inspizieren natürlich auch. Das wäre uferlos bis ich mit tracen erstmal an der fraglichen stelle angekomen bin. dazwischen liegt eine wait-message schleife u.a., so dass ich beim anhalten im rom lande... grusse, Andreas -- e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110 [ - Antworten - Zitieren - Direktlink - ] |
13.03.2009, 10:16 Uhr Holger Posts: 8116 Nutzer |
Zitat:Dafür benutzt man dann ja auch Breakpoints. Ich versteh immer noch nicht, wo nun eigentlich Dein Problem liegt. Libraries kann man mit exakt den gleichen Mitteln debuggen, wie ein normales Programm. mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
13.03.2009, 10:20 Uhr AGSzabo Posts: 1663 Nutzer |
@Holger: >Dafür benutzt man dann ja auch Breakpoints. und wie finde ich die stelle für den bp? -- e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110 [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 10:31 Uhr Holger Posts: 8116 Nutzer |
Zitat:Wie würdest Du es denn bei einem normalen Programm machen? mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 11:42 Uhr Thore Posts: 2266 Nutzer |
Zitat:Klar kann man eine Variable innerhalb der Lib nehmen, man muss sie dann eben nur anzeigen, das war mein zweiter Vorschlag mit dem eingebauten print nach stdout. Möchte er aber in einem Hex-Editor schauen, muss er die konkrete Adresse wissen wo der Wert drinsteht, deshalb hat er das so angefangen. Wenn er Register verwendet, stehen die Werte (noch) nicht in Variablen. [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 12:39 Uhr Holger Posts: 8116 Nutzer |
Zitat:print nach stdout in einer Library hat einige Tücken... Zitat:Die konkrete Adresse kennt er für dynamisch angelegten Speicher natürlich auch nicht, es sei denn, er verfolgt das Testprogramm mindestens bis zu der Stelle, an der der Speicher reserviert wird. Dann kann er es aber genausogut bis zu der Stelle verfolgen, an der die Library geöffnet wird, und kennt somit auch die Basisadresse für die Variablen innerhalb der Library. Letztendlich ist Dein Vorschlag, die Routinen wie normale Unterprogramme zu debuggen, immer noch der beste. Wenn man die Routinen nicht isolieren kann, linkt man halt die gesamte Library statisch mit dem Testprogramm und erhält ein Programm, mit dem jeder Debugger, auch source-level Debugger, klarkommen sollte. Wo jetzt AGSzabos Probleme liegen, wissen wir nicht. Oder? mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 13:37 Uhr Thore Posts: 2266 Nutzer |
Zitat:Jupp, das wäre ein geeigneter Weg. Wobei ein Einbinden der Unterroutinen kein Problem sein sollte, gerade wenn sowieso alles in Assembler ist. Ein movem.l vorn und hinten um die Register zu retten, und es sollte sicher sein... Zitat:Die Probleme liegen wohl eher darin begründet, daß er erst anfängt Programmieren zu lernen. Da darf er ruhig mal Erfahrungen sammeln. [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 14:21 Uhr Andreas_Wolf Posts: 2980 Nutzer |
> daß er erst anfängt Programmieren zu lernen Klick mal auf den Link in seinem Profil. Siehe z.B. auch: http://www.amiga-news.de/de/news/AN-2001-08-00015-DE.html http://www.amiga-news.de/de/news/AN-2002-11-00136-DE.html [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 14:59 Uhr Thore Posts: 2266 Nutzer |
Zitat:Habe ich ihm da womöglich unrecht getan? Wenn ja, sorry dafür. Allerdings wunder ich mich dann über diverse Fragen... [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 15:06 Uhr AGSzabo Posts: 1663 Nutzer |
oh, danke für die links. die verschleiern aber, das mein zweitjüngstes projekt eine ripper-library namen eXternal Format Rippers (XFR) mit clients änlich xad war (auch auf meiner hp). mit dem programmieren ist es bei mir so, dass ich seit 2003 fast nix mehr damit gemacht habe und jezt aber mein neustes projekt "XUI", eXternal User Interfaces weitergeführt habe, aber vergessen habe wie man sowas debuggt. es widerstrebt mir irgendwie im code gezielte endloschleifen zu setzen um den prozessor da abzufangen. ich habe - veilleicht unbegründete - zweifel dass ich damit weiterkomme und blicke da jezt einfach nicht durch. darum habe ich hier mal gefragt. aber das wird schon wieder. wenn ich nach 6 jahren der abstinenz mein konzept noch verstehe dann ist das imo gut. ps: die links zu den download lha-archiven vom afilter sind veraltet. bitte geht bei i. den weg ueber meine amiga hp. -- e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110 [ Dieser Beitrag wurde von AGSzabo am 17.03.2009 um 15:15 Uhr geändert. ] [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 15:12 Uhr AGSzabo Posts: 1663 Nutzer |
@Thore: nein, hast du nicht. ich bin in vielen punkten wieder zum anfänger mutiert wegen langzeitiger abstinenz von der materie. aber nochmal rein zu kommen das klappt schon irgendwie. -- e-uae 39bb2 - A4000d 39bb2 - Cyberst.MK3 060 50mhz 128mb - Cybervis. - Ariadne_II - ide DVD und 320gb HD (nur 128gb) - HD Floppy -- A500 3.1 adide 50mb -- Duron 1600mhz Ubuntu Linux / WinXP -- BenQ FP93G TFT - 1048 like CRT - HP psc1110 [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 16:09 Uhr Holger Posts: 8116 Nutzer |
Zitat:Mit Endlosschleifen fängt man ja auch nichts ab. Wenn Du in Assembler programmierst, setzt Du z.B. einfach eine illegal Anweisung an die Stelle, und der Debugger fängt selbige ab und hält die Ausführung an dieser Stelle an. Der sprachunabhängige Weg besteht darin, einfach an der gewünschten Stelle im Debugger einen Breakpoint zu setzen, über das Menü, einen Tastendruck, was auch immer der Debugger dafür anbietet. Der Unterschied zur selbst gesetzten illegal Anweisung besteht darin, dass der Debugger "weiß", das es sich um einen Breakpoint handelt, und deshalb nicht die Meldung "illegal instruction", sondern "breakpoint reached" ausgibt... Mit einem source-level Debugger kannst Du den Breakpoint direkt für eine Zeile im source-code, statt in einer Disassembler-Anzeige setzen. Auch wenn der Unterschied für Assembler-Code minimal ist. Zitat:Man kann Dir aber nicht helfen, wenn man nicht weiß, wo man überhaupt anfangen soll. Du hast nach speziellen Möglichkeiten zum Debuggen einer Library gefragt, scheinst aber generell nicht (mehr) zu wissen, wie man einen Debugger benutzt... mfg -- Good coders do not comment. What was hard to write should be hard to read too. [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 19:28 Uhr Andreas_Wolf Posts: 2980 Nutzer |
> die links [...] verschleiern aber, das mein zweitjüngstes projekt > eine ripper-library namen eXternal Format Rippers (XFR) mit clients > änlich xad war Ich schrieb "z.B.", war also ohne Anspruch auf Vollständigkeit. Aber das hole ich natürlich gern nach: http://www.amiga-news.de/de/news/AN-2003-04-00069-DE.html http://www.amiga-news.de/de/news/AN-2003-04-00106-DE.html http://www.amiga-news.de/de/news/AN-2003-04-00189-DE.html :-) > auch auf meiner hp Ja, vor allem auf die habe ich Thore ja hingewiesen. [ - Antworten - Zitieren - Direktlink - ] |
17.03.2009, 20:29 Uhr jolo Posts: 110 Nutzer |
@AGSzabo: Falls Du beim Debuggen wirklich nicht weiter kommst, benutze "_kprintf" zur Ausgabe (linken mit debug.lib) und starte vorab Sushi (oder gleichwertiges Programm). Falls Dein Programm abstürzt, kannst Du hinter jeder "_kprintf" Ausgabe eine Zeitlang warten, mittels _LVODelay (falls Prozesse Deine Routinen aufrufen) oder mittels eines Busy-Loops des CIA-Bausteins (Tasks), so dass Du eine Ahnung bekommst, welche Routine den Absturz verursacht. Grüße [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Programmierung > Welcher Assembler ist der Beste? | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |