Εδώ είναι γιατί:
* Διαφορετικές αρχιτεκτονικές: Κάθε οικογένεια επεξεργαστή έχει μια μοναδική αρχιτεκτονική με το δικό της σύνολο οδηγιών, την αντιμετώπιση των λειτουργιών και το σετ εγγραφών. Αυτό οδηγεί σε ξεχωριστές γλώσσες συναρμολόγησης για καθένα.
* Ρύθμιση εντολών: Οι οδηγίες που διατίθενται στο συγκρότημα X86 (όπως το MOV, Add, JMP) είναι ειδικές για την αρχιτεκτονική X86 και διαφέρουν από τις οδηγίες που χρησιμοποιούνται στο VAX ή 68x00.
* Λειτουργίες απευθυνόμενοι: Οι οδηγίες για τους τρόπους πρόσβασης στη μνήμη και τα δεδομένα (όπως το έμμεσο μητρώο, το βασικό κ.λπ.) είναι μοναδικά για κάθε οικογένεια επεξεργαστών.
* Μητρώα: Ο αριθμός και οι τύποι των καταχωρητών που χρησιμοποιούνται από τον επεξεργαστή (όπως οι καταχωρητές γενικής χρήσης, οι καταχωρητές τμήματος κ.λπ.) διαφέρουν επίσης σημαντικά μεταξύ των αρχιτεκτονικών.
με απλούστερους όρους: Φανταστείτε τη γλώσσα συναρμολόγησης ως γλώσσα επικοινωνίας με έναν συγκεκριμένο τύπο υπολογιστή. Ακριβώς όπως απαιτούνται διαφορετικές γλώσσες για την επικοινωνία με ανθρώπους από διαφορετικούς πολιτισμούς, απαιτούνται διαφορετικές γλώσσες συναρμολόγησης για να επικοινωνούν με διαφορετικές οικογένειες επεξεργαστών.
Παράδειγμα:
* x86: `mov eax, [ebx]` (Μετακινήστε τα δεδομένα από τη θέση μνήμης που υποδεικνύεται από το EBX Register στο EAX Register)
* vax: `Movl @r1, r0` (Μετακινήστε τα δεδομένα από τη θέση μνήμης που υποδεικνύεται από το μητρώο r1 στο μητρώο r0)
* Motorola 68x00: `Move.l (a0), d0` (Μετακίνηση δεδομένων από τη θέση μνήμης που υποδεικνύεται από το μητρώο διευθύνσεων a0 στο μητρώο δεδομένων d0)
Όπως μπορείτε να δείτε, η σύνταξη και οι οδηγίες που χρησιμοποιούνται είναι εντελώς διαφορετικές.
Συμπέρασμα: Ενώ η γλώσσα συναρμολόγησης είναι μια γλώσσα προγραμματισμού χαμηλού επιπέδου, είναι προσαρμοσμένη στη συγκεκριμένη αρχιτεκτονική του επεξεργαστή. Κάθε οικογένεια επεξεργαστή έχει τη δική της ξεχωριστή γλώσσα συναρμολόγησης.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα