Студопедия
МОТОСАФАРИ и МОТОТУРЫ АФРИКА !!!


Авиадвигателестроения Административное право Административное право Беларусии Алгебра Архитектура Безопасность жизнедеятельности Введение в профессию «психолог» Введение в экономику культуры Высшая математика Геология Геоморфология Гидрология и гидрометрии Гидросистемы и гидромашины История Украины Культурология Культурология Логика Маркетинг Машиностроение Медицинская психология Менеджмент Металлы и сварка Методы и средства измерений электрических величин Мировая экономика Начертательная геометрия Основы экономической теории Охрана труда Пожарная тактика Процессы и структуры мышления Профессиональная психология Психология Психология менеджмента Современные фундаментальные и прикладные исследования в приборостроении Социальная психология Социально-философская проблематика Социология Статистика Теоретические основы информатики Теория автоматического регулирования Теория вероятности Транспортное право Туроператор Уголовное право Уголовный процесс Управление современным производством Физика Физические явления Философия Холодильные установки Экология Экономика История экономики Основы экономики Экономика предприятия Экономическая история Экономическая теория Экономический анализ Развитие экономики ЕС Чрезвычайные ситуации ВКонтакте Одноклассники Мой Мир Фейсбук LiveJournal Instagram

Inc EBX




loop @@q2

; Отобразить символ-разделитель колонок

mov [TextColorAndBackground],WHITE

Mov AL,0B3h

Call ShowASCIIChar

inc [ScreenColumn]

; Вернуться назад на 16 символов

Sub EBX,16

; Отобразить очередную группу байт в кодах ASCII

Mov CX,16

mov [TextColorAndBackground],LIGHTCYAN

@@q3: mov AL,[GS:EBX]

Call ShowASCIIChar

Inc EBX

loop @@q3

inc [ScreenString]

Dec DX

jnz @@q1

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

Call GetAddressOrCommand

cmp [CommandByte],F10

jne @@q0

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

Mov ax,3

Int 10h

; Выход в DOS

Mov AH,4Ch

Int 21h

ENDP MemoryDump

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

;* ВЫВОД БАЙТА НА ЭКРАН В КОДЕ ASCII *

;* Подпрограмма выводит содержимое регистра AL в коде *

;* ASCII в указанную позицию экрана. *

;* Координаты позиции передаются через глобальные *

;* переменные ScreenString и ScreenColumn. После *

;* выполнения операции вывода происходит автомати- *

;* ческое приращение значений этих переменных. *

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

PROC ShowASCIIChar near

Pusha

Push DS

Push ES

Mov DI,DGROUP

Mov DS,DI

Cld

; Настроить пару ES:DI для прямого вывода в видеопамять

Push AX

; Загрузить адрес сегмента видеоданных в ES

Mov AX,0B800h

Mov ES,AX

; Умножить номер строки на длину строки в байтах

mov AX,[ScreenString]

Mov DX,160

Mul DX

; Прибавить номер колонки (дважды)

add AX,[ScreenColumn]

add AX,[ScreenColumn]

; Переписать результат в индексный регистр

Mov DI,AX

Pop AX

mov AH,[TextColorAndBackground]

Stosw

; Подготовка для вывода следующих байтов

; Перевести текущую позицию на 2 символа влево

inc [ScreenColumn]

; Проверить пересечение правой границы экрана

cmp [ScreenColumn],80

jb @@End

; Если достигнута правая граница экрана -

; перейти на следующую строку

sub [ScreenColumn],80

inc [ScreenString]

@@End: pop ES

Pop DS

Popa

Ret

ENDP ShowASCIIChar

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

;* ПЕРЕВОД ЧИСЛА ИЗ ШЕСТНАДЦАТЕРИЧНОГО КОДА В ДВОИЧНЫЙ *

;* DS:SI - число в коде ASCII. *

;* Результат возвращается в EAX. *

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

PROC HexToBin32 near

Push EBX

Push CX




Push SI

Cld

Xor EBX,EBX ;обнуляем накопитель

Xor CX,CX ;обнуляем счетчик цифр

@@h0: lodsb

; Проверка на ноль (признак конца строки)

And AL,AL

jz @@h4

; Проверка на диапазон '0'-'9'

cmp AL,'0'

jb @@Error

cmp AL,'9'

ja @@h1

sub AL,'0'

jmp short @@h3

@@h1: ; Проверка на диапазон 'A'-'F'

cmp AL,'A'

jb @@Error

cmp AL,'F'

ja @@h2

Sub AL,'A'-10

jmp short @@h3

@@h2: ; Проверка на диапазон 'a'-'f'

cmp AL,'a'

jb @@Error

cmp AL,'f'

ja @@Error

Sub AL,'a'-10

@@h3: ; Дописать к результату

; очередные 4 разряда справа

Shl EBX,4

Or BL,AL

Inc CX

Cmp CX,8

jbe @@h0

; Если в числе больше 8 цифр - ошибка

jmp short @@Error

@@h4: ; Успешное завершение - результат в EAX

Mov EAX,EBX

jmp short @@End

@@Error:; Ошибка - обнулить результат

Xor EAX,EAX

@@End: pop SI

Pop CX

Pop EBX

Ret

ENDP HexToBin32

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

;* ПРИНЯТЬ С КЛАВИАТУРЫ НОВЫЙ АДРЕС ИЛИ КОМАНДУ *

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

PROC GetAddressOrCommand near

Pushad

; Использовать при выводе белый цвет, черный фон

mov [TextColorAndBackground],WHITE

; Установить номер строки поля ввода

mov [ScreenString],21

@@GetAddressOrCommand:

; Инициализировать переменные

; Обнулить счетчик цифр

mov [CharacterCounter],0

; Очистить строку





Дата добавления: 2015-04-01; просмотров: 286; Опубликованный материал нарушает авторские права? | Защита персональных данных | ЗАКАЗАТЬ РАБОТУ


Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: На стипендию можно купить что-нибудь, но не больше... 9014 - | 7251 - или читать все...

 

3.92.92.168 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.


Генерация страницы за: 0.008 сек.