`` `Συνέλευση
. Model Flat, Stdcall
.Stack 100h
.δεδομένα
Gdt_ptr dd gdt_table; Δείκτης στο GDT
; ... (Καθορίστε τη δομή σας GDT εδώ)
.κώδικας
κύριο proc
; 1. Τοποθετήστε το μητρώο GDT (GDTR) με τη διεύθυνση του GDT σας
LGDT [GDT_PTR]
; 2. Ρυθμίστε το bit PE στο μητρώο CR0
MOV EAX, CR0
ή eax, 1; Ρυθμίστε το bit 0 (σημαία PE) στο 1
mov cr0, eax
; 3. Πηδήξτε σε ένα τμήμα κώδικα που ορίζεται για προστατευμένη λειτουργία
JMP FAR PTR PORTED_MODE_ENTRY
; ... (Ο κωδικός σας για προστατευμένη λειτουργία ξεκινά εδώ)
protected_mode_entry proc
; ...
μουσκεύω
protected_mode_entry endp
κύριο endp
τελικός κύριος
`` `
Επεξήγηση:
1. `lgdt [gdt_ptr]`: Αυτή η εντολή φορτώνει τον καταχωρητή παγκόσμιου πίνακα περιγραφών (GDTR) με τη διεύθυνση του GDT σας. Το GDT περιέχει περιγραφείς για όλα τα τμήματα σε προστατευόμενη λειτουργία, συμπεριλαμβανομένων των τμημάτων κώδικα, των τμημάτων δεδομένων και των τμημάτων στοίβας.
2. ή eax, 1`: Αυτό θέτει το bit PE (προστασία) στο μητρώο CR0. Αυτό το bit ελέγχει τη λειτουργία λειτουργίας της CPU:0 για πραγματική λειτουργία, 1 για προστατευμένη λειτουργία.
3. Αυτή η εντολή εκτελεί ένα μακρινό άλμα, μετατρέποντας τη CPU σε προστατευμένη λειτουργία. Το `far ptr` υποδεικνύει ότι είναι ένα άλμα σε ένα νέο τμήμα, απαραίτητο για το διακόπτη λειτουργίας.
Σημαντικές εκτιμήσεις:
* ρύθμιση GDT: Πρέπει να ορίσετε το GDT σας πριν εκτελέσετε αυτόν τον κωδικό. Το GDT πρέπει να περιέχει περιγραφείς για όλα τα τμήματα που σκοπεύετε να χρησιμοποιήσετε σε προστατευμένη λειτουργία.
* Προστατευμένος κωδικός λειτουργίας: Μετά το άλμα, ο κωδικός σας πρέπει να γράφεται για προστατευμένη λειτουργία. Αυτό περιλαμβάνει τη χρήση επιλογέων τμήματος για την αντιμετώπιση της μνήμης και τη χρήση διαφορετικών οδηγιών για τη διαχείριση μνήμης.
* Πραγματική εκκίνηση λειτουργίας: Αυτός ο κωδικός υποθέτει ότι είστε ήδη σε πραγματική λειτουργία (λειτουργία 16-bit). Πρέπει να εκκινήσετε το σύστημά σας σε πραγματική λειτουργία πριν εισέλθετε στην προστατευμένη λειτουργία.
Θυμηθείτε: Αυτό είναι ένα βασικό παράδειγμα για σκοπούς επίδειξης. Θα χρειαστεί να το προσαρμόσετε στις συγκεκριμένες απαιτήσεις σας, όπως:
* Καθορισμός ενός πλήρους και κατάλληλου GDT.
* Ρύθμιση του πίνακα περιγραφέα διακοπής (IDT).
* Εφαρμογή διαχείρισης μνήμης προστατευμένου τρόπου λειτουργίας με τμηματοποίηση και τηλεειδοποίηση.
* Γράφοντας τον ειδικό κωδικό για τις εργασίες που πρέπει να εκτελέσετε.
Μπορείτε να βρείτε πιο ολοκληρωμένες πληροφορίες σχετικά με τον προγραμματισμό προστατευμένου τρόπου λειτουργίας στα εγχειρίδια επεξεργασίας Intel ή AMD.
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα