Υλικό υπολογιστών

Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> CPUs

Διαφορά bw μακροεντολές και διαδικασία σε μικροεπεξεργαστή;

Οι μακροεντολές και οι διαδικασίες είναι και οι δύο τρόποι δημιουργίας επαναχρησιμοποιήσιμου κώδικα στη γλώσσα assembly. Ωστόσο, υπάρχουν ορισμένες βασικές διαφορές μεταξύ των δύο.

Μακροεντολές

* Βασίζονται σε κείμενο

* Επεκτείνονται από το assembler πριν ξεκινήσει η διαδικασία συναρμολόγησης

* Μπορεί να χρησιμοποιηθεί για τον ορισμό σταθερών, ετικετών και οδηγιών

* Δεν μπορεί να χρησιμοποιηθεί για τη δημιουργία δομών ελέγχου (όπως βρόχους και διακλαδώσεις)

Διαδικασίες

* Βασίζονται σε δυαδικό περιεχόμενο

* Αποθηκεύονται στο εκτελέσιμο αρχείο

* Μπορεί να γίνει κλήση από άλλα μέρη του προγράμματος

* Μπορεί να χρησιμοποιηθεί για τη δημιουργία δομών ελέγχου

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

Ακολουθεί ένα παράδειγμα μακροεντολής στη γλώσσα assembly:

```

.macro inc(r)

addi r, r, 1

.τελ

```

Αυτή η μακροεντολή αυξάνει την τιμή στον καταχωρητή `r`. Χρησιμοποιείται ως εξής:

```

inc r1; Αυξήστε την τιμή σε r1

```

Ακολουθεί ένα παράδειγμα διαδικασίας στη γλώσσα assembly:

```

inc:

προσθέστε r1, r1, #1; Αυξήστε την τιμή σε r1

bx lr; Επιστροφή από τη διαδικασία

```

Αυτή η διαδικασία αυξάνει την τιμή στον καταχωρητή «r1» και στη συνέχεια επιστρέφει στον καλούντα. Ονομάζεται ως εξής:

```

bl inc; Καλέστε τη διαδικασία inc

```

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα