string umwandeln

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
jbs
User
Beiträge: 953
Registriert: Mittwoch 24. Juni 2009, 13:13
Wohnort: Postdam

Erstmal mit vernünftigem Highlight: http://paste.pocoo.org/show/164511/

Warum machst du denn ein ``je return`` wenn return nur ``ret`` enthält?

Ah, ich habs verstanden :) `je` ist jump equal, oder? Fühle mich gerade ein wenig an unsere Assemblerzeit in der Schule erinnert.
[url=http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29]PEP 8[/url] - Quak!
[url=http://tutorial.pocoo.org/index.html]Tutorial in Deutsch[/url]
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

problembär hat geschrieben:Zu Deinem Python-Vorschlag fand ich übrigens noch interessant, daß viele auch bei so einfacher Datenverarbeitung in Python recht bald mit Modulen arbeiten. Spricht ja nichts dagegen, überrascht mich nur etwas :D.
Natürlich - warum auch Sachen selbst amchen wenn man einfach Module nutzen kann deren Verwendung nahezu keine Kosten hat.

Die Assembler-Lösung finde ich fein. ``je`` ist natürlich Jump Equal, ``jne`` ist das Gegenteil. Der Transform-Teil verwundert mich ein wenig, aber ich schätze mal dass so die Parameter entgegengenommen werden, also liegt der String in ``ebx`` und wird auf den Stack kopiert. Schade dass bei uns in der Uni nur uninteressante Aufgaben in Assembler gegeben wurden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
BlackJack

@Leonidas: Ja naja, es steht ja "ungetestet" dran. Über die Parameterübergabe wunderst Du Dich zurecht, denn ganz oben auf dem Stapel steht natürlich die Rücksprungadresse. Argh. Ausserdem muss der Aufgerufene Code beim `gcc` das `ebx`-Register am Ende wieder in den ursprünglichen Zustand versetzen. Mit dem `ecx`-Register kann man dagegen machen was man will. Also hier das Ganze noch einmal in funktionierend: http://paste.pocoo.org/show/164572/

Getestet mit:

Code: Alles auswählen

#include <stdio.h> 
#include <string.h> 

extern void transform(char *s);

int main(void) 
{ 
    char a[] = "AGSKYSASJKASIOJASJK----ACTG"; 
    
    puts(a); 
    transform(a);
    puts(a); 

    return 0; 
}
Antworten