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

UptoLike

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

61
; Подключить набор процедур вывода/вывода данных
include "lst_2_02.inc"
; Подключить подпрограмму, переводящую сегментный
; регистр GS в режим линейной адресации
include "lst_3_01.inc"
; Подключить подпрограмму, отображающую на экране
; содержимое регистров процессора
include "lst_3_02.inc"
END
Листинг 2.4 [1] демонстрирует использование линейной адресации для
отображения содержимого памяти компьютера на экране, то есть выдачи
дампа памяти. Программа MemoryDump позволяет просматривать все адресное
пространство, а не только оперативную память. Можно, например, считывать
память видеоконтроллера или вообще неиспользуемые области.
Кроме процедур ввода/вывода общего назначения, в MemoryDump
используются также следующие подпрограммы:
процедура ShowASCIIChar осуществляет вывод символа в ASCII-
коде в заданную позицию экрана;
процедура HexToBin32 осуществляет перевод числа (введенного с
клавиатуры адреса) из шестнадцатеричного кода в двоичный;
процедура GetAddressOrCommand принимает команды, вводимые с
клавиатуры (введенное число воспринимается как линейный адрес
памяти в шестнадцатеричном коде, нажатие на управляющие
клавишикак команда).
Листинг 2.4 – Использование линейной адресации для отображения на
экран содержимого оперативной памяти
IDEAL
P386
LOCALS
MODEL MEDIUM
; Подключить файл мнемонических обозначений
; кодов управляющих клавиш
include "lst_2_03.inc"
     ; Подключить набор процедур вывода/вывода данных
     include "lst_2_02.inc"
     ; Подключить подпрограмму, переводящую сегментный
     ; регистр GS в режим линейной адресации
     include "lst_3_01.inc"
     ; Подключить подпрограмму, отображающую на экране
     ; содержимое регистров процессора
     include "lst_3_02.inc"

     END


     Листинг 2.4 [1] демонстрирует использование линейной адресации для
отображения содержимого памяти компьютера на экране, то есть выдачи
дампа памяти. Программа MemoryDump позволяет просматривать все адресное
пространство, а не только оперативную память. Можно, например, считывать
память видеоконтроллера или вообще неиспользуемые области.
     Кроме процедур ввода/вывода общего назначения, в MemoryDump
используются также следующие подпрограммы:
     − процедура ShowASCIIChar осуществляет вывод символа в ASCII-
        коде в заданную позицию экрана;
     − процедура HexToBin32 осуществляет перевод числа (введенного с
        клавиатуры адреса) из шестнадцатеричного кода в двоичный;
     − процедура GetAddressOrCommand принимает команды, вводимые с
        клавиатуры (введенное число воспринимается как линейный адрес
        памяти в шестнадцатеричном коде, нажатие на управляющие
        клавиши — как команда).

  Листинг 2.4 – Использование линейной адресации для отображения на
                экран содержимого оперативной памяти
     IDEAL
     P386
     LOCALS
     MODEL MEDIUM

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


                                     61