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

Win32 Assembly


afnman

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

Δημοσ.

Kαλησπέρα...Ψάχνω ενα πολυ καλό βιβλίο που για εκμάθηση Αssembly σε win32 απο ελληνική και ξένη βιβλιογραφία.Κατα προτιμήση σε free e-book :)

Δημοσ.

Poios o logos na ma8eis assembly (kai eidika gia win32) ?

 

reverse engeniering?;)

 

No offence - apo periergeia rotaw

Δημοσ.

Είναι τρομερά χρήσιμη για optimizations σε γλώσσες όπως η C++. Αν ξέρεις την λογική με την οποία μεταφράζει ένας C/C++ compiler ξέρεις και πως πρέπει να γράψεις τον κωδικά σου για καλυτερη απόδοση ή λιγότερη κατανάλωση μνήμης κτλ

Δημοσ.
Είναι τρομερά χρήσιμη για optimizations σε γλώσσες όπως η C++. Αν ξέρεις την λογική με την οποία μεταφράζει ένας C/C++ compiler ξέρεις και πως πρέπει να γράψεις τον κωδικά σου για καλυτερη απόδοση ή λιγότερη κατανάλωση μνήμης κτλ

 

Ίσως ο μόνος καλός λόγος να χρησιμοποιήσεις assembly είναι για να χρησιμοποιήσεις εντολές που ξέρεις ότι υπάρχουν, αλλά ο κώδικάς σου δεν επιτρέπει στον compiler να τις εκμεταλευτεί (βλ. MMX, SSEx κλπ).

Δημοσ.

Αν ξέρεις assembly, μπορείς να κάνεις τα πάντα. Το ζήτημα είναι αν χρειάζεται να μάθεις assembly. Πχ. εάν θες να κάνεις κάτι που γίνεται και με C, καλύτερα να το κάνεις με C. Αλλά αν ξέρεις assembly, you rule ;)

 

Pavel

Δημοσ.

Assembly είναι καλή για βελτιστοποιηση κομματιών κωδικα (ενος βρογχου πχ) σε προγράμματα που οι επιδόσεις κυρίως και μετά η μικρή δεσμευση μνήμης είναι πολύ σημαντικα(πχ σε ενα video codec). Και για reverse enginnering φυσικά

 

Μόνο αν κάνεις καποιο απο τα δύο νομίζω αξίζει να ασχοληθείς

Δημοσ.

καλησπερα

Μπραβο φιλαρακο ξεκινα ειναι πολυ καλη γλωσσα αρκετα δυσκολη αλλα πολυ δυνατη

μπραβο και παλι

Δημοσ.

“Premature optimization is the root of all evil (or at least most of it) in programming.” - Donald Knuth

 

Όταν ξεκινάς οτιδήποτε:

1) το σχεδιάζεις καλά

2) ξεκινάς την υλοποίηση σε κάποια γλώσσα που να επιτρέπει εύκολη συντήρηση

3) όταν τελειώσεις και διαπιστώσεις ότι το πρόγραμμά σου κάνει αυτό που υποτίθεται σε κάθε περίπτωση, τότε μετράς απόδοση

4) αν δεν σου είναι αρκετή, κοιτάς που είναι το bottleneck

5) αν το bottleneck είναι σε κάποιον αλγόριθμο, τότε ερευνάς την χρήση άλλων αλγορίθμων που μπορεί να φαίνονται χειρότεροι, αλλά στην δικιά σου περίπτωση να δουλεύουν καλύτερα

6) αν ΤΕΛΟΣ γνωρίζεις ότι ο compiler σου αγνοεί πιθανές ΓΡΗΓΟΡΕΣ εντολές του επεξεργαστή, γράφεις μικρές συναρτήσεις με assembly που κάνουν κάτι πολύ συγκεκριμένο

 

Δεν ξεκινάς κάτι κατευθείαν σε assembly επειδή:

α) αύριο δε θα θυμάσαι τι κάνει και γιατί

β) ο compiler κάνει καλύτερο register allocation και instruction reordering

γ) δεν είναι portable

 

Τέλος, για το αρχικό μήνυμα, αφού φύγαμε off-topic: υπάρχουν πολλοί assemblers. Για ποιον ακριβώς θέλεις;

Δημοσ.

Δεν θέλω αssembler...ενα καλο book για assembly ψάχνω.

Δεν έχω σκοπο να γράψω assembly code...

Στοχος μου είναι το reserve engineering σε "windows" εφαρμογές και να εμβαθύνω τις γνώσεις μου πάνω στους compilers...

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

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

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