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

UptoLike

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

62
; Подключить файл мнемонических обозначений цветов
include "lst_2_05.inc"
SEGMENT sseg para stack 'STACK'
DB 400h DUP(?)
ENDS
DATASEG
; Текстовые сообщения
Txt1 DB LIGHTMAGENTA,0,28,"Дамп оперативной памяти",0
DB YELLOW,2,0,"Адрес:",0
DB LIGHTGREEN,2,11
DB "Шестнадцатеричное представление:",0
DB LIGHTCYAN,2,61,"ASCII-коды:",0
DB LIGHTRED,21,0,"Введите число "
DB "или нажмите управляющую клавишу:",0
Txt2 DB 23,0, "Стрелка вниз - следующие 256 байт;",0
DB 23,35, "Стрелка вверх - предыдущие 256 байт;",0
DB 24,0, "Enter - завершение ввода адреса;",0
DB 24,33, "Esc - отмена ввода адреса;",0
DB 24,60, "F10 - выход.",0
; Количество введенных символов числа
CharacterCounter DB 0
; Позиция для ввода адреса на экране
OutAddress DB 21,47
; Строка для ввода адреса
AddressString DB 9 DUP(0)
; Строка пробелов для "затирания" числа
SpaceString DB 21,47,9 DUP(' '),0
; Начальный адрес
StartAddress DD 0
; Код команды
CommandByte DB 0
ENDS
CODESEG
;*****************************
;* Основной модуль программы *
;*****************************
PROC MemoryDump
mov AX,DGROUP
mov DS,AX
; Устанавливаем режим прямой адресации памяти
call Initialization
; Установить текстовый режим и очистить экран
mov AX,3
int 10h
; Скрыть курсор - убрать за нижнюю границу экрана
mov [ScreenString],25
mov [ScreenColumn],0
; Подключить файл мнемонических обозначений цветов
include "lst_2_05.inc"

SEGMENT sseg para stack 'STACK'
DB 400h DUP(?)
ENDS

DATASEG
; Текстовые сообщения
Txt1 DB LIGHTMAGENTA,0,28,"Дамп оперативной памяти",0
     DB YELLOW,2,0,"Адрес:",0
     DB LIGHTGREEN,2,11
     DB "Шестнадцатеричное представление:",0
     DB LIGHTCYAN,2,61,"ASCII-коды:",0
     DB LIGHTRED,21,0,"Введите число "
     DB "или нажмите управляющую клавишу:",0
Txt2 DB 23,0, "Стрелка вниз - следующие 256 байт;",0
     DB 23,35, "Стрелка вверх - предыдущие 256 байт;",0
     DB 24,0, "Enter - завершение ввода адреса;",0
     DB 24,33, "Esc - отмена ввода адреса;",0
     DB 24,60, "F10 - выход.",0
; Количество введенных символов числа
CharacterCounter DB 0
; Позиция для ввода адреса на экране
OutAddress DB 21,47
; Строка для ввода адреса
AddressString DB 9 DUP(0)
; Строка пробелов для "затирания" числа
SpaceString DB 21,47,9 DUP(' '),0
; Начальный адрес
StartAddress DD 0
; Код команды
CommandByte DB 0
ENDS


CODESEG
;*****************************
;* Основной модуль программы *
;*****************************
PROC MemoryDump
        mov     AX,DGROUP
        mov     DS,AX
; Устанавливаем режим прямой адресации памяти
        call    Initialization
; Установить текстовый режим и очистить экран
        mov     AX,3
        int     10h
; Скрыть курсор - убрать за нижнюю границу экрана
        mov     [ScreenString],25
        mov     [ScreenColumn],0


                            62