Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/4l3x777/switch_protected_mode
Switch Protected Mode
https://github.com/4l3x777/switch_protected_mode
assembler bochs gdt protected-mode
Last synced: about 1 month ago
JSON representation
Switch Protected Mode
- Host: GitHub
- URL: https://github.com/4l3x777/switch_protected_mode
- Owner: 4l3x777
- License: gpl-3.0
- Created: 2023-12-15T12:58:59.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2023-12-15T13:24:40.000Z (about 1 year ago)
- Last Synced: 2023-12-15T14:24:24.240Z (about 1 year ago)
- Topics: assembler, bochs, gdt, protected-mode
- Language: Assembly
- Homepage:
- Size: 1.05 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Switch Protected Mode. Программа для перевода процессора в защищенный режим
## Задача - перевести процессор в защищенный режим и напечатать сообщение на экран
+ сформировать четыре сегментных GDT дескриптора:
+ gdt_code | base = 0x7e00 | length = 0x200 | Access: RX для сегмента кода программы в PM
+ gdt_data | base = 0x8000 | length = 0x200 | Access: RW для сегмента данных программы в PM
+ gdt_gpu | base = 0xb8000 | length = 0xffff | Access: RW для сегмента данных чтения и записи в видеопамять программы в PM
+ gdt_stack | base = 0x8200 | length = 0x200 | Access: RW для сегмента стэка программы в PM![alt text](/img/gdt.png)
+ программа состоит из 2 частей:
+ первая часть 16-bit программа для RM boot сектора, выводит сообщение из RM, формирует GDT, загружает программу для PM
+ вторая чать 32-bit программа для PM, выводит сообщение через видеопамять## scr_floppyA
+ содержит код программы для 16-bit RM boot сектора
## scr_floppyB
+ содержит код программы для 32-bit PM
## bin
+ protected_mode.bin - compiled scr_floppyA
+ print_protected_mode.bin - compiled scr_floppyB
+ bochsrc.bxrc - bochs config## Для проверки корректной работы необходимо
+ ```bochs-2.6.9``` or later
+ ```fasm``` compiler
+ ```fasm-editor``` IDE
+ ```gdt_descriptor_builder``` для формирования нужного GDT дескриптора## Пример работы
![alt text](/img/protected_mode.gif)