Управлiння вiдеосистемою IBM PC. Екраннi операцiї – основнi та розширенi властивостi, колiр та графiка.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2004
Тип роботи:
Лабораторна робота
Предмет:
Системне програмування
Група:
КІ-З

Частина тексту файла (без зображень, графіків і формул):

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 7 з курсу „ Системне програмування ” Тема: Управлiння вiдеосистемою IBM PC. Екраннi операцiї – основнi та розширенi властивостi, колiр та графiка. Виконав: студент групи КІ-3 Львів – 2004 Мета роботи: Вивчення органiзацiї вiдеосистеми IBM PC. Оволодiння навичками роботи з екранними операцiями – основними та розширеними властивостивостями, кольором та графiкою. Короткі теоретичні відомості Відеорежим визначає, чи на екран виводиться текст чи графіка, в кольорі чи в монохромному режимі і з якою кількістю кольорів. Текстовий режим використовується для виводу символів таблиці ASCII. В текстовому режимі байт атрибутів визначає властивості кожного символу, що виводиться. Коли програма встановлює атрибут, він залишається у встановленому стані до наступної явної зміни атрибутів. Тому всі подальші символи після того, для якого встановлений атрибут, будуть мати такі ж атрибути. Байт атрибутів має наступну структуру: Фон Символ  BL(блимання) R G B I(інтенсивність) R G B  7 6 5 4 3 2 1 0  Блимання та інтенсивність (яскравість) відносяться тільки до символу. Обробник переривання INT 10H виконує багато функцій, що застосовуються для роботи з дисплеєм: установка відео режиму (00Н), установка положення курсору (02Н), прокрутка екрану вверх (06Н), прокрутка екрану вниз (07Н), вивід символу в положення курсору (0АН), отримати поточний відео режим (0FН), вивід рядка символів (13Н), намалювати піксель (0CН). Завдання на лабораторну роботу Створити програму, що реалiзує вказаний викладачем варiант завдання. В якостi генератора вихiдних даних необхiдно використати програму, що була написана в ходi виконання лабораторної роботи №4. Варіант 9. Визначити тип мікропроцесора і тип ПЕОМ; перевірити, чи акумулятор функціонує нормально. Оформити програму у вигляді “вікна”.  Вміст .asm-файлу DOSSEG .MODEL SMALL .STACK 100h .DATA ProcMsg db 10,13,10,13,10,13,10,13,' ║ Type of microprocessor: $' P1Msg db '8086.$' P2Msg db '80286.$' P3Msg db '80386 or later.$' PCMsg db 10,13,10,13,' ║ Type of computer: $' ATMsg db 'AT.',10,13,10,13,'$' nonATMsg db 'non - AT.',10,13,10,13,'$' AcumOKMsg db ' ║ Acumulator is charged and working properly.$' AcumBadMsg db ' ║ Acumulator is not working properly!$' Header db '╔═════════════════════════════════════════════════════════╗',13,10 Middle db '║ ║',13,10 Footer db '╚.═.[. .в.и.к.о.н.а.в. . .С+о/р/о/к/е/в/и/ч/ /М+а/к/с/и/м/ /' db 'I+г/о/р/о/в/и/ч/ . . . . .m*A*x*4.0.v.4.k*i*3*4* . . .].═.╝.' LineFeed db 13,10,13,10,13,10,13,10,'$' .CODE begin: push ds sub ax,ax push ax mov ax,@data mov ds,ax mov ah,0 ;═╗ mov al,3 ; ║Set video mode int 10h ;═╝ ;************************************************************ Print window header mov bp,OFFSET Header mov ax,SEG Header mov es,ax mov ch,16 mov al,02h ;background mul ch mov bl,al add bl,0eh ;foreground(symbols) mov bh,0 mov dh,2 ;row mov dl,10 ;column mov cx,62 mov al,0 mov ah,13h ;BIOS write string function int 10h ;print window header ;************************************************************ Print window middle mov dh,2 ;row mov bh,0 mov dl,10 ;column mov cx,62 mov bp,OFFSET Middle mov al,0 mov ah,13h ;BIOS write string function win: inc dh int 10h ;print window middle cmp dh,9 ; is row 9 (last) printed ? jl win mov dh,5 ;row int 10h ;print window middle ;************************************************************ Print window footer mov bh,0 mov dh,10 ;row mov dl,10 ;column mov cx,62 mov bp,OFFSET Footer mov al,2 mov ah,13h ;BIOS write string function int 10h ;print window footer ;-----Detection of microprocessor type mov dx,OFFSET ProcMsg mov ah,09 int 21h mov ax,0000 push ax popf pushf mov ax,0000 pop ax CMP ax,0F000h JZ i8086 JMP else1 i8086: mov dx,OFFSET P1Msg else1: mov ax,0F000h push ax popf pushf mov ax,0000 pop ax CMP ax,0000 JZ i80286 mov dx,OFFSET P3Msg JMP print1 i80286: mov dx,OFFSET P2Msg print1: mov ah,09 int 21h ;-----Detection of PC type mov dx,OFFSET PCMsg mov ah,09 int 21h MOV ax,0F000h MOV ds,ax MOV bx,0FFFEh MOV dl,[bx] mov ax,@data mov ds,ax CMP dl,0FCh JZ isAT mov dx,OFFSET nonATMsg JMP print2 isAT: mov dx,OFFSET ATMsg print2: mov ah,09 int 21h ;-----Acumulator check mov al,0Eh OUT 70h,al nop IN al,71h nop AND al,80h CMP al,80h JZ Bad mov dx,OFFSET AcumOKMsg JMP print3 Bad: mov dx,OFFSET AcumBadMsg print3: mov ah,09 int 21h ;-----EXIT mov dx,OFFSET LineFeed mov ah,09 int 21h mov ah,4Ch int 21h END begin Результат виконання програми ╔══════════════════════════════════════════════════════════╗ ║ ║ ║ Type of microprocessor: 80386 or later. ║ ║ ║ ║ Type of computer: AT. ║ ║ ║ ║ Acumulator is charged and working properly. ║ ║ ║ ╚═[ виконав Сорокевич Максим Iгорович mAx40v4ki34 ]═╝ Висновок: Виконуючи дану лабораторну роботу, я вивчив органiзацiю вiдеосистеми IBM PC, оволодiв навичками роботи з екранними операцiями – основними та розширеними властивостивостями, кольором та графiкою.
Антиботан аватар за замовчуванням

01.01.1970 03:01-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!