русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Исследование механизмов работа с видеопамятью персонального компьютера типа IBM. Тестирование и отладка ассемблерных программ.


Дата добавления: 2014-11-27; просмотров: 1019; Нарушение авторских прав


Все, что изображено на мониторе – и графика, и текст, одновременно присутствует в памяти, встроенной в видеоадаптер. Чтобы изображение появилось на мониторе, оно должно быть записано в память видеоадаптера. Для этой цели отводится специальная область памяти, начинающаяся с абсолютного адреса 0В800h:0000h (для текстовых режимов) и заканчивающаяся 0В800h:0FFFFh. Все, что программы пишут в эти область памяти, немедленно пересылается в память видеоадаптера. В текстовых режимах для хранения каждого изображенного символа используются два байта: байт с ASCII кодом символа и байт с его атрибутом, так что по адресу 0В800h:0000h лежит байт с кодом символа, находящегося в верхнем левом углу экрана; по адресу 0В800h:0001h расположен атрибут этого символа; по адресу 0В800h:0002h – код второго символа в верхней строке экрана и т.д. Таким образом, любая программа может вывести текст на экран простой командой пересылки данных, не прибегая ни к каким специальным функциями DOS или BIOS.

 

;dirout.asm

;Выводит на экран все ASCII-символы без исключения, используя ;прямой вывод на экран.

;

.model tiny

.code

.386 ;Будет использоваться регистр ЕАХ

;и команда STOSD

org 100h ;Начало com-файла

start:

mov ax, 0003h

int 10h ;Видеорежим 3 (очистка экрана).

cld ;Обработка сток в прямом направлении

;Подготовка данных для вывода на экран:

mov eax, 1F201F00h;первый символ 00 с атрибутом 1Fh.

;затем пробел (20h) c атрибутом 1Fh

mov bx, 0F20h ;Пробел с атрибутом 0Fh

mov cx, offset ctable ;ES:DI – начало таблицы.

cloop:

stosd ;Записать символ и пробел в таблицу ctable.

inc al ;AL содержит следующий символ.

test cx, 0Fh ;Если СХ не кратен 16,

jnz continue_loop ;продолжить цикл.

push cx ;Иначе: сохранить значение счетчика.

mov cx, 80-32 ;Число оставшихся до конца строки символов.



xchg ax, bx

rep stosw ;Заполнить остаток строки пробелами

; с атрибутом 0F.

xchg bx, ax ;Восстановим значение ЕАХ.

pop cx ;Восстановим значение счетчика.

continue_loop

loop cloop

stosd ;Записать последний (256-й)символ и ;пробел.

 

;Вывод на экран.

 

mov ax, 0B800h ;Сегментный адрес видео памяти.

mov es,ax

xor di, di ;DI=0, адрес начала видеопамяти в ES:DI.

mov si, offset ctable ;Адрес таблицы в DS:SI.

mov cx, 6 ;15 строк по 80 символов, последняя строка-32.

rep movsw ;Скопировать таблицу ctable в ;видеопамять.

ret ;Завершение com-файла.

end start

 

Варианты заданий:

1. Вывести на экран с помощью видеопамяти 1-10 символы ASCII-таблицы.

2. Вывести на экран с помощью видеопамяти 10-20 символы ASCII-таблицы.

3. Вывести на экран слово «Привет», красными буквами на синем фоне.

4. Вывести на экран с помощью видеопамяти 20-30 символы ASCII-таблицы.

 



<== предыдущая лекция | следующая лекция ==>
Резидентный обработчик прерываний от клавиатуры с подключением до системного обработчика | Основы программирования на языке TURBOPASCAL. Учебное пособие. Б. А. Крымов, А. О. Мовшин, С. В. Кулакова. Воронеж: ВГТА. 2000.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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