FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Technische Informatik

T3 Übungen von zu Hause aus

T3 Übungen von zu Hause aus 2004-10-24 21:03
Fred
Wer aus welchem Grund auch immer nicht direkt an den SPARCs sitzen kann oder will, der kann die Übungsaufgaben über Umwege auch von zu Hause aus machen:


Vorbereitung

1. WinSCP runterladen und installieren http://winscp.sourceforge.net/eng/download.php

2. Putty runterladen http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html


Für jeden Übungszettel

1. Quelltexte lokal mit [insert favorite text editor here] erstellen

2. Quelltexte per WinSCP hochladen (rzdspc3.informatik.uni-hamburg.de)

3. Putty starten und einloggen (ebenfalls rzdspc3.informatik.uni-hamburg.de)

4. Zeilumbrüche in den Assemblerquelltexten konvertieren:
dos2unix myasm.s myasmu.s5. Den Compiler anwerfen, für mögliche Optionen ins Heftchen schauen, Beispiel (kompiliert .c und .s Datei zusammen in eine a.out):
cc myc.c myasmu.s6. Bei erfolgreicher Kompilation a.out starten und hoffen, dass das gewünschte dabei rauskommt, ansonsten -> 1.


Danksagung an Mo (WinSCP, Putty) und Tri (dos2unix)

Re: T3 Übungen von zu Hause aus 2004-10-24 21:14
Faleiro
Den Quelltext fuer jeden Compile-Fehler nochmal hochzuladen kann auch nerven…
Wer zumindest ein bisschen Erfahrung mit Unix hat (aus der ERB), kann auch direkt im Putty einen der "benutzbareren" ;-) Konsolen-Editoren verwenden wie z.b. "joe".

Re: T3 Übungen von zu Hause aus 2004-10-24 21:22
chris
Im c.t. liegen außerdem Kurzanleitungen zu vi rum, wenn man einen richtigen Editor verwenden mag.

Re: T3 Übungen von zu Hause aus 2004-10-25 00:44
TriPhoenix
Für "Anfänger" mag auch mcedit schon ganz nett sein, die untere Leiste gibt hier an, was die F-Tasten tun, wenn an der 7 z.B. search steht, dann ist F7 = suchen.

Re: T3 Übungen von zu Hause aus 2004-10-25 00:51
DJ-SilVerStaR
sauberst Fred
dankeschön für die anleitung.
irgendwer hät bestimmt nach gefragt. (im zweifelsfall ich :D)

Re: T3 Übungen von zu Hause aus 2004-10-25 01:03
Anonymer User
Da auch gleich ne Frage. Kann ich das eigentlich um/einstellen, das nicht, wenn ich im insertmodus im vi/vim bin und die Cursor-Taste benutze eine Zahl geschrieben wird, sonders der Cursor sich bewegt?

Oder muss ich mich umgewöhnen und immer ESC drücken vorher?

Re: T3 Übungen von zu Hause aus 2004-10-25 11:58
chris
Das liegt wohl an ner "defekten" Terminal-Emulation. *Eigentlich* sollte man mitm Cursor navigieren können.

Re: T3 Übungen von zu Hause aus 2004-10-25 13:16
Da:Sourcerer
Die Leute von SSH.com bieten auch noch eine nicht kommerzielle Version ihres Clients an. Auch recht nett.

Re: T3 Übungen von zu Hause aus 2004-10-26 14:26
Anonymer User
Die Leute von SSH.com bieten auch noch eine nicht kommerzielle Version ihres Clients an. Auch recht nett.

das wär meine Frage…ist SSH besser als PuTTy?
irgendwelche Vorteile des einen gegebüber dem andren?

Re: T3 Übungen von zu Hause aus 2004-10-26 15:05
TriPhoenix
putty ist wesentlich Minimalistischer, daher klein, waehrend der offizielle Client mehr so ein All-Around-Tool ist. Am offiziellen Client ist ganz schick dass der ein FTP-artiges Interface fuer Dateitransfers hat, was die Konsolenfaehigkeiten angeht duerften die recht gleichmaechtig sein

Re: T3 Übungen von zu Hause aus 2004-10-26 15:34
chris
Aber Achtung: Wer PuTTY benutzt, sollte auf die aktuelle Version wechseln! http://www.heise.de/security/news/meldung/52613

Ansonsten lässt sich SCP (also Dateitransfer) auch gut mit WinSCP machen, wenn man bei PuTTY bleiben will.

Re: T3 Übungen von zu Hause aus 2004-10-30 19:38
Anonymer User
hi
also..ich hab folgendes geamcht:

