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

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

Με ποιο κωδικό συναρμολόγησης μπορείτε να αλλάξετε CPU σε προστατευμένη λειτουργία;

Δεν μπορείτε να μεταβείτε απευθείας σε προστατευμένη λειτουργία με μία εντολή συναρμολόγησης. Πρόκειται για μια διαδικασία πολλαπλών βημάτων που περιλαμβάνει τη φόρτωση του παγκόσμιου πίνακα περιγραφών (GDT) και τη ρύθμιση της σημαίας PE στο CR0 CR0. Ακολουθεί ένα απλοποιημένο παράδειγμα που αποδεικνύει τα βασικά βήματα στη συναρμολόγηση (υποθέτοντας ότι έχετε ένα προκαθορισμένο GDT φορτωμένο σε μια συγκεκριμένη διεύθυνση):

`` `Συνέλευση

. 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.

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

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