Προς το περιεχόμενο

C to Assembly


ErnestoGr

Προτεινόμενες αναρτήσεις

Δημοσ.

Γειά σας, υπάρχει κάποιο λογισμικό στο οποίο να μπορώ να μετατρέπω τον κώδικα γραμμένο σε C, σε γλώσσα Assembly ή κάτι παρόμοιο ;

Ευχαριστώ για τον χρόνο σας :-D

Δημοσ.

ολοι οι compiler της C εχουν ενσωματωμενους assemblers.απο κει και επειτα για να σου μετατρεπει απο C σε assembly (για μια συγκεκριμενη "ομαδα" ολοκληρωμενων) αυτο ειναι αδυνατο,εκτος κι αν κατσεις και το φτιαξεις μονος σου.

 

ελπιζω να ξερεις οτι η καθε οικογενεια επεξεργαστων εχει δικια της assembly...

Δημοσ.

οι ενσωματομένοι assemblers σου δίνουν την δυνατότητα να μετατρέψεις μέρος του προγράμματος ή καμία σχέση? μιλάω για προγραμματισμό στον emulator 8086

Δημοσ.

μεγαλη βλακεια να σε βαζουν να μαθεις assembly (σε emulator κιολας) και να προσπαθεις να γραψεις σε C.καλη η C αλλα η assembly χρειαζεται,trust me.

 

εξαρταται απ'τον compiler.ποιον χρησιμοποιεις?

Δημοσ.

έχω να κάνω κάτι σαν project που η υλοποίηση του είναι εύκολη σε c και μιάς επου δεν την παλεύω και πολύ με την assembly είπα να δω αν γίνεται κάτι τέτοιο. βρήκα κάτι http://insomnia.gr/vb3/showthread.php?p=1475008 αλλά δεν ξέρω πως και αν δουλεύει με Borland C++

Δημοσ.

Έχε υπόψη σου ότι ο assembly κώδικας που βγάζουν οι C compilers αν έχεις χρησιμοποιήσει optimization flags, με την πρώτη ματιά δεν είναι και τόσο εύκολος στην κατανόηση από άνθρωπο. Η εκτεταμένη χρήση out of order execution και άλλων τεχνικών έχει την τάση να το κάνει αυτό...

Δημοσ.
οκ παιδίά σας ευχαριστώ που με κατατοπίσατε πάνω-κάτω. ήρθε η ώρα να μάθω και γω assembly :P

 

καλη επιτυχια... (θα την χρειαστεις!)

Δημοσ.
μεγαλη βλακεια να σε βαζουν να μαθεις assembly (σε emulator κιολας) και να προσπαθεις να γραψεις σε C.καλη η C αλλα η assembly χρειαζεται,trust me.

 

Πού τον βρήκατε ρε αυτόν;;;

 

Εν έτη 2007, η assembly μας άφησε χρόνους, η c δε, κοντεύει να πεθάνει.

 

Εδώ σηκώνουμε 50mb virtual machines για να τρέξουμε ένα πρόγραμμα και εσύ λες πως η assembly χρειάζεται;

 

Ζήτω ο OOP!

Δημοσ.
Πού τον βρήκατε ρε αυτόν;;;

 

Εν έτη 2007, η assembly μας άφησε χρόνους, η c δε, κοντεύει να πεθάνει.

 

Εδώ σηκώνουμε 50mb virtual machines για να τρέξουμε ένα πρόγραμμα και εσύ λες πως η assembly χρειάζεται;

 

Ζήτω ο OOP!

 

Είσαι λάθος φίλε μου, όλα έχουν τη χρησιμότητά τους. Ο προγραμματισμός συστημάτων γίνεται ακόμη σε C και τα critical κομμάτια κώδικα γράφονται σε assembly. Να μη μιλήσουμε δε, για τα embedded συστήματα.

 

Και εν πάσει περιπτώσει, ο poscaman είναι συνάδελφος από ceid και δεν του ταιριάζουν χαρακτηρισμοί όπως ο παραπάνω που έβαλα σε bold...

Δημοσ.

Εν έτη 2007, η assembly μας άφησε χρόνους, η c δε, κοντεύει να πεθάνει.

 

Οι κυριοι kerninghan and ritchie εχουν πεθανει στο γελιο...:mrgreen:

 

θελεις να παραθεσω στατιστικα για να σου αποδειξω το αντιθετο με αυτα που λες?η οχι? (γιατι νυσταζω κιολας...)

Δημοσ.

Συγγνώμη κι όλας που επεμβαίνω στη βαθυστόχαστη συζήτησή σας, αλλά... κάτι σαν εσάς μας έχουν κάνει να χρειαζόμαστε Core2Quad για να τρέξουμε applets που, αν είχε ασχοληθεί κανείς να τα γράψει σε μια σοβαρή γλώσσα προγραμματισμού και όχι javo-C-sharp-αηδίες, θα έτρεχαν και σε 386.

Δημοσ.

