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

Tutorial για Assembly?


Firetrooper

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

Δημοσ.

Καλησπερα!! θα ηθελα απλα να ρωτησω αν ξερετε κανενα tutorial για assembly , site , links και οτιδιποτε αλλο μιας και ηταν παντα η τρελα μου να μαθω αυτην την γλωσσα! Περα απο την γλωσσα αν ξερετε εσεις οτιδιποτε για αυτην την γλωσσα θα ηταν ευχαριστηση μου να το ακουσω... ή μαλλον να το διαβασω:) Ευχαριστω εκ των προτέρων!

Δημοσ.

Και γιατί θα πας από την απάλευτη στην πιο απάλευτη; Εκτός αν έχεις assembly σε μάθημα, οπότε και είσαι υποχρεωμένος να τη μάθεις.

 

Δε λέω να μην πιάσεις ποτέ την πιο απάλευτη. Λέω απλά ότι πας να κάνεις μια ιδιαίτερα μαζοχιστική διαδρομή ως προγραμματιστής.

Δημοσ.

ειναι μια ιδιαιτερα μαζοχιστικη πορεια και το ξερω!!!:P απλα νιωθω πως ξέροντας assembly κατεχεις κρισιμα σημεια του προγραμματισμού , μιας και αυτη η γλωσσα ηταν η πρωτη! :)

Δημοσ.

αν η c ειναι απαλευτη και για να ξεφυγεις πας σε assembly τοτε εσυ εισαι πιο απαλευτος :D :D

 

πλακα κανουμε .... στα σοβαρα τωρα η assembly δεν ειναι η πρωτη γλωσσα προγραμματισμου. πιο σωστα ειναι η μητρικη γλωσσα του υπολογιστη. σαφεστατα εχεις απολυτο ελεγχο του καθε byte αλλα για να κανεις το πιο απλο πραγμα θες απειρες γραμμες κωδικα.

 

δεν μπορω να φανταστω κατι που θα θελει ενας απλος χρηστης και δεν θα μπορει να το κανει με C.

 

βεβαια δικη σου επιλογη ειναι , δικος σου χρονος , οτι χομπι θες κανεις :D

Δημοσ.

απλα νιωθω οτι κερδιζω μαθαινοντας μια γλωσσα σαν αυτη! γτ οπως ειπες πιο σωστα ειναι η μητρικη γλωσσα του υπολογιστη!! λετε να μην κερδιζω τπτ ? :(

Δημοσ.

Κοίτα, προσωπική μου γνώμη είναι η εξής.

 

Δε θα σου μάθει καλύτερες τεχνικές προγραμματισμού που μπορούν να σου χρησιμεύσουν σε άλλες γλώσσες. Θα σου δώσει βέβαια γνώσεις χαμηλού επιπέδου που θα σε κάνουν να κοιτάς άλλες γλώσσες (όπως τη C) με άλλο μάτι. Είναι συγκεκριμένες οι περιπτώσεις όπου έχει πρακτική χρησιμότητα (εξαρτάται και από το αντικείμενό σου). Καλό είναι να έχεις μια ιδέα, αλλά να την αποκτήσεις αφού πρώτα έχεις μάθει μερικές άλλες γλώσσες.

 

Αυτά νομίζω εγώ.

Δημοσ.

Στον κλαδο που θελω να ακολουθησω ισως?(Φοιτητης του Τμηματος Πληροφορικης κ' Τηλεπικοινωνιων και θα συνεχισω απο 3ο ετος και μετα με Ασφαλεια υπολογιστικων συστηματων και καποια μαθηματα οπως "κρυπτογραφια" κλπ... μπορει να παρω και 3-4 μαθηματα απο τηλεπικοινωνιες)

Δημοσ.

ο,τι μαθεις καλο ειναι.

 

απο την αλλη επειδη ο χρονος δεν ειναι απειρος ισως καλυτερο να το "φας" σε κατι που θα φανει πιο χρησιμο

Δημοσ.

Ο μόνος λόγος για τον οποίο θα χρησιμοποιούσα assembly, όντας ερασιστέχνης, είναι η βελτιστοποίηση επαναλαμβανόμενων κομματιών (data intensive loops) του κώδικα.

Δημοσ.

Θεωρητικά μπορεί να χρησιμεύσει ώστε να φτιάξεις κώδικα που να είναι optimized για την συγκεκριμένη cpu, ή και μικρότερος σε μέγεθος όταν γίνει η μετατροπή σε γλώσσα μηχανής...

Δημοσ.
η μόνη χρήση της Assembly που μπορώ να φανταστώ στις μέρες μας

και πάντα για PC είναι να "σπας" προγράμματα.

 

Αυτή είναι μια πραγματική χρήση της assembly σε PC σήμερα. Όπως επίσης χρησιμοποιείται σε device drivers και για να γράφουν exploits (shell code). Ακόμη μπορείς να την χρησιμοποιήσεις για να εκμεταλλευτείς MMX, SSE κλπ. αν και υπάρχουν πολύ καλύτεροι τρόποι.

Παρόλα αυτά βοηθάει να ξέρεις assembly ακόμη και όταν προγραμματίζεις σε C# (πόσο μάλλον σε C, Pascal, C++ κλπ).

Όμως όποιος νομίζει ότι μπορεί να κάνει hand optimize κώδικα και να τον κάνει πιο γρήγορο από έναν compiler γελιέται οικτρά. Ποιος μπορεί να πει ότι γνωρίζει τέλεια τον τρόπο που πρέπει να εισάγονται οι εντολές ώστε να εκμεταλλεύεσαι το pipeline στο έπακρο και άλλες τέτοιες τεχνικές και μάλιστα σε 100άδες γραμμές κώδικα;

Assembly επίσης χρησιμοποιείται και σε μικροελεγκτές αν και εκεί υπάρχουν κανονικές γλώσσες προγραμματισμού.

Θα σου πρότεινα να μάθεις assembly αν και το Art of assembly μιλάει για 16 bit αρχιτεκτονική (οι εντολές είναι ίδιες) με segment/offset addressing κάτι που δεν γίνεται σε 32bit.

Δημοσ.

Το οτι θα μαθεις assembly δε σημαινει οτι θα γινεις και καλυτερος προγραμματιστης. Αναλογα με το αντικειμενο σου παντα... Ειδικα αν στην πραξη, και οχι για εκπαιδευτικους λογους, ασχοληθεις με μια πιο high level γλωσσα οπως C# ή Java, τοτε πραγματικα δε θα σου προσφερει τιποτα. Και οπως λεει και προηγουμενο post αν νομιζεις οτι θα μπορεσεις να βελτιωσεις τεχνικες και κωδικα που ηδη υπαρχει να το βγαλεις απο το μυαλο σου.

Αν το κανεις για την χαρα της δημιουργιας και μαθησης και μονο τοτε have fun!!!

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

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

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