ne .c file mit dem code erstellt
den kam dann auf meinen acci geladen
und dann "cc -s zettel1.c"

dann erzeugt der mir ne a.out
allerdings steht da nur kuddelmuddel drin..
was mach ich falsch?

Re: T3 Übungen von zu Hause aus 2004-10-30 19:43
Da:Sourcerer
Versuch's mal mit cc -[i]S[/i] zettel1.c -o zettel1.s

Re: T3 Übungen von zu Hause aus 2004-10-30 19:46
Anonymer User
hm..das bringt auch nicht wirklich viel…
da is zwar assambler code zu erkennen, aber halt auch viel kuddelmuddel drin..

Re: T3 Übungen von zu Hause aus 2004-10-30 19:49
Anonymer User
ah..liegt an notepad
TechNic Center kanns richtig darstellen

Re: T3 Übungen von zu Hause aus 2004-10-30 19:50
Da:Sourcerer
…aber halt auch viel kuddelmuddel drin..
"Kuddelmuddel" i.S.v. "Zeichen, die man ansonsten nie im Leben verwenden würde"?

Re: T3 Übungen von zu Hause aus 2004-10-30 21:04
TriPhoenix
Die a.out wäre die ausführbare Datei, da kannst du per

./a.out

dein Programm starten. In der .s stehta ußer dem eiegtnlichen Assemblercode viel Rahmencode drin, ein Editor, der Unix-fähig ist muss schon sein, das hast du ja bereits gesehen.

Re: T3 Übungen von zu Hause aus 2004-11-03 16:03
Dennis-
Wer Windows nutzt und (so wie ich bis eben) keine Ahnung von c hatte und auch nicht 'auf dem uni-rechner programmieren' möchte, kann mit diesem step-by-step tutorial lauffähigen c-code auf seinem eigenen win-pc erzeugen. So kann man ganz in Ruhe zu hause programmieren und den fertigen Code dann einmal (wie oben beschrieben) per SSH auf ner Sparc Compilen lassen, damit der richtige Assembler-code rauskommt.

1) C-compiler installieren
Ich hab mir Dev-Cpp http://prdownloads.sourceforge.net/dev-cpp/devcpp4990setup.exe?download runtergeladen. Ist allerdings ne ganze c/c++ IDE. Eigentlich reicht der gcc-compiler

2) Path zum compiler (gcc.exe) setzen.
Rechtsklick Arbeitsplatz / Eigenschaften / Erweitert / Umgebungsvariablen / Systemvariablen
Dort sollte der Eintrag PATH existieren. Diesen 'Bearbeitet' man und hängt
;c:\dev-cpp\bin\
hintendran. (evtl halt anderer Ordner)
Nun kann man direkt in der Eingabeaufforderung (Wintaste+r / cmd) gcc tippen und sollte "gcc: no input files" bekommen. Unabhängig davon, in welchem Verzeichnis man sich befindet.

3) c-Programm schreiben
#include <stdio.h> int beispiel() { int a = 25; return a*2; } int main(void) { int ergebnis = beispiel(); printf("%.0d", ergebnis); //%.0d für dezimalsystem return 0; } Dieses speichert man in seiner beispiel.c

4) Programm compilieren
In der Eingabeaufforderung wechselt man in den Ordner, wo die beispiel.c file liegt, tippt gcc beispiel.c und sollte eine kompilierte a.exe erhalten, die bei aufruf mittels "a" in der eingabeaufforderung 50 ausgeben sollte.

Ist man fertig&zufrieden mit seinem c-Programm läd man dieses einfach wie oben beschrieben auf den Uni-rechner und lässt sich dort Assembler-Code erzeugen.
Schon steht dem T3-Schein nichts mehr im wege! :-)

edit: Wieso hat der code jetzt so viele zeilenumbrüche - in der Vorschau sah das viel besser aus?

Re: T3 Übungen von zu Hause aus 2004-11-03 16:30
Fred
int main(void) { int beispiel() {
error C2601: 'beispiel' : Lokale Funktionsdefinitionen sind unzulaessig

Re: T3 Übungen von zu Hause aus 2004-11-03 16:35
Dennis-
triphoenix meinte in der übung man muss in C die funktionen schon vorher einma vordefinieren so wie in nem interface in Java oder so - evtl liegts daran? ka sorry

Re: T3 Übungen von zu Hause aus 2004-11-03 17:08
korelstar
Nein. Du hast da eine Funktion in der Funktion.

Re: T3 Übungen von zu Hause aus 2004-11-03 17:12
Dennis-
*hust*
so besser? :>
wieso fügt der da nur immer leere zeilen ein.. :/

Re: T3 Übungen von zu Hause aus 2004-11-03 17:20
Lümmel
*hust*
so besser? :>
Ja

Re: T3 Übungen von zu Hause aus 2004-11-03 17:22
Lümmel
triphoenix meinte in der übung man muss in C die funktionen schon vorher einma vordefinieren so wie in nem interface in Java oder so - evtl liegts daran? ka sorry
Jein, wenn man Funktionen benutzen will, die dem Compiler zur Laufzeit noch nicht bekannt sind, muss man vorher einen Prototypen definieren.

Beispiel:

void func1() { func2(); // geht nicht, da dem Compiler die Funktion noch nicht bekannt ist. } void func2() { ... }

Entweder definiert man func2() vor func1()…
void func2(void) { ... } void func1(void) { func2(); }

…oder falls das nicht möglich ist, definiert man vorher einen Prototypen. Diese besteht eigentlich nur aus dem Kopf der Funktion und einem anschließend Semikolon:

void func2(void); //Protoyp - Der Compiler weiss jetzt, dass irgendwann die Implementation der Funktion folgend wird. void func1() { func2(); } void func2() { ... }

Re: T3 Übungen von zu Hause aus 2004-11-03 17:49
TriPhoenix
triphoenix meinte in der übung man muss in C die funktionen schon vorher einma vordefinieren so wie in nem interface in Java oder so - evtl liegts daran? ka sorry

Nein das habe ich nicht gesagt [img]http://www.fb18.de/gfx/15.gif[/img]

Das gilt für vordefinierte Funktionen, wie printf z.B. Wenn man selber eine schreibt, braucht man die Vordefinition nicht unbedingt, insbesondere nicht wenn man die Funktion höher im Programm text hat als ihre Verwendung.

Re: T3 Übungen von zu Hause aus 2004-11-03 23:24
Anonymer User
Hallo

Du sprichst hier anscheinend davon, das man schon auf dem Heim-PC per

gcc test.c -S test.s

eine Assembler-Datei kompiliert hat oder?

Weil wenn ich mit deiner Methode

cc test.c test.s

aufrufe, will er ja die *.s Datei haben.

Aber wir sollen doch nur eine .s Datei erzeugen (jedenfalls in den ersten beioden Übungen).

Was bringt mir der cc Aufruf?

Und by the way

Erwarten die von uns, das wir jetzt richtig (hardcore) Assembler lernen?

Ich versteh nämlich nur Bahnhof wenn ich meine C-Progs in Assembler kompiliere.

Tschau und Danke

Re: T3 Übungen von zu Hause aus 2004-11-03 23:43
Wolf
Niemand erwartet, dass Du Hardcore Assembler lernst. Das, was in den Übungen gebraucht wird, ist aus sich selbst heraus verständlich; so war's zumindest, als ich das gemacht habe.

Im T3-Praktikum wird's dann ein bisschen anspruchsvoller, aber Hardcore Assembler ist was anderes.

Re: T3 Übungen von zu Hause aus 2004-11-04 01:13
TriPhoenix
gcc test.c -S test.s
test.s wird in der Kommandozeile nicht erwähnt. gcc test.c -S reicht.

Weil wenn ich mit deiner Methode

cc test.c test.s

aufrufe, will er ja die *.s Datei haben.
Aus obigem Grund [img]http://www.fb18.de/gfx/28.gif[/img] test.s in der Kommandozeile gibt man dann an, wenn test.s entsprechend Assembelrcode enthält, aber das ist bei den ersten beiden Übungen nicht der Fall.

Was bringt mir der cc Aufruf?
Er erzeugt dir die Assemblerdatei. Eine der Dinge die Compiler machen (eigentlich die wichtigste) ist ja C-Code in Assembelrcode umwandeln.

Erwarten die von uns, das wir jetzt richtig (hardcore) Assembler lernen?
Wie schon gesagt, nein. Assembler soll hier dazu dienen einen Einblick in die Maschinenprogrammierung zu bekommen und speziell hier bei der Sparc so die Rechnerarchitektur kennenzulernen.

Ich versteh nämlich nur Bahnhof wenn ich meine C-Progs in Assembler kompiliere.
Das passiert am Anfang, man gewöhnt sich später noch an den Assemblercode [img]http://www.fb18.de/gfx/28.gif[/img] Ansonsten einfach den Übungsleiter fragen bis alle Fragen geklärt sind [img]http://www.fb18.de/gfx/28.gif[/img]

Re: T3 Übungen von zu Hause aus 2004-11-04 11:47
Fred
(kompiliert .c und .s Datei zusammen in eine a.out)
Du sprichst hier anscheinend davon, das man schon auf dem Heim-PC per

gcc test.c -S test.s

eine Assembler-Datei kompiliert hat oder?
Nein, meine cc-Zeile ist dafür gedacht, dass Du ein C Programm und ein Assemblerprogramm zusammen kompilierst. Das wird dann interessant, wenn Du Unterprogramme in Assembler schreibst.

cc test.c test.s
Das wird niemals funktionieren, da das Kompilat von test.s das Kompilat von test.c überschreibt (nämlich test.o)

Aber wir sollen doch nur eine .s Datei erzeugen (jedenfalls in den ersten beioden Übungen).
Richtig, und das geht mit cc -S test.c

Ich versteh nämlich nur Bahnhof wenn ich meine C-Progs in Assembler kompiliere.
Assembler ist noch einmal ein Schritt näher an der von-Neumann-Architektur als C. Noch näher dran kann man eigentlich gar nicht mehr sein. Zusätzlich zum von-Neumann-Modell musst Du noch den Sinn von Registern verstehen, dann sollten die meisten Programme kein Mysterium mehr für Dich darstellen. Du siehst ja im generierten Assemblertext auch immer die entsprechenden C-Anweisungen.

In einer kurzen Prozedur mit wenigen lokalen Variablen landen diese eigentlich immer in Registern, Du musst Dich also auch noch gar nicht um Sachen wie Stack- und Framepointer kümmern (es schadet aber nicht, wenn man sie trotzdem versteht). Auch die Parameterübergabe geschieht in der SPARC fast immer ausschliesslich über Register und ist eigentlich recht intuitiv. Es gibt out-Register, in die der Caller die Parameter schreibt, bevor er die Prozedur aufruft. Der Callee empfängt die Parameter dann über die in-Register.

Versuch doch einfach mal zu formulieren, was Dir Probleme bereitet.

Re: T3 Übungen von zu Hause aus 2004-11-09 14:53
Anonymer User
Gibts eigentlich die Aufgabenzettel irgendwo im Netz?

Re: T3 Übungen von zu Hause aus 2004-11-09 14:59
Fred
Gibts eigentlich die Aufgabenzettel irgendwo im Netz?
Nein. Dies soll die Studenten dazu motivieren, zu den Übungen zu kommen.

Re: T3 Übungen von zu Hause aus 2004-12-01 23:33
Anonymer User
Wie loggt man sich eigentlich aus mit puTTy? einfach schliessen?

Re: T3 Übungen von zu Hause aus 2004-12-01 23:35
TriPhoenix
Wie loggt man sich eigentlich aus mit puTTy? einfach schliessen?

Ctrl-D sollte eventuell gehen, ansonsten logout, exit (Auf der Kommandozeile) oder wie gesagt, einfach das Fenster zumachen [img]http://www.fb18.de/gfx/23.gif[/img]

Re: T3 Übungen von zu Hause aus 2004-12-01 23:37
leif
Wie loggt man sich eigentlich aus mit puTTy? einfach schliessen?
Die Shell beenden.

Z.B. am Shellprompt bei leerer Zeile Ctrl-D. Oder mit den Befehlen - äh, grübel, lange nicht benutzt - 'logout' oder 'exit'.

PuTTY beenden geht sonst auch, finde ich aber meist nicht so "sauber", ohne jetzt in die Details zu gehen.


[edit: 2nd post, Tri won]

Re: T3 Übungen von zu Hause aus 2004-12-01 23:38
Anonymer User
Danke :) manchmal sieht man den Wald vor lauter Bäume nicht

Re: T3 Übungen von zu Hause aus 2005-11-05 17:37
Anonymer User
Also ich bruach einfach nur meine c-code-textdatei als test.c abspeichern (ok),

dann einmal testen, ob sie funktioniert mit gcc test.c (ok)

aber wie lade ich nun den assembler code (zum "sehen")?
habs nun mit allen genannten varianten ausprobiert (cc -S test.c ; cc test.c -S ; …), aber der zeigt mir nichts an.

(BS : debian)

Danke im Vorraus

Re: T3 Übungen von zu Hause aus 2005-11-05 17:56
TriPhoenix
cc -S datei.c (oder gcc -S)

erstellt eine datei.S in der der Quellcode dann drin ist. Die musst du dir mit einem Anzeigeprogramm deiner Wahl anzeigen

Re: T3 Übungen von zu Hause aus 2005-11-05 17:59
Anonymer User
danke *doof doof dooof*

Re: T3 Übungen von zu Hause aus 2005-11-05 18:26
Fred
(BS : debian)
Ganz wichtig: Du musst den Kram auf einer SPARC kompilieren! Zu Hause auf Deinem Rechner mit debian werkelt ja ziemlich wahrscheinlich ein x86 Chip, oder? Mit dem Assemblercode wirst Du in den T3 Übungen nichts anfangen können.

Re: T3 Übungen von zu Hause aus 2005-11-05 18:36
Anonymer User
2) Path zum compiler (gcc.exe) setzen.
Rechtsklick Arbeitsplatz / Eigenschaften / Erweitert / Umgebungsvariablen / Systemvariablen
Dort sollte der Eintrag PATH existieren. Diesen 'Bearbeitet' man und hängt
;c:\dev-cpp\bin\
hintendran. (evtl halt anderer Ordner)
Nun kann man direkt in der Eingabeaufforderung (Wintaste+r / cmd) gcc tippen und sollte "gcc: no input files" bekommen. Unabhängig davon, in welchem Verzeichnis man sich befindet.
Nee, ich muss/kann gcc nur von c:\dev-cpp\bin aus ausrufen

Re: T3 Übungen von zu Hause aus 2005-11-05 20:53
MoKrates
Fred: Oder Cross-Compilen…

Mo

Re: T3 Übungen von zu Hause aus 2005-11-05 20:55
Fred
Kann der cc oder der gcc das? Dann habe ich nichts gesagt!

Re: T3 Übungen von zu Hause aus 2005-11-05 21:25
UncleOwen
Sagen wir so: man kanns ihm beibringen. Ob man das jetzt extra f\"ur die T3-"Ubungen machen will… Da ist ssh IMHO deutlich einfacher.

Re: T3 Übungen von zu Hause aus 2005-12-02 13:32
Anonymer User
mit cc -S test.c funkt es nicht für mein programm.c, dass bei mir
unter win funktioniert
Fehlermeldung:
warning invalid white space character in directive

nur gcc test.c -S funkt - .s datei sieht dann aber komisch aus, d.h. ist klein

warum?

Re: T3 Übungen von zu Hause aus 2005-12-02 13:38
TriPhoenix
-S erzeugt keine .s-Datei, dazu musst du -s nehmen.

Außerdem benutzt Windows andere Zeilenendungen (nämlich CRLF) als Unix (nämlich LF). Einfachste Variante: Im Rechenzentrum über dos2unix laufen lassen:

dos2unix datei.s > datei_neu.s

WICHTIG: Nicht zweimal dieselbe Datei angeben, das klappt nicht :)

Re: T3 Übungen von zu Hause aus 2005-12-02 15:24
Anonymer User
-S erzeugt keine .s-Datei, dazu musst du -s nehmen.

Außerdem benutzt Windows andere Zeilenendungen (nämlich CRLF) als Unix (nämlich LF). Einfachste Variante: Im Rechenzentrum über dos2unix laufen lassen:

dos2unix datei.s > datei_neu.s

WICHTIG: Nicht zweimal dieselbe Datei angeben, das klappt nicht :)

?

am Anfang hab ich ja nur meine programm.c datei (in win geschrieben)

du meinst jetzt cc -s programm.c eingeben -> klappt nicht - gleiche Fehlermeldung wie oben

für dos2unix brauch ich ja eine .s-datei - wie soll ich die bekommen?

Re: T3 Übungen von zu Hause aus 2005-12-02 15:25
Anonymer User
-S erzeugt keine .s-Datei, dazu musst du -s nehmen.

Außerdem benutzt Windows andere Zeilenendungen (nämlich CRLF) als Unix (nämlich LF). Einfachste Variante: Im Rechenzentrum über dos2unix laufen lassen:

dos2unix datei.s > datei_neu.s

WICHTIG: Nicht zweimal dieselbe Datei angeben, das klappt nicht :)

?

am Anfang hab ich ja nur meine programm.c datei (in win geschrieben)

du meinst jetzt cc -s programm.c eingeben -> klappt nicht - gleiche Fehlermeldung wie oben

für dos2unix brauch ich ja eine .s-datei - wie soll ich die bekommen?

Re: T3 Übungen von zu Hause aus 2005-12-02 15:31
Fred
-S erzeugt keine .s-Datei, dazu musst du -s nehmen.
Komisch, vor einem Monat meintest Du noch folgendes:
cc -S datei.c (oder gcc -S)

erstellt eine datei.S in der der Quellcode dann drin ist. Die musst du dir mit einem Anzeigeprogramm deiner Wahl anzeigen
Ich habe es gerade nochmal ausprobiert:

cc -S main.c

erzeugt anstandslos eine main.s mit dem entsprechenden Assemblercode.

Re: T3 Übungen von zu Hause aus 2005-12-02 15:35
Fred
warning invalid white space character in directive
Gibt er Dir da auch eine Zeilennummer an? Falls ja poste doch mal die entsprechende Zeile.

Und dos2unix funktioniert mit jeder Textdatei, egal ob das nun .txt oder .c oder .s ist.

Z.B. habe ich für das letzte Aufgabenblatt eingegeben:

dos2unix addwp.s a.s

