Вернутся на главную

MODEL MEDIUM


MODEL MEDIUM на нашем сайте

Статьи
Статьи для студентов
Статьи для учеников
Научные статьи
Образовательные статьи Статьи для учителей
Домашние задания
Домашние задания для школьников
Домашние задания с решениями Задания с решениями
Задания для студентов
Методички
Методические пособия
Методички для студентов
Методички для преподавателей
Новые учебные работы
Учебные работы
Доклады
Студенческие доклады
Научные доклады
Школьные доклады
Рефераты
Рефератывные работы
Школьные рефераты
Доклады учителей
Учебные документы
Разные образовательные материалы Разные научные материалы
Разные познавательные материалы
Шпаргалки
Шпаргалки для студентов
Шпаргалки для учеников
Другое

; Подключить файл мнемонических обозначений

; кодов управляющих клавиш

include "lst_2_03.inc"

; Подключить файл мнемонических обозначений цветов

include "lst_2_05.inc"

SEGMENT sseg para stack 'STACK'

DB 400h DUP(?)

ENDS

DATASEG

; Текстовые сообщения

Text1 DB 0,19,"Включение режима "

DB "линейной адресации данных",0

DB 11,0,"Для просмотра "

DB "содержимого регистров процессора",0

DB 12,0,"перед запуском процедуры "

DB "перехода в режим",0

DB 13,0,"линейной адресации нажмите "

DB "любую клавишу.",0

Text2 DB 11,0,"Произведено переключение в "

DB "режим линейной адресации.",0

DB 12,0,"Для просмотра содержимого "

DB "регистров процессора",0

DB 13,0,"нажмите любую клавишу.",0

Text3 DB 11,0,"После завершения данной "

DB "программы регистр GS",0

DB 12,0,"может использовать для "

DB "линейной адресации",0

DB 13,0,"любая другая программа.",0

DB 24,18,"Для выхода из программы "

DB "нажмите любую клавишу.",0

ENDS

CODESEG

;*****************************

;* Основной модуль программы *

;*****************************

PROC LAddrTest

Mov AX,DGROUP

Mov DS,AX

; Установить текстовый режим и очистить экран

Mov AX,3

Int 10h

; Скрыть курсор - убрать за нижнюю границу экрана

mov [ScreenString],25

mov [ScreenColumn],0

Call SetCursorPosition

; Вывести первое текстовое сообщение

; на экран зеленым цветом

mov [TextColorAndBackground],LIGHTGREEN

Mov CX,4

Mov SI,offset Text1

@@NextString1:

Call ShowString

loop @@NextString1

; Ожидать нажатия любой клавиши

Call GetChar

; Занести контрольное число в дополнительные

; сегментные регистры данных

Mov AX,0ABCDh

Mov ES,AX

Mov FS,AX

Mov GS,AX

; Показать содержимое регистров процессора

Call far ShowRegs

; Установить режим прямой адресации памяти

Call Initialization

; Вывести второе текстовое сообщение

; на экран голубым цветом

mov [TextColorAndBackground],LIGHTCYAN

Mov CX,3

Mov SI,offset Text2

@@NextString2:

Call ShowString

loop @@NextString2

; Ожидать нажатия любой клавиши

Call GetChar

; Показать содержимое регистров процессора

Call far ShowRegs

; Вывести третье текстовое сообщение

; на экран желтым цветом

mov [TextColorAndBackground],YELLOW

Mov CX,4

Mov SI,offset Text3

@@NextString3:

Call ShowString

loop @@NextString3

; Ожидать нажатия любой клавиши

Call GetChar

; Установить текстовый режим

Mov ax,3

Int 10h

; Выход в DOS

Mov AH,4Ch

Int 21h

ENDP LAddrTest

ENDS

; Подключить набор процедур вывода/вывода данных

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