Πανεπιστήμιο Μακεδονίας
Τμήμα Εφαρμοσμένης Πληροφορικής
Εργαστήριο Παράλληλης Κατανεμημένης Επεξεργασίας

The Art of Assembly Language Programming

ΕΙΣΑΓΩΓΗ

Τα παρακάτω κεφάλαια αποτελούν τμήμα του βιβλίου Art of Assembly Language, 30 Σεπτεμβριου 1996, του Randall Hyde. Το βιβλίο αποτελείται από 25 κεφάλαια συνολικά, τα οποάα μπορείτε να επισκεφτείτε στη διεύθυνση http://kanaima.ciens.ucv.ve/ArtofAsm/ArtofAsm.html . Εδώ παρουσιάζεται μια επιλογή από τα κεφάλαια 3, 4 και 5 του βιβλίου και περιέχει τις πρώτες βασικές έννοιες για την εκμάθηση της γλώσσας Assembly.

Επίσης μπορείτε να βρείτε σειρά προγραμμάτων σε Pascal και Assembly που καλύπτουν το όλες τις συνηθιμένες προγραμματιστικές δομές και τις βασικές δομές δεδομένων. Έτσι ο γνώστης προγραμματισμού γλωσσών υψηλού επιπέδου μπορεί να αντιληφθεί ευκολότερα την αντιστοιχία του προγραμματσιμού σε Assembly.



ΚΕΦΑΛΑΙΟ 3 : ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ

 3.0  Περίληψη
 3.1  Τα βασικά συστατικά του συστήματος
 3.1.1  Ο Δίαυλος του συστήματος (System Bus)
 3.1.1.1  Δίαυλος δεδομένων (Data Bus)
 3.1.1.2  Δίαυλος Διευθύνσεων (Address Bus)
 3.1.1.3  Δίαυλος Ελέγχου   (Control Bus)
 3.1.2.  Το υποσύστημα της μνήμης
 3.1.3.  Το υποσύστημα Εισοδου / Εξοδου (Ι/Ο)

 3.2. Χρονισμός Συστήματος

 3.2.1. Ρολόι Συστήματος
 3.2.2. Πρόσβαση Μνήμης και Ρολόι Συστήματος
 3.2.3. Wait state - Κατάσταση Αναμονής
 3.2.4. Κρυφή Μνήμη – (Cache Memory)
 3.3 Οι 886, 8286, 8486, 8686 "υποθετικοί" επεξεργαστές
 3.3.1 Οι καταχωρητές της Κεντρικής Μονάδας Επεξεργασίας (CPU)
 3.3.2 Αριθμητική και λογική μονάδα (Arithmetic & Logical Unit, ALU)
3.3.3 Η Μονάδα Διεπαφής Διάυλου (BIU)
 3.3.4 Η μονάδα ελέγχου και το σετ εντολών
 3.3.5 To x86 σετ εντολών
3.3.6 Τύποι διευθυνσιοδότησης στον επεξεργαστή x86
3.3.7 Κωδικοποιώντας x86 εντολές
3.3.8 Βηματική εκτέλεση εντολών
3.3.9 Οι διαφορές μεταξύ των x86 επεξεργαστών
3.3.10 Ο 886 επεξεργαστής
 3.3.11. Ο 8486 Επεξεργαστής
 3.3.11.1. Σωλήνωση 8486
 3.3.11.2. Μποτιλιάρισμα σωλήνωσης (σωλήνωση)
 3.3.11.3. Cache, Ουρά Προ-ανάκλησης και ο 8486
 3.3.11.4. Κίνδυνοι στους 8486
 3.3.12. Ο 8686 Επεξεργαστής
 3.4. I/O   Είσοδος/Έξοδος
 3.5. Διακοπές και Ε/Ε με σφυγμομέτρηση

 
 


ΚΕΦΑΛΑΙΟ 4 ΔΙΑΤΑΞΗ ΚΑΙ ΠΡΟΣΒΑΣΗ ΜΝΗΜΗΣ

4.0 Περίληψη κεφαλαίου
4.1 Οι 80x86 CPUs : Από την πλευρά του προγραμματιστή
4.1.1 Οι 8086 καταχωρητές γενικού σκοπού
4.1.2 Οι 8086 καταχωρητές τμήματος
4.1.3 Οι 8086 καταχωρητές ειδικού σκοπού
4.1.4 Οι 80286 καταχωρητές
4.1.5 Οι 80386/80486 καταχωρητές
4.2 Η 8086 φυσική οργάνωση της μνήμης
4.3 Τμήματα στους 80x86
4.4 Κανονικοποιημένες διευθύνσεις στους 80x86
4.5 Καταχωρητές τμήματος στους 80x86 επεξεργαστές
4.6. The 80x86 Addressing Mode
4.6.1. Register Addressing Modes
4.6.2. 8086 Memory Addressing Modes
4.6.2.1. Ο τύπος Displacement Only
4.6.2.2. Οι έμμεσοι τύποι διευθυνσιοδότησης καταχωρητών.
4.6.2.3. Δεικτοδοτούμενοι τύποι διευθυνσιοδότησης
4.6.2.4. Based Indexed Addressing Modes
4.6.2.5. Based Indexed Plus Displacement Addressing Modes
4.6.2.6. Ένας εύκολος τρόπος για να θυμάστε τους 8086 τύπους διευθυνσιοδότησης μνήμης .
4.6.2.7. Τελευταίες Παρατηρήσεις για τους 8086 Addressing Modes.
4.6.3. Οι 80386 Τύποι Διευθυνσιοδότησης Καταχωρητή.
4.6.4. Οι 80386 Τύποι Διευθυνσιοδότησης Μνήμης .
4.6.4.1. Register Indirect Addressing Modes
4.6.4.2. 80386 Indexed, Base / Indexed and Base / Indexed / Disp Addressing Modes.
4.6.4.3. Οι 80386 Scaled Indexed Addressing Modes
4.6.4.4. Μερικές Τελευταίες Παρατηρήσεις για τον 80386 Τύπο         Διευθυνσιοδότησης Μνήμης.
4.7. Η Εντολή MOV του 80x86
4.8. Τελευταίες Παρατηρήσεις πάνω στην εντολή MOV

 

ΚΕΦΑΛΑΙΟ 5  ΜΕΤΑΒΛΗΤΕΣ ΚΑΙ ΔΟΜΕΣ     ΔΕΔΟΜΕΝΩΝ

5.0. Περίληψη
5.1. Κάποιες επιπρόσθετες εντολές : LEA, LES, ADD και MUL.
5.2. Δήλωση Μεταβλητών στο πρόγραμμα Assembly
5.3 Δήλωση και Προσπέλαση Βαθμωτών Μεταβλητών
5.3.1.Δήλωση και Χρήση Μεταβλητών Byte
5.3.2.Δήλωση και Χρήση Μεταβλητών WORD
5.3.3.Δήλωση και Χρήση DWORD Μεταβλητές .
5.3.4.Δήλωση και Χρήση FWORD, QWORD και TBYTE Μεταβλητές.
5.3.5.Δήλωση Κινητής Υποδιαστολής Μεταβλητών με REAL4, REAL8 και REAL10.
5.4.Δημιουργώντας τα δικά σου ονόματα τύπων με το TYPEDEF.

5.5.Τύποι Δεδομένων Δεικτών.

 
 
 

The Art of Assembly Language Programming - 30 SEP 1996

[Randall Hyde]