Da bekomme ich zwar zwei Fehlermeldungen ("could not open…", "could not get…"), aber trotzdem habe ich danach eine a.s mit schönen Unix-Zeilenumbrüchen, die sich anstandslos kompilieren lässt:

cc main.c a.s

Meine .c Dateien musste ich noch nie mit dos2unix umwandeln, schaden tut es aber auch nicht.

Re: T3 Übungen von zu Hause aus 2005-12-02 16:15
TeyThoon
junge junge, ihr habt alle einen stress… richtige distributoren bundeln einen ssh client mit ihren distributionen mit…

http://openssh.org/ laeuft btw zur not auch unter cygwin/win32 ;)

uebrigens… fuse-coolness…

~$ sshfs rz: mnt/uni ~$ mount [...] sshfs#rz: on /home/teythoon/mnt/uni type fuse (rw,nosuid,nodev,max_read=65536,user=teythoon) ~$ cd mnt/uni ~$ emacs $file [...]

Re: T3 Übungen von zu Hause aus 2005-12-02 21:35
TriPhoenix
Args, hört nicht auf mich, -S war shcon richtig [img]http://www.fb18.de/gfx/19.gif[/img]

Aber das mit dos2unix ist auf jeden Fall wichtig, das geht auch für C-Dateien.

Re: T3 Übungen von zu Hause aus 2005-12-02 22:05
Anonymer User
warning invalid white space character in directive

Gibt er Dir da auch eine Zeilennummer an? Falls ja poste doch mal die entsprechende Zeile.

line1: #include <stdio.h>

was kann da schon falsch sein?!

wie ich sehe wird jetzt aber trotzdem eine programm.s-datei erzeugt
soll ich damit jetzt "dos2unix programm.s" aufrufen

Re: T3 Übungen von zu Hause aus 2005-12-02 22:07
Anonymer User
hab schon mehrmals dos2unix aufgerufen - mit den gleichen fehlermeldungen wie fred sie beschrieben hat - aber ich erkenn keine Unterschiede in den programm.s-dateien…
Wie kann ich sehen dass es geklappt hat?

Re: T3 Übungen von zu Hause aus 2005-12-03 00:06
Fred
Also nochmal: die Konvertierung mit dos2unix ist nur für die Dateien notwendig, die Du selbst zu Hause auf Deinem eigenen PC geschrieben hast. Du musst also nur Deine eigenen .c und .s Dateien konvertieren, nicht irgendwelche durch cc -S erzeugten Assemblerdateien.

Hast Du nur eine main.c und sonst nichts selbst geschriebenes? Dann probier doch mal folgendes:

dos2unix main.c m.c
cc m.c -o runme
./runme

Wenn Du ein C-Hauptprogramm und ein Assembler-Unterprogramm hast (main.c und unter.s beide selbst geschrieben), dann versuche doch mal folgende Befehlskette:

dos2unix main.c m.c
dos2unix unter.s u.s
cc m.c u.s -o runme
./runme

Klappt's jetzt?

Re: T3 Übungen von zu Hause aus 2005-12-03 13:07
Anonymer User
Bei mir ist es Option:

Hast Du nur eine main.c und sonst nichts selbst geschriebenes? Dann probier doch mal folgendes:

dos2unix main.c m.c
cc m.c -o runme
./runme


Klappt's jetzt?
- ja damit klappte es,d.h hab meine gewünschte Ausgabe auf der Konsole! [juhu]
Nur dabei wird jetzt keine Assembler .s-datei erzeugt - ich seh auf jeden Fall keine - liegt das an der Option -o ?

Re: T3 Übungen von zu Hause aus 2005-12-03 13:10
Anonymer User
junge junge, ihr habt alle einen stress… richtige distributoren bundeln einen ssh client mit ihren distributionen mit…

http://openssh.org/ laeuft btw zur not auch unter cygwin/win32 ;)

uebrigens… fuse-coolness…

~$ sshfs rz: mnt/uni ~$ mount [...] sshfs#rz: on /home/teythoon/mnt/uni type fuse (rw,nosuid,nodev,max_read=65536,user=teythoon) ~$ cd mnt/uni ~$ emacs $file [...]

Was soll mir ein anderes Logintool bringen?

Was hat emacs damit zu tun?

Re: T3 Übungen von zu Hause aus 2005-12-03 13:12
TriPhoenix
Nur dabei wird jetzt keine Assembler .s-datei erzeugt - ich seh auf jeden Fall keine - liegt das an der Option -o ?

cc gibt nur entweder eine Assemblerdatei aus (Parameter -S) oder eben eine Ausführbare (kein -S). Das -o gibt nur den Dateinamen für die Ausgabedatei an (die ausführbaren Dateien heißen ansonsten default-mäßig a.out). Wenn du also ne ausführbare Datei UND Assembler willst, ists am einfachsten, cc zweimal laufen zu lassen [img]http://www.fb18.de/gfx/28.gif[/img]

Re: T3 Übungen von zu Hause aus 2005-12-03 13:15
Fred
dos2unix main.c m.c
cc m.c -o runme
./runme

Nur dabei wird jetzt keine Assembler .s-datei erzeugt - ich seh auf jeden Fall keine - liegt das an der Option -o ?
Wenn Du eine .s Datei aus der .c Datei generieren willst:

dos2unix main.c m.c
cc -S m.c

Dann hast Du eine m.s, welche Du editieren kannst. Nachdem Du damit fertig bist kannst Du sie folgendermassen kompilieren und ausführen, um zu schauen, ob Deine Änderungen nichts kaputt gemacht haben:

cc m.s -o runme
./runme

Nochmal kurz zusammengefasst: um aus einer .c Datei eine .s Datei zu generieren verwendet man den Schalter -S. Dabei wird allerdings kein lauffähiger Code erzeugt, nur der Assemblerquelltext! Um aus Quelltext lauffähigen Code zu machen (egal ob .c oder .s) lässt man den -S Switch einfach weg.

Re: T3 Übungen von zu Hause aus 2005-12-03 13:57
Anonymer User
wie kann ich jetzt die Datei von zuhause sinn voll editieren - ohne Zeilenumbrüche zu "zerstören" - was für einfache Editoren gibt es
komm mit vi nicht zurecht und sed krieg ich nicht gestartet.. [img]http://www.fb18.de/gfx/26.gif[/img]

Re: T3 Übungen von zu Hause aus 2005-12-03 14:04
Fred
Du kannst ja auch die .s Datei auf Deinen Rechner rüberziehen, dort mit Deinem Lieblingseditor editieren (der wie schon von Dir erwähnt wahrscheinlich die Zeilenumbrüche ändert), dann die .s Datei wieder hochladen und die Zeilenumbrüche wieder konvertieren. Also:

[main.c Datei hochladen]
dos2unix main.c m.c
cc -S m.c
[m.s runterladen]
[m.s editieren]
[m.s hochladen]
dos2unix m.s m2.s
cc m2.s -o runme
./runme

Re: T3 Übungen von zu Hause aus 2005-12-03 14:10
Anonymer User
ok lol

thx for your endless help - eine schwierige Geburt..

Re: T3 Übungen von zu Hause aus 2005-12-03 14:39
Anonymer User
damn ich will die file per pine verschicken
kann aber nicht optionen die mit ^ anfangen benutzen - weiss nicht warum oder was ich da machen muss - lehmann will nur asci-dateien

Re: T3 Übungen von zu Hause aus 2005-12-03 14:59
Fred
lehmann will nur asci-dateien
Natürlich, was wolltest Du denn sonst schicken ausser ASCII? Die kompilierte Binary? Damit kann man als Übungsgruppenleiter herzlich wenig anfangen.

Der Sinn Deines restlichen Beitrags will sich mir nicht so recht erschliessen.

Re: T3 Übungen von zu Hause aus 2005-12-03 15:14
Wolf
lehmann will nur asci-dateien
Natürlich, was wolltest Du denn sonst schicken ausser ASCII?
Screenshots vom Quelltext als Embedded JPEG in einem PDF. Das natürlich RAR-komprimiert, verschlüsselt und mit einem Passwort versehen. [img]http://www.fb18.de/gfx/28.gif[/img]
damn ich will die file per pine verschicken
kann aber nicht optionen die mit ^ anfangen benutzen
Ich versteh, was gemeint ist!

Lies Optionen wie ^S bitte als CTRL+S oder auch STRG+S.

Re: T3 Übungen von zu Hause aus 2005-12-03 15:43
Anonymer User
Lies Optionen wie ^S bitte als CTRL+S oder auch STRG+S.

danke


zu fred dass mit ASCII war keine Frage oder Anklage - die Witze könnt ihr euch sparen - ich verschicke nur normalerweise html-emails per onlineclient (web.de,hotmail etc.)
deswegen war ja nur die Frage wie ich es mit pine oder ähnlichem schaffe..

Re: T3 Übungen von zu Hause aus 2005-12-03 15:52
Wolf
die Witze könnt ihr euch sparen - ich verschicke nur normalerweise html-emails per onlineclient (web.de,hotmail etc.)
War doch nicht böse gemeint. Ist total okay, mal was nicht zu kennen, ich weiß auch nicht alles. Tschuldigung.

Re: T3 Übungen von zu Hause aus 2005-12-03 16:19
Fred
ich verschicke nur normalerweise html-emails per onlineclient (web.de,hotmail etc.)
Dann mach das doch einfach:

[main.c Datei hochladen]
dos2unix main.c m.c
cc -S m.c
[m.s runterladen]
[m.s editieren]
[m.s hochladen]
dos2unix m.s m2.s
cc m2.s -o runme
./runme
[m2.s runterladen]
[Browser starten]
[auf www.web.de gehen]
[eMail schreiben]
[m2.s anhängen]
[verschicken]
[zufrieden sein]

Re: T3 Übungen von zu Hause aus 2005-12-03 16:41
Anonymer User
die Witze könnt ihr euch sparen - ich verschicke nur normalerweise html-emails per onlineclient (web.de,hotmail etc.)
War doch nicht böse gemeint. Ist total okay, mal was nicht zu kennen, ich weiß auch nicht alles. Tschuldigung.

tschuldigung angenommen [10}

Re: T3 Übungen von zu Hause aus 2005-12-12 11:43
Anonymer User
Screenshots vom Quelltext als Embedded JPEG in einem PDF. Das natürlich RAR-komprimiert, verschlüsselt und mit einem Passwort versehen.

in JPEG hast du aber keine 3D-Animationen und die sind ja eindeutig gefordert [img]http://www.fb18.de/gfx/28.gif[/img]

Inkarnat

Re: T3 Übungen von zu Hause aus 2005-12-18 04:55
Harzilein
uebrigens… fuse-coolness…

Was soll mir ein anderes Logintool bringen?

Was hat emacs damit zu tun?

Emacs hat damit nix zu tun. sshfs mappt halt sftp auf Filesystemsemantik, das dann per fuse-Kernelmodul wie andere Filesysteme auch zum mounten zur Verfügung steht. Interessant ist shfs/fish, das benötigt tatsächlich nix ausser einer Terminalsession. Dazu machts zwar ein paar Annahmen, aber die kann man woanders nachlesen.

(Edit: fish findet sich z.B. auch in lftp wieder. Es kommt zwar der get/put-Schritt dazu, aber der eigentliche Vorteil (man muss nicht bei evtl. voller Leitung interaktiv auf den Informatikumskisten arbeiten) ist trotzdem vorhanden. Man kann sogar mit quote nach dem Editieren den Compiler/Assembler/Linker anstoßen, wenn man debug eingeschaltet hat sieht man sogar den Output.)

Re: T3 Übungen von zu Hause aus 2005-12-18 04:59
Harzilein
Da auch gleich ne Frage. Kann ich das eigentlich um/einstellen, das nicht, wenn ich im insertmodus im vi/vim bin und die Cursor-Taste benutze eine Zahl geschrieben wird, sonders der Cursor sich bewegt?

Oder muss ich mich umgewöhnen und immer ESC drücken vorher?

Ja, musst du eigentlich ;)

Du kannst aber auch vim statt vi nehmen und ein set nocompatible in die ~/.vimrc schreiben.

Re: T3 Übungen von zu Hause aus 2007-01-14 11:20
Harzilein
Im Insert-mode kann man meines wissens nach eben _nicht_ die Pfeiltasten benutzen. Zumindest kann mans in meinem vim nicht, wenn man :set compatible eingestellt hat, und das sollte ja quasi das referenzverhalten von vi sein.

Abhilfe: vim und eine existierende .vimrc, das stellt implizit :set nocompatible ein, dann kann man auch im insert mode die Pfeiltasten benutzen und über den Anfang des eingefügten Texts hinweg löschen und hat in der ex-line eine History und ähnliche praktische Dinge.

[EDIT: Hups, man sollte schon überprüfen, ob man nicht ähnliche Dinge schonmal geschrieben hat %-)]