Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Министерство образования РФ
Хабаровский государственный технический университет
Заочный факультет ускоренного обучения
Кафедра «Вычислительная техника»
По дисциплине «Организация ЭВМ и систем»
Исследование прерываний, работающих с видеосистемой
в персональном компьютере
Работу выполнил: студент Войтенок А.А.
Шифр № 4кПОв 0013796
Проверил: доцент к.т.н. Шоберг А.Г.
г. Хабаровск
2002 г.
Цель работы: изучить принципы управления видеорежимами в персональном компьютере и получить навыки работы с экраном, используя систему прерываний BIOS.
В работе изучены следующие функции прерывания BIOS 10h:
Назначение |
Функция |
Входные параметры |
Выходные параметры |
Установка видеорежима |
00h |
AL= видеорежим |
|
Установка размера курсора |
01h |
CH=верхняя линия сканирования CL=нижняя линия сканирования линии задаются в диапазоне 0-13 |
|
Установка позиции курсора |
02h |
BH=номер страницы DH=строка DL=столбец |
|
Прокрутка экрана вверх |
06 |
AL=количество прокручиваемых строк СH,CL= координаты верхнего левого угла прокручиваемого участка DH,DL=координаты правого нижнего угла |
|
Прокрутка экрана вниз |
07 |
AL=количество прокручиваемых строк СH,CL= координаты верхнего левого угла прокручиваемого участка DH,DL=координаты правого нижнего угла |
|
Вывод символа в текущую позицию экрана |
0Ah |
AL=символ BH=номер страницы BL=цвет в графическом режиме CX=число символов |
|
Получение текущего видеорежима |
0Fh |
AL=текущий видеорежим, AH=число символов в строке BH=номер страницы |
Контрольные вопросы.
2. а) Установка курсора, начинающегося на 5 линии сканирования и заканчивающийся на 12 линии:
mov ah,01h
mov ch,5
mov cl,12
int 10h
б) Прокрутка экрана(25x80) на 10 строк:
mov ah,06
mov al,10
mov bh,07
mov cx,0000
mov dx,184Fh
int 10h
3. Максимальное количество цветов в палитре как для фона, так и для текста равно 16 в текстовом режиме.
4. Сиреневый на ярко-голубом 9Dh
Коричневый на жёлтом E6h
Красный на сером с мерцанием - не существует, красный на чёрном с мерцанием 84h
Текст программы.
data segment para public 'data'
INPUT_STRING db 128 dup(0)
BUFFER db 64 dup(0)
M_MODE db 0dh,0ah,0dh,0ah,'Current video mode 1 $'
M_SET db 0dh,0ah, 'Set new mode 2 $'
M_CURSOR db 0dh,0ah, 'Cursor shape 3 $'
M_POSITION db 0dh,0ah, 'Cursor position 4 $'
M_CLEAR db 0dh,0ah, 'Screen clear 5 $'
M_SCROLL_UP db 0dh,0ah, 'Scroll UP 6 $'
M_SCROLL_DOWN db 0dh,0ah, 'Scroll DOWN 7 $'
M_PUT_CHAR db 0dh,0ah, 'Put char 8 $'
M_QUIT db 0dh,0ah, 'Quit Esc $'
T_MODE db 0dh,0ah,'Video mode : $'
T_TOP db 0dh,0ah,'Top line : $'
T_BOTTOM db 0dh,0ah,'Bottom line : $'
T_XPOSITION db 0dh,0ah,'Column : $'
T_YPOSITION db 0dh,0ah,'String : $'
T_CHAR_IN_STRING db 0dh,0ah,'Char in string : $'
T_PAGE db 0dh,0ah,'Page number : $'
TEMP_BYTE db 0
NL db 0dh,0ah,'$'
DECIM db 10
data ends
stk segment stack
db 256 dup(0)
stk ends
code segment para public 'code'
main proc
assume cs:code,ds:data,ss:stk,es:data
mov ax,data
mov ds,ax
circle:
outtitle M_MODE
outtitle M_SET
outtitle M_CURSOR
outtitle M_POSITION
outtitle M_CLEAR
outtitle M_SCROLL_UP
outtitle M_SCROLL_DOWN
outtitle M_PUT_CHAR
outtitle M_QUIT
mov ah,00h
int 16h
cmp ah,01h
jne L1
jmp exit
L1: cmp ah,02h ; определение видео режима
je L11
jmp L2
L11:
mov ah,0Fh
int 10h
mov TEMP_BYTE,al
outnumber T_MODE,TEMP_BYTE,BUFFER,1
mov TEMP_BYTE,ah
outnumber T_CHAR_IN_STRING,TEMP_BYTE,BUFFER,1
mov TEMP_BYTE,bh
outnumber T_PAGE,TEMP_BYTE,BUFFER,1
jmp circle
L2: cmp ah,03h ; установка видео-режима
jne L3
outtitle T_MODE
push offset INPUT_STRING
CALL asciiz_input
push offset TEMP_BYTE
CALL asciiz_to_byte
pop ax
pop ax
mov ah,00h
mov al,TEMP_BYTE
int 10h
jmp circle
L3:
cmp ah,04h ; замена формы курсора
jne L4
outtitle T_TOP
push offset INPUT_STRING
CALL asciiz_input
push offset TEMP_BYTE
CALL asciiz_to_byte
pop bx
mov ch,TEMP_BYTE
outtitle T_BOTTOM
CALL asciiz_input
push offset TEMP_BYTE
CALL asciiz_to_byte
pop bx
pop bx
mov cl,TEMP_BYTE
mov ah,01
int 10h
jmp circle
L4:
cmp ah,05h ; позиционирование курсора
jne L5
outtitle T_XPOSITION
push offset INPUT_STRING
CALL asciiz_input
push offset TEMP_BYTE
CALL asciiz_to_byte
pop bx
mov dl,TEMP_BYTE
outtitle T_YPOSITION
CALL asciiz_input
push offset TEMP_BYTE
CALL asciiz_to_byte
pop bx
pop bx
mov dh,TEMP_BYTE
mov bh,0
mov ah,02
int 10h
mov ah,07h
int 21h
jmp circle
L5: cmp ah,06h ;очистка экрана
jne L6
mov ax,0600h
mov bh,07
mov cx,0000
mov dx,184Fh
int 10h
mov ah,07h
int 21h
jmp circle
L6 :
cmp ah,07h ;прокрутка вверх
jne L7
mov ax,0601h
mov bh,07
mov cx,0000
mov dx,184Fh
int 10h
mov ah,07h
int 21h
jmp circle
L7 :
cmp ah,08h ;прокрутка вниз
jne L8
mov ax,0701h
mov bh,07
mov cx,0000
mov dx,184Fh
int 10h
mov ah,07h
int 21h
jmp circle
L8 :
cmp ah,09h
je L81
jmp circle
L81:
mov ah,07h
int 21h
mov ah,0Ah
mov bh,0
mov cx,3
int 10h
mov ah,07h
int 21h
jmp circle
exit:
mov ax,4c00h
int 21h
main endp
code ends
end main
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.