spock, όπως έγραψα και παραπάνω όλα έχουν τη χρησιμότητά τους. Όσο προγραμματισταράς και να είσαι, π.χ. video encoding ή playback HDTV περιεχομένου δε μπορείς να κάνεις σε επεξεργαστές πενταετίας και βάλε. Η ανάγκη για γρηγορότερες CPUs δεν είναι πάντα θέμα overhead των χρησιμοποιούμενων γλωσσών προγραμματισμού.

 

Αυτά από μένα, έχουμε βγει πολύ offtopic...

Δημοσ.

Ουδείς ζημιώθηκε μαθαίνοντας Assembly, από την άλλη πλευρά τα τελευταία χρόνια η ανάπτυξη κώδικα ακόμα και σε επίπεδο embedded systems μπορεί να γίνει με την βοήθεια C compilers που παράγουν τον ανάλογο Assembly κώδικα διευκολύνοντας τους προγραμματιστές τους, μάλιστα εταιρίες που δραστηριοποιούνται στον συγκεκριμένο χώρο (πχ. Texas Instruments, Zilog κτλ.) προσφέρουν ανάλογες C SDKs λύσεις προς κάθε ενδιαφερόμενο περιορίζοντας την χρήση της Assembly σε πολύ συγκεκριμένες περιπτώσεις όπου απαιτείτε hand-written ή καλύτερα tight κώδικας είτε λόγο χώρου (όχι τόσο σπάνιο) ή λόγο υπέρ-optimization (και εδώ σήμερα το κέρδος είναι μικρό).

 

Τώρα σε επίπεδο λειτουργικών συστημάτων και όσον αφορά τα Windows με τα οποία έχω ασχοληθεί, η προτεινόμενη γλώσσα ανάπτυξης οδηγών από την MS είναι η C καθώς αφενός είναι ευκολότερη (άρα πιο αξιόπιστη) στην ανάπτυξη λογισμικού από ότι η Assembly και αφετέρου εξασφαλίζει ως έναν βαθμό συμβατότητα σε κάθε αρχιτεκτονική οπότε ένα ικανοποιητικό ποσοστό κώδικα γραμμένου σε C γίνεται ευκολότερα port πχ. από 16bit σε 32bit ή 64bit ή μεταξύ διαφορετικών CPU για προφανείς λόγους (αλλαγή compiler) σε σχέση με την Assembly (αλλαγή κώδικα).

 

Για αυτά και για άλλους λόγους, δεν είναι καθόλου τυχαίο ότι οι κατασκευαστές του Unix ήδη από νωρίς (1970+) διέγνωσαν την ανάγκη να αποδεσμευτούν από την PDP-11 Assembly που είχαν αναπτύξει ορισμένα πρωτόλεια του "Unix", αναπτύσσοντας ή χρησιμοποιώντας μια σειρά από αρκούντως ισχυρές High Level γλώσσες προγραμματισμού (BC/PL, B κτλ.) που θα ικανοποιούσαν τις System Level ανάγκες τους μέχρι να καταλήξουν στην C η οποία υπήρξε για ένα μεγάλο χρονικό διάστημα συνώνυμο του Λ.Σ. Unix και off-the-record χαρακτηριζότανε κάποτε στον ειδικό τύπο ως «η Assembly των Mainframe συστημάτων»..

 

Υ.Γ.

Για την ιστορία και σεβόμενος το topic (που ξέφυγε σε off-topic) αξίζει να αναφέρω πάντως πως ένα Λ.Σ. το όποια ήταν σχεδόν εξολοκλήρου γραμμένο σε Assembly ήταν το περίφημο MS-DOS με την C να χρησιμοποιείται σε ελάχιστα εξωτερικά utilities (ο ανταγωνιστής του, το DR-DOS αλλά και τα MS-Windows ακολούθησαν αντίστροφη πορεία)..

 

Καλή συνέχεια...

Δημοσ.

Μπορείς να συνδέσεις c+assemply μεσω functions. όταν κάνεις compile ένα assemply & ένα c πρόγραμμα παράγονται .obj αρχεία τα οποία μπορείς στη συνέχεια να τα κάνεις link και να καλέσουν το ένα συναρτήσεις του άλλου. Se c αν θυμάμαι ακόμα , κάνεις μια δήλωση external κάτι για να δηλώσεις οτι τη συνάρτηση θα τη βρει σε άλλο αρχείο.Τα ορίσματα περνιούνται μεσω στοίβας και το return της συνάρτησης είναι σε καταχωρητή (ax - 16bit assemply).

 

Περι θανάτου assemply & c που αναφέρθηκε παραπάνω , δε νομίζω οτι ισχύει κάτι τέτοιο , γιατί απλά αυτές οι γλώσσες είναι για προγραμματισμό χαμηλού επιπέδου όπως πχ η δημιουργία ενος λειτουργικού συστήματος.Οπότε ναι μεν δε χρησιμοποιούνται πολύ πλεον αφου πράγματα που σε γλώσσες υψηλού επιπέδου γίνονται με ένα ωραίο φιλικό στο χρήστη IDE γίνονται με 2-3 κλίκ και ελάχιστες γραμμές κώδικα , σε c θα πρέπει να γράψεις μπόλικες σελίδες κώδικα.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...