русс | укр

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

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

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

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


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

Видеоадаптера.


Дата добавления: 2013-12-23; просмотров: 683; Нарушение авторских прав


На выходе: AH = число символов в строке;

AL = номер текущего режима;

BH = номер активной страницы видеопамяти.

 


___________________________________________________

Пример 2. Программа выводит на экран синусоиду в режиме 13h.

; Рисуем синусоиду в графическом режиме 13h

; также рисуем координатные оси

; синус определяем как sin(z)=((2*tan(z))/(1+tan(z)*tan(z)))

masm

model small

.stack 100h

.data

B Dd 0

Y dd ?

X dw ?

B1 dd 0

D1 dd 2.0

MASSHTAB dd 10.0

saveMode db ? ; Сохранить текущий видео режим

currentX dw 100 ; координата X

currentY dw 0 ; координата Y

color db 1 ; номер цвета

step dd 0.1

.code

start:

mov ax,@data

mov ds,ax

 

; Получаем и сохраняем текущий видеорежим

mov ah,0Fh

int 10h

mov saveMode,al

 

; Переключиться в графический режим

mov ah,0h

mov al,13h

int 10h

 

finit

FLD B1

mov cx,220; ; счетчик цикла

 

L1:

FPTAN

FLD ST(1)

FLD ST(0)

FMUL

FADD

FLD ST(0)

FLD ST(2)

FLD D1

FMUL

FLD ST(1)

FDIV

FLD MASSHTAB

FMUL

FLD ST(0)

FRNDINT

fist Y

mov ax,word ptr[Y]

mov bx,100

sub bx,ax

mov dx,bx ; в dx записываем точку Y

push cx

mov ah,0Ch ; рисование точки

mov al,color ; цвет точки

mov bh,0 ; видео страница

mov cx,currentX ; в cx записываем точку X

int 10h

inc currentX

inc color ; используйте для разноцветной линии

pop cx

finit

fld B

FLD step

fadd

fst B

loop L1

 

;Рисуем координатную ось OX

mov cx,320

L2:

mov dx,100 ; в dx записываем точку Y

push cx

mov ah,0Ch ; рисование точки

mov al,3 ; цвет точки

mov bh,0 ; видео страница

mov cx,currentX ; в cx записываем точку X

int 10h

inc currentX

pop cx

loop L2

;--------------------------------------------------------

;Рисуем координатную ось OY



mov cx,200

L3:

push cx

mov cx,100 ; в cx записываем точку X

mov ah,0Ch ; рисование точки

mov al,3 ; цвет точки

mov bh,0 ; видео страница

mov dx,currentY ; в dx записываем точку Y

int 10h

inc currentY

pop cx

loop L3

;--------------------------------------------------------

; Ожидаем нажатия клавиши

mov ah,0

int 16h

 

; Возврат в прежний видеорежим

mov ah,0 ; установить видео режим

mov al,saveMode ; сохраненный видео режим

int 10h

 

exit: ;выход

mov ax,4c00h ;стандартное завершение программы

int 21h

end start

_________________________________________________

 


Пример:Написать программу вывода на экран монитора четырех смежных квадратов в шахматном порядке: два синих два желтых.

 

masm

model small

.stack 100h

.data

.code

start: ;точка входа

mov ax,@data

mov ds,ax

mov ax,0002h ;установка видеорежима с номером в AL

int 10h ;прерывание BIOS

mov ax,0600h ;прокрутка вверх (AL=0 - заполняет экран

;пробелами)

mov bh,01100000b ;устанавливает цвет фона(желтый) и

;символа

mov cx,0000h ;координаты верхнего левого угла

;(строка, столбец)

mov dx,0306h ;координаты нижнего правого угла

int 10h

mov bh,00010000b ;синий

mov cx,0007h

mov dx,030Dh

int 10h

 

mov cx,0400h

mov dx,0706h

int 10h

 

mov bh,01100000b ;желтый

mov cx,0407h

mov dx,070Dh

int 10h

 

mov ax,4c00h ;стандартное завершение программы

int 21h

end start




<== предыдущая лекция | следующая лекция ==>
Fh - Прочитать текущий видеорежим. | Работа с системными часами.


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


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

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

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


 


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

 
 

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

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