рдУрдПрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХрдИ рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреЛ рдЪрд▓рд┐рдП рдореИрдВ рдЖрдкрдХреЛ рдереЛрдбрд╝рд╛ рд╕рд╛ рдмрддрд╛ рджреЗрддрд╛ рд╣реВрдВ, (рд▓реЗрдХрд┐рди рдЖрдЗрдП рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЖрдк рд╕реНрд╡рдпрдВ рд╣реА рдордирди рдкрдврд╝реЗрдВрдЧреЗ рддрд╛рдХрд┐ рдХреЛрдИ рдмрд╛рдд рд╣реЛ)ред
рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ, рдиреЗрдЯрд╡рд░реНрдХ рдХреА рд╡рд┐рд╢рд╛рд▓рддрд╛ рдореЗрдВ рдкреАрдПрдо рдкрд░ рд╡рд╕рд╛ рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдПрдХ рдмрд╛рджрд▓ рд╣реИ, рдФрд░
рдЗрд▓реА рдФрд░
рдкреЗрд╣рд╛рдЯ рдиреЗ рдЗрд╕ рдореЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝реА
рдмрд╛рдд рдХреА , рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЛрдВрдиреЗ рдореБрдЭреЗ рд╡реИрд╕реЗ рднреА рд╕рд╛рдорд╛рдиреНрдп рдврд╛рдВрдЪреЗ рдореЗрдВ рдЗрд╕рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ред рдЕрдм рдореИрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдПрдХ рд╕рд┐рджреНрдзрд╛рдВрдд рджреВрдВрдЧрд╛ (рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЗрдВрдЯреЗрд▓ рдиреЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЗрд╕рдХреЗ рд▓рд┐рдП рдорди рд▓рд┐рдЦрд╛ рд╣реИ), рдлрд┐рд░ рд╣рдо рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред
рд╕рдВрд░рдХреНрд╖рд┐рдд рдореЛрдб рдХрд╛ рдкрд░рд┐рдЪрдпредрдЗрд╕рд▓рд┐рдП, DOS'a рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореЛрдб (RM) рдХреЗ рдмрд╛рдж рд╕реЗ рдкреАрдПрдо рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рдХрд╛рдлреА рдЕрд▓рдЧ рд╣реИред рдЕрдм рдЖрдкрдХреЛ рдЗрд╕рдХреА рдЖрджрдд рдбрд╛рд▓рдиреА рд╣реИ: рдХреЛрдИ рд╕реНрдерд┐рд░, 64 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдЦрдВрдб рдирд╣реАрдВ рд╣реИрдВ, 1 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рдореЗрдВ рд░реБрдХрд╛рд╡рдЯ рддрд╛рд▓рд┐рдХрд╛, рдЦрдВрдб рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдореЗрдВ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рдард┐рдХрд╛рдиреЛрдВ рдХреЗ рдкрддреЗ, рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ, рдПрдХ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдИ рджреБрдирд┐рдпрд╛ред
рдЕрдм
рдЧреНрд▓реЛрдмрд▓ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЯреЗрдмрд▓ (GDT) рдореЗрдВ рд╕реЗрдЧрдореЗрдВрдЯ рдХрд╛ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЗрд╡рд▓ рдПрдХ рдкреНрд░рддрд┐ рдореЗрдВ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╡рд╣ рдорди рдХреА рдПрдХ рд╕рдВрд░рдЪрдирд╛ рд╣реИред рдЦрдВрдб рдирд╣реАрдВ! рдЗрд╕реЗ рдореЗрдореЛрд░реА рдореЗрдВ рдХрд╣реАрдВ рднреА рд╕реНрдерд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрддрд╛ рдФрд░ рд╕реАрдорд╛ рдЬреАрдбреАрдЯреАрдЖрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рджрд░реНрдЬ рд╣реИред рдпрд╣рд╛рдБ рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рд╣реИ:
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕реНрд╡рдпрдВ рдирд┐рдореНрди рд╕рдВрд░рдЪрдирд╛ рдХреА рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рд╣реИрдВ (рд╡реИрд╕реЗ, рдЕрд╢рдХреНрдд рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рд░рд┐рдХреНрдд рд╣реИред рдпрд╣ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЕрд╢рдХреНрдд рд╡рд┐рд╡рд░рдгрдХ рджреНрд╡рд╛рд░рд╛ 'рд╡рд░реНрдгрд┐рдд' рд╕реНрдореГрддрд┐ рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдкрд░, #GP - рд╕рд╛рдорд╛рдиреНрдп рд╕реБрд░рдХреНрд╖рд╛ рджреЛрд╖ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ):
рдЖрдЗрдП рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдкрд░ рдХрд░реАрдм рд╕реЗ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред
1. рд╕реЗрдЧрдореЗрдВрдЯ рдХреА рд╕реАрдорд╛:рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдирд╛рдо рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рд╕реВрдХреНрд╖реНрдорддрд╛ рд╣реИред рдХреБрддреНрддреЗ рдХреЛ рдмрд┐рдЯ рдЬреА (рджрд╛рдиреЗрджрд╛рд░рддрд╛) рдореЗрдВ рджрдлрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдпрд╣ рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдореЗрдореЛрд░реА рдмрд╛рдЗрдЯреНрд╕ рдореЗрдВ 'рдЧрд┐рдиреА' рдЬрд╛рддреА рд╣реИред рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рдЦрдВрдб рдЖрдХрд╛рд░ 1 рдмрд╛рдЗрдЯ рд╕реЗ 1 рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдкреНрд░рддрд┐ рдЖрдХрд╛рд░ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рдпрджрд┐ рд╣рдо рдЗрд╕реЗ 1 рдкрд░ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкреЗрдЬрд┐рдВрдЧ рдореЗрдореЛрд░реА рджрд░реНрдЬ рдХреА рдЬрд╛рдПрдЧреАред рдлрд┐рд░ рд╣рдо 4 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ рд╕реЗ 4 рдЧреАрдЧрд╛рдмрд╛рдЗрдЯ рд░реИрдо рддрдХ 4 рдХрд┐рд▓реЛрдмрд╛рдЗрдЯ (рдкреГрд╖реНрда рдЖрдХрд╛рд░) рдХреЗ рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде рд╕рдВрдмреЛрдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдкреГрд╖реНрда рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдмреЗрд╣рддрд░ рд╣реЛрддрд╛ рд╣реИ (рддреБрд▓рдирд╛ рдХрд░реЗрдВ (1MB + 64Kb-16byte) рдФрд░ 4GB)ред рдЖрдЗрдП рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдХреЗрд╡рд▓ рдЦрдВрдбрд┐рдд рдкрддреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдкреЗрдЬрд┐рдВрдЧ рдПрдХ рдЕрд▓рдЧ рдЪрд░реНрдЪрд╛ рдХрд╛ рдкрд╛рддреНрд░ рд╣реИред
2. рдЖрдзрд╛рд░ рдкрддрд╛:рдпрд╣рд╛рдВ рд╣рдо рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рднреМрддрд┐рдХ рдкрддреЗ рдХрд╛ рд╕рдВрдХреЗрдд рджреЗрддреЗ рд╣реИрдВред
3. рдкреНрд░рдХрд╛рд░ рдХреНрд╖реЗрддреНрд░:рдмрд┐рдЯреНрд╕ рдХреЗ рд╕рдВрдпреЛрдЬрди рдЦрдВрдб рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
4. рдПрд╕ (рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛ рдкреНрд░рдХрд╛рд░):рдЗрдВрдЯреЗрд▓ рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдпрд╣ рдмрд┐рдЯ рд╕реЗрдЯ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рд╡рд░реНрдгрдирдХрд░реНрддрд╛ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЧрдореЗрдВрдЯ рдХреЗ рд▓рд┐рдП рд╣реИ, рдЕрдиреНрдпрдерд╛ - рдХреЛрдб рдпрд╛ рдбреЗрдЯрд╛ред рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдорддрд▓рдм рд╣реИ рдПрд▓рдбреАрдЯреА, рдЯреАрдПрд╕рдПрд╕, рдЗрдВрдЯрд░рдкреНрдЯ рдЧреЗрдЯреНрд╕ рдФрд░ рдЙрдирдХреЗ рдЬреИрд╕реЗ рдЕрдиреНрдп (рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ)ред
5. рдбреАрдкреАрдПрд▓ (рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рд╡ рдкреНрд░рд┐рд╡рд┐рд▓реЗрдЬ рд▓реЗрд╡рд▓):рд╡рд░реНрдгрд┐рдд рдЦрдВрдб рдХреЗ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ред рд░рд┐рдВрдЧреНрд╕ рдХреЛ рд╣рд░ рдХреЛрдИ рдЬрд╛рдирддрд╛ рд╣реИред
6. рдкреА (рдЦрдВрдб рд╡рд░реНрддрдорд╛рди):рдпрджрд┐ рдпрд╣ рдмрд┐рдЯ рд╕реЗрдЯ рд╣реИ, рддреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЛ рдкрддрд╛ рд╣реИ рдХрд┐ рдЦрдВрдб рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореЗрдореЛрд░реА рдореЗрдВ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЗрд╕реЗ рд╡реИрдз рдХрд╣рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ)ред рдпрджрд┐ рдЖрдк рдПрдХ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЪрдпрдирдХрд░реНрддрд╛ рдХреЛ рдЦрдВрдб рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреА рдмрд┐рдЯ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ #NP (рдореМрдЬреВрдж рдирд╣реАрдВ) рдЕрдкрд╡рд╛рдж рдЙрддреНрдкрдиреНрди рд╣реЛрдЧрд╛ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдореИрдВ рдЗрд╕ рдЕрд▓рдВрдХреГрдд рд╡рд╛рдХреНрдпрд╛рдВрд╢ рдХрд╛ рдЕрд░реНрде рдереЛрдбрд╝рд╛ рдмрд╛рдж рдореЗрдВ рд╕рдордЭрд╛рдКрдВрдЧрд╛ред
7. рдбреА / рдмреА:рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЦрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреА рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИред
1. рдХреЛрдб рдЦрдВрдбреЛрдВ рдХреЗ рд▓рд┐рдП:32 рдпрд╛ 16 рдмрд┐рдЯ рдкреНрд░рднрд╛рд╡реА рдкрддрд╛ рд▓рдВрдмрд╛рдИ рдФрд░ рдСрдкрд░реЗрдВрдб рдЖрдХрд╛рд░ред
(1-32; 0-16);
2. рд╕реНрдЯреИрдХ рдХреЗ рд▓рд┐рдП:рд╕реНрдЯреИрдХ рдкреЙрдЗрдВрдЯрд░ 32 рдпрд╛ 16 рдмрд┐рдЯ рдХрд╛ рд╣реИред (1-32; 0-16);
8. рдЬреА:рдпрд╣ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕реА рдЗрдХрд╛рдЗрдпрд╛рдБ (рдмрд╛рдЗрдЯ, рдкреГрд╖реНрда) рдЦрдВрдб рд╕реАрдорд╛ рдХреЛ рдорд╛рдкрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, CR0 рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ 31 рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рдХреЗ рдкреАрдПрдо рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╕рдордп рдкреЗрдЬрд┐рдВрдЧ рдХреЛ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА:рд╣рдо рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВ рдХрд┐ рдЧреНрд▓реЛрдмрд▓ рд╢рдмреНрдж рд╡реНрдпрд░реНрде рдирд╣реАрдВ рд╣реИред рдЗрд╕рд▓рд┐рдП рдЕрднреА рднреА рдХрд┐рд╕реА рддрд░рд╣ рдХреА рдЧреЛрд▓реА рд╣реИред рд╕рдЪ рд╣реИ, рдПрдХ
рд╕реНрдерд╛рдиреАрдп рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рд╡ рдЯреЗрдмрд▓ рднреА рд╣реИ ред рдПрдХ рдорд╣рд╛рди рдХрдИ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рд░реНрдпреЛрдВ рдЖрджрд┐ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди
рдПрд▓рдбреАрдЯреА рдкрд╣рд▓реЗ
рд╕реЗ рд╣реА рдПрдХ рдЦрдВрдб рд╣реИ! рдЗрд╕рд▓рд┐рдП 'рд╕реНрдерд╛рдиреАрдп рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдкреНрд▓реЗрдЯ рдХреЗ рд╕реЗрдЧрдореЗрдВрдЯ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░' рдЬреИрд╕реЗ рд╡рд╛рдХреНрдпрд╛рдВрд╢реЛрдВ рдХреА рдЖрджрдд рдбрд╛рд▓реЗрдВред
рд╣рдордиреЗ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЗрд╕реЗ
GDTR рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдЪрд▓рди рд╕реЗ рджреВрд░ рд╣реИред
GDTR рдХреЛ lgdt fword рдХрдорд╛рдВрдб (рдорд╛рди) рдХреЗ рд╕рд╛рде рдЖрдмрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдмрдирд╛рдиреЗ рдФрд░ рдЗрд╕реЗ рдЙрдкрд░реЛрдХреНрдд рд░рдЬрд┐рд╕реНрдЯрд░ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕ рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЕрднреА рднреА рдЯреАрдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реА рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдкреВрд░реЗ рдпреВрд░реЛрдк рдореЗрдВ рд╕рд░рдкрдЯ рджреМрдбрд╝ рд░рд╣реЗ рд╣реИрдВред
рдПрдХ рдФрд░ рдмрд┐рдВрджреБред рдкреАрдПрдо рдореЗрдВ, рд╕реЗрдЧрдореЗрдВрдЯ рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реЗрдЧрдореЗрдВрдЯ (рдЖрд░рдПрдо рдХреЗ рд░реВрдк рдореЗрдВ) рдХреЗ рдЖрдзрд╛рд░ рдкрддреЗ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреНрд░рд╢рд┐рдХреНрд╖рд┐рдд рдЯреБрдХрдбрд╝реЗ рдЬрд┐рдиреНрд╣реЗрдВ
рдЪрдпрдирдХрд░реНрддрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдХреА рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
рдпрд╣рд╛рдБ рд╕реВрдЪрдХрд╛рдВрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╡рд┐рд╡рд░рдгрдХ рдХреА рдХреНрд░рдо рд╕рдВрдЦреНрдпрд╛ рд╣реИред
рдЯреАрдЖрдИ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЛ рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИ (
рдЬреАрдбреАрдЯреА рдпрд╛
рдПрд▓рдбреАрдЯреА рдореЗрдВ )ред
рдЕрдм рдЪреВрдВрдХрд┐ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕реЗ рдХрд░реЗрдВ, рд╣рдо рдкреАрдПрдо рд╕реЗ рдХреИрд╕реЗ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ (рдпрд╣ рдзреНрдпрд╛рди рд░рдЦреЗрдВ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдЖрд░рдПрдо рдХреЗ рд▓рд┐рдП рд╣реА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ)ред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ ... рдЖрдкрдХреЛ рдмрд╕ CR0 рдирд┐рдпрдВрддреНрд░рдг рд░рдЬрд┐рд╕реНрдЯрд░ рдХреЗ рдмрд┐рдЯ 0 рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореИрдВ рдЭреВрда рдмреЛрд▓ рд░рд╣рд╛ рд╣реВрдБред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдЖрдкрдХреЛ рд╕рднреА рдЗрдВрдЯрд░рдкреНрдЯ (
рдПрдирдПрдордЖрдИ (
рдиреЙрди рдорд╛рд╕реНрдХреЗрдмрд▓ рдЗрдВрдЯрд░рдкреНрдЯ рд╕рд╣рд┐рдд) рд╕рд╣рд┐рдд) рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ,
рдП 20 рдПрдбреНрд░реЗрд╕ рд▓рд╛рдЗрди рдЦреЛрд▓реЗрдВ (рддрд╛рдХрд┐ 32-рдмрд┐рдЯ рдПрдбреНрд░реЗрд╕рд┐рдВрдЧ рдЙрдкрд▓рдмреНрдз рд╣реЛ),
рдЬреАрдбреАрдЯреАрдЖрд░ рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рд╕реНрдЯрд╛рд░реНрдЯ рдорд╛рд░реНрдХ рдкрд░ рдЬрд╛рдПрдВред
рдЖрдЗрдП рдмреВрдЯрд▓реЛрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ (рдЖрдк KOLIBRI's рдХреА рд╕рд╣рд╛рдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВ), рдЬреЛ рд╣рдорд╛рд░реЗ рдХреЛрдб рдХреЛ 1000h: 0 (RM'ovsky, рдореИрдВ рдкрддреЗ рдХреЛ рдиреЛрдЯ рдХрд░рддрд╛ рд╣реВрдВ) рдкрд░ рд▓реЛрдб рдХрд░реВрдВрдЧрд╛ред
рдпрд╣ рдЙрди рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рд╕рд╣рдЬ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрдм рд╡реЗ рдмреВрдЯрд▓реЛрдбрд░ рд╕реЗ рд╕реАрдзреЗ рдкреАрдПрдо рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рдм рдХреБрдЫ рдереЛрдбрд╝рд╛ рдФрд░ рдЬрдЯрд┐рд▓ рд╣реИред рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ, рдЖрдЗрдП рдЙрд╕ рдХреЛрдб рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВ рдЬрд┐рд╕реЗ рдмреВрдЯрд▓реЛрдбрд░ рд▓реЛрдб рдХрд░реЗрдЧрд╛ (рд╣рдо рд╕рдм рдХреБрдЫ FASM рдкрд░ рд▓рд┐рдЦрддреЗ рд╣реИрдВ)ред рдпрд╣ рдПрдХ рддрд░рд╣ рдХрд╛ рдирд░рдХрдЧреГрд╣ рд╣реИред рдмреВрдЯ рдХрд░реЗрдВ, рдкреАрдПрдо рдХреЗ рдкрд╛рд╕ рдЬрд╛рдПрдВ рдФрд░ рд╢реБрднрдХрд╛рдордирд╛рдПрдВ рджреЗрдВред рд╡рд╣ рд╕рдм рд╣реИред
format binary
xor ax,ax
cli ;
mov ss,ax
xor sp,sp
sti
mov ax,3
int 10h
jmp 1000h:r_start
r_start:
mov ax,1000h;
mov ds,ax
mov es,ax
in al, 0x92; A20
or al, 2
out 0x92, al
cli ;
mov al,8Fh; NMI
out 70h,al
in al,71h
lgdt fword [GDTR]; GDTR
mov eax,cr0
or al,1; 0-
mov cr0,eax; PM
jmp fword 08h:Startup32; PM
align 8 ;
GDT:
dq 0 ;
db 0FFh,0FFh,0,0,0,9Ah,0CFh,0 ;
db 0FFh,0FFh,0,0,0,92h,0CFh,0;
db 0FFh,0FFh,0,80h,0Bh,92h,40h,0 ;
label GDT_SIZE at $-GDT
GDTR:
dw GDT_SIZE-1
dd GDT+10000h
; 32- . 1000h, 1000h*10h ( ; ) => GDTR (!) = 10000h ( )+offset
virtual ;, ,
rb 10000h-$;
end virtual
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;PM32 Entry;;;;;;;;;;;;;;;;;;;
use32
org $+10000h; : PM Flat-, ; PM org', ; Flat . .
Startup32: ; PM
mov ax,10h ; . (!
mov es,ax ;) - 08h. - 10h, - 18h
mov ds,ax
mov fs,ax
mov ss,ax
mov esp,10000h;
mov ax,18h
mov gs,ax
mov esi,hi_string ;,
call print
jmp $
;ESI -
print:
pushad
xor ebx,ebx
mov ah,07h;
puts:
mov al,[esi+ebx]
mov [gs:(ebx*2)],ax
inc ebx
test al,al
jnz puts
popad
ret
hi_string db 'Welcome to PM, dude',0
рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИ? рдмреВрдЯрд▓реЛрдбрд░ рдиреЗ рд╣рдореЗрдВ 1000h: 0 рдкрд░ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЛрдб рдХрд┐рдпрд╛, рдЬрд╣рд╛рдВ рд╕реЗ рд╣рдордиреЗ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦрд╛ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ
рдП 20 рдХреЛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛, рд╕рднреА рдЗрдВрдЯрд░рдкреНрдЯ рдХреЛ рдирд┐рд╖рд┐рджреНрдз рдХрд┐рдпрд╛,
рдЬреАрдбреАрдЯреАрдЖрд░ рдореЗрдВ рдЙрдЪрд┐рдд рдореВрд▓реНрдп рд▓реЛрдб рдХрд┐рдпрд╛, рдЗрдирдкреБрдЯ рд▓реЗрдмрд▓ рдкрд░ рдХреВрдж рдЧрдпрд╛ред рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рд╣рдо рдХреВрдж рдЧрдП
jmp fword 08h:Startup32
рдпрд╛рдиреА 08h рдПрдХ рдХреЛрдб рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рд╕реЗрд▓реЗрдХреНрдЯрд░ рд╣реИред рдЗрд╕рдХреА рдЖрджрдд рдбрд╛рд▓ рд▓реЗрдВред
рдЕрдм рдЗрд╕ рдЪрдорддреНрдХрд╛рд░ рдХреЛ рдХреИрд╕реЗ рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ, рдореИрдВ WinImage рдФрд░ VirtualBox рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рд╣рдо рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рдбрд┐рд╕реНрдХреЗрдЯ рдХреЗ рдмреВрдЯ рд╕реЗрдХреНрдЯрд░ рдореЗрдВ рдзрдХреЗрд▓ рджреЗрддреЗ рд╣реИрдВ рдФрд░ .bin рдлрд╛рдЗрд▓ рдХреЛ рд░реВрдЯ рдореЗрдВ рдбрд╛рд▓ рджреЗрддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ .vfd рдореЗрдВ рд╕рд╣реЗрдЬрддреЗ рд╣реИрдВ, рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рдбрд┐рд╕реНрдХ рдЫрд╡рд┐ рдкрд░ рдкрде рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрддреЗ рд╣реИрдВред
рдЕрдЧрд▓реЗ рдЕрдВрдХ рдореЗрдВ, рд╣рдо рдЗрдВрдЯрд░рдкреНрдЯ, рджреЛрд╖, рдЬрд╛рд▓, рдЧрд░реНрднрдкрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗ рдФрд░ рд╡реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдкрдХрдбрд╝реЗ рдЧрдП рдФрд░ рдбреАрдмрдЧ рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЖрдЗрдП рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВред
рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕реНрд░реЛрддред
1) рдореИрдВ рд╕рдЪреНрдЪреЗ рд░рд╛рд╕реНрддреЗ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рдиреЗ рдФрд░ рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣реА рдореЗрд░реА рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлреИрдВрдЯрдо_84 рдЙрд░реНрдл тАЛтАЛрдПрдЧреЛрд╕ рдХреЗ рдкреНрд░рддрд┐ рдЖрднрд╛рд░ рд╡реНрдпрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдХрдард┐рди рд╣реЛрдЧрд╛ред
2)
BrokenSword'a рд▓реЗрдЦ BrokenSword'a рд▓реЗрдЦред рд╡реЗ рдзреНрдпрд╛рди рджреЗрдиреЗ рд▓рд╛рдпрдХ рд╣реИрдВред
3)
рдЗрдВрдЯреЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЧрд╛рдЗрдб