Системное программное обеспечение. Особенности программирования 32-разрядных процессоров. Рощин А.В. - 58 стр.

UptoLike

Составители: 

58
add [ScreenString],4
mov [ScreenColumn],8
mov EAX,[BP+2]
call ShowBinDWord
add [ScreenString],4
mov [ScreenColumn],8
mov EAX,CR0
call ShowBinDWord
; Ожидаем нажатия любого символа на клавиатуре
call GetChar
; Очищаем экран
call ClearScreen
; Восстановить глобальные переменные
pop [ScreenColumn]
pop [ScreenString]
pop AX
mov [TextColorAndBackground],AL
pop DS
popfd
popad
ret
ENDP ShowRegs
ENDS
В программе LAddrTest, показанной в листинге 2.3 [1], используются
процедуры из листингов 2.1 и 2.2 для включения режима линейной адресации
и демонстрации изменения содержимого сегментных регистров, которое при
этом происходит (процедура установки линейного режима перезаписывает
теневой регистр у регистра GS, а регистры ES и FS просто обнуляет). После
выполнения программы режим линейной адресации данных сохраняется, и
любая другая программа, в том числе написанная на языке высокого уровня,
может через GS обращаться к любой области памяти по физическому
адресу.
Листинг 2.3 – Включение режима линейной адресации
IDEAL
P386
LOCALS
MODEL MEDIUM
; Подключить файл мнемонических обозначений
; кодов управляющих клавиш
             add     [ScreenString],4
             mov     [ScreenColumn],8
             mov     EAX,[BP+2]
             call    ShowBinDWord
             add     [ScreenString],4
             mov     [ScreenColumn],8
             mov     EAX,CR0
             call    ShowBinDWord
     ; Ожидаем нажатия любого символа на клавиатуре
             call    GetChar
     ; Очищаем экран
             call    ClearScreen

     ; Восстановить глобальные переменные
             pop     [ScreenColumn]
             pop     [ScreenString]
             pop     AX
             mov     [TextColorAndBackground],AL
             pop     DS
             popfd
             popad
             ret
     ENDP ShowRegs
     ENDS


     В программе LAddrTest, показанной в листинге 2.3 [1], используются
процедуры из листингов 2.1 и 2.2 для включения режима линейной адресации
и демонстрации изменения содержимого сегментных регистров, которое при
этом происходит (процедура установки линейного режима перезаписывает
теневой регистр у регистра GS, а регистры ES и FS просто обнуляет). После
выполнения программы режим линейной адресации данных сохраняется, и
любая другая программа, в том числе написанная на языке высокого уровня,
может через GS обращаться к любой области памяти по физическому
адресу.

           Листинг 2.3 – Включение режима линейной адресации
     IDEAL
     P386
     LOCALS
     MODEL MEDIUM

     ; Подключить файл мнемонических обозначений
     ; кодов управляющих клавиш


                                      58