Мова програмування Assembler

Порівняльна характеристика структури мов програмування Assembler та C. Вивчення поняття "об'єктного файлу" та "виконуваного модуля". Розгляд функцій переривання, введення/виведення символу та стрічки, екранного режиму та малювання крапки і прямої.

Рубрика Программирование, компьютеры и кибернетика
Вид курс лекций
Язык украинский
Дата добавления 18.06.2010
Размер файла 348,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Навіть якщо змінна CURSOR_POSN містить вісьмох позицій, вона не може обслуговувати переключення на інший дисплей. Ви повинні скидати положення курсору в області даних BIOS усякий раз при переключенні з одного адаптера на іншій. Якщо ви не зробите цього, зображення курсору не буде відповідати його положенню, записаному в області даних, і символ на екрані буде записуватися в невірну позицію.

Фірма IBM опублікувала методи зміни одного дисплея іншим, як за допомогою програми мовою асемблера, так і за допомогою програми на Бейсике. У цих методах потрібно для вказівки адаптера, що ви хочете використовувати, змінити змінну EQUIP_FLAG, а потім використовувати відеопереривання INT 10H при AH = 0. Ця функція инициализирует адаптер і забезпечує правильну установку всіх полів дані програми BIOS. Після цього BIOS може працювати з тим дисплейним адаптером, що зазначений. При цьому картинка на іншому дисплеї залишається видимої. Крім того, дисплейний буфер того адаптера продовжує відображати будь-які зміні тексту і графіки, занесеної в нього. Так що ви можете змінювати вміст дисплейного буфера за допомогою вашої програми (а не за допомогою BIOS), щоб скорегувати інформацію, яка знаходиться на екрані, з якого ви тільки що переключилися.

Давайте розглянемо простий приклад. Ви маєте IBM PC із двома адаптерами - кольоровим графічним і монохромний, і до кожного адаптера підключений дисплей. Коли ви спочатку включаєте машину, система використовує монохромний дисплей. Саме з обліком цього ви і повинні установити перемикачі на системній платі, тому що монохромний дисплей може бути пошкоджений, якщо не буде ініціалізований відразу ж після включення живлення. Інструкція по роботі рекомендує, щоб ви установили перемикачі в положення, яка показує, що в системі присутній монохромний адаптер. Після цього ви можете використовувати відеопрограму BIOS з монохромним дисплеєм. Щоб перейти на кольоровий адаптер, можна виконати програму на рис.П9.7. Ця програма включає кольоровий адаптер у 80-символьному текстовому режимі. Символи, що були висвітлені на монохромному дисплеї, на ньому і залишаються, а ви тепер можете використовувати відеопрограму BIOS для роботи з кольоровим графічним дисплеєм. Але якщо вам буде потрібно змінити вміст монохромного дисплея, ви зможете зробити це, записавши нові символи чи атрибути в буфер дисплея за адресою 0B000H. Це не змінить положення курсору, але змінить картинку. У цьому випадку якщо ви хочете змінювати текст одночасно на кольоровому і монохромному дисплеях, ви повинні написати власну програму обслуговування монохромного дисплея. Чи ви можете з'ясувати, які значення треба змінити в полі даних BIOS, щоб курсор перейшов назад, і виконав потрібні дії, не ініціалізувавши адаптер щоразу.

Установка режиму

Коли програма виконує переривання INT 10H при AH = 0, вона викликає функцію установки режиму відеопрограми BIOS. Якщо в змінної EQUIP_FLAG відзначено, що в системі є монохромна плата, не важливо, яке значення виявилося в регістрі AL. У цьому випадку програма BIOS набудовує монохромний адаптер на режим 7, що означає текстовий режим 80*50, підтримуваний чорно-білою платою.

У випадку кольорової графічної плати значення в регістрі AL визначає, у який із двох графічних чи двох текстових режимів уведе програма BIOS дисплейний адаптер. Ви бачите, що існують чорно-білі режими поряд з кольоровими для тексту, а також графіка 320*200. Ці чорно-білі режими насправді не виключають кольору, вони тільки виключають сигнал кольоровості, що використовується в телевізорі для визначення кольору кожної крапки. Якщо ви використовуєте RGB-монітор, кольори залишаться на місцях. Якщо ж ви використовуєте кольоровий (чи чорно-білий) чи відеомонітор телевізор, установка чорно-білого режиму кольорової плати виключить кольори і дасть більш чітке зображення на екрані. Якщо ви займаєтеся задачею, у якій кольори не потрібні, то одержати трохи краще зображення можна, вибравши один з чорно-білих режимів замість кольорового.

Коли виконується програма установки режиму, вона настроює адаптер і поле даних відеопрограми BIOS на обслуговування потрібного режиму роботи. Програма установки режиму заповнює пробілами буфер дисплея і поміщає курсор у верхньому лівому куті екрана. Доти, поки ви не будете досить знайомі з пристроєм дисплея, ви повинні використовувати програму установки режиму BIOS. Хоча і немає нічого поганого в зміні кодів дисплея на ваші власні, дуже важко налагоджувати програму, що модифікує дисплей. Якщо ви зробите щось невірно, дисплей стане непрацездатним, і зникне можливість визначити, що ж невірно.

Функції відеопрограми, що відповідають номерам від 1 до 5 служать для роботи з регістрами мікросхеми 6845. Як ви пам'ятаєте з опису системної апаратури, мікросхема 6845 містить регістри, що керують формою і положенням курсору, а також тимчасовими характеристиками відображення. Ці підпрограми відеопрограми BIOS дозволяють модифікувати відображення, не знаючи базової адреси мікросхеми 6845. Ці підпрограми входять у число сервісних програм BIOS.

Зрушення зображення

Програми зрушення переміщають текстову інформацію або нагору, або вниз, у залежності від викликаної функції. Програми зрушення також забезпечують деякі засоби організації вікон (фрагментів екрана) на екрані дисплея - тобто BIOS може зрушувати тільки частина вмісту екрана. Вхідні параметри програми зрушення визначають прямокутник, розташований на екрані. Він задає верхній лівий і правий нижній кути області зрушення. Відеопрограма BIOS зрушує дані тільки в цій області. Інша частина екрана не міняється.

Ми вже бачили користь зрушення вікон при вивченні операційної системи і мови Бейсік, яке використовували для зрушення BIOS. Якщо працює 80-символьний дисплей, DOS установлює верхній лівий кут вікна зрушення рівним (0, 0), а нижній правий кут (24, 79). Так зрушується весь екран. Але Бейсік використовує двадцять п'ять рядків для індикації стану дисплея, і тільки 24 рядка відводить під зображення програми. Коли Бейсік зрушує екран за допомогою базової системи введення-висновку, він установлює верхній лівий кут у крапці (0, 0), а правий нижній кут - у крапці (23, 79). Із-за того, що останній рядок залишається за межами зрушення, вона не переміщається під час зрушення. У наступній главі приведений приклад зрушення вікна, який викликаний з програми на Бейсіку.

Відеопрограма BIOS виконує зрушення за допомогою переносу символів і атрибутів у дисплейному буфері. Програма зрушення не змінює стартової адреси дисплейного буфера; такий метод зрушення був би швидший, але не дозволяє прикладній програмі визначати, куди повинні потрапити окремі символи. Спосіб зрушення, реалізований у BIOS, підходить для звичайної роботи екрана. Помітимо також, що програма зрушує зображення при необхідності більш ніж на один рядок. Звичайно програма зрушує зображення на один рядок. Функція зрушення відеопрограми BIOS дозволяє зрушити вміст екрана на кілька рядків. Якщо ж кількість рядків зрушення дорівнює нулю, програма BIOS очищає екран. Це - швидкий спосіб очищення всього екрана або його частини.

Коли програма працює в 80-символьному режимі на кольоровому графічному адаптері, вона не може записувати або читати його текст у довільний момент часу. Якщо програма буде модифікувати буфер не в строго визначені моменти часу, на екрані з'являться перешкоди. Оскільки програма зрушення читає і записує великі кількості даних, вона повинна бути написана з урахуванням проблеми перешкод. Якщо подивитися текст програми обслуговування операції зрушення, то можна побачити, що BIOS обслуговує режим 80*25 кольорової плати (змінна CRT_MODE дорівнює 2 чи 3), як спеціальний випадок. У випадку операцій зрушення ця підпрограма BIOS чекає доти, поки не виникне вертикальний зворотний хід променя дисплея. Це означає, що апаратура адаптера видала на екран весь вміст буфера і готова почати новий кадр. (Апаратура адаптера повторює цей процес регенерації екрана 60 разів у секунду). З появою вертикального зворотнього ходу програма BIOS виключає дисплей і виконує зрушення. Коли програма зрушення перемістить усі символи, вона знову включає дисплей. Це викликає коротке миготіння дисплея. Якщо ви уважно подивитеся на екран під час зрушення, то побачте, що верхні його шість рядків трохи темніші інших. Це відбувається із-за того, що операція зрушення займає трохи більше часу, ніж один період регенерації екрана. Тому верхні шість рядків виключаються на два інтервали регенерації, а весь інший екран - тільки на один інтервал. Метод, що допускає появу перешкод на екрані, настільки непривабливий, що описаний метод переважніший. Ви можете написати кілька програм, щоб спробувати інші методи.


Подобные документы

  • Розгляд особливостей мови програмування С++: основні можливості, характеристика функцій. Аналіз файлів з вхідними даними. Використання похідних класів як ефективний засіб об’єктно-орієнтованого програмування. Способи роздруківки графічного вирішення.

    курсовая работа [510,9 K], добавлен 14.03.2013

  • Робота з цілими значеннями за допомогою арифметичних команд. Механізм роботи команд передачі керування мови Assembler. Типи даних "FPU" та система регістрів. Програма та її структура на мові Assembler, робота з директивами. Текстовий режим відеоадаптера.

    лабораторная работа [1,7 M], добавлен 31.05.2014

  • Особливості редагування за допомогою текстового редактора NotePad вхідного файлу. C++ як універсальна мова програмування, знайомство с функціями. Характеристика графічних засобів мови С. Аналіз основних понять об’єктно-орієнтованого програмування.

    курсовая работа [123,3 K], добавлен 14.03.2013

  • Характеристика методів та етапів створення простих програм на мові програмування С++. Особливості структури та порядку запуску програми. Функції вводу і виводу та маніпулятори мови С++. Робота з одновимірними масивами. Символьна інформація та рядки.

    дипломная работа [91,2 K], добавлен 19.06.2010

  • Характеристика мов програмування. Історія виникнення мови C#, її особливості, версії та нові можливості. Приклад програм виведення на екран, виведення поточної дати та часу та програми музичного програвача. Програмний код та результат виконання програм.

    контрольная работа [321,3 K], добавлен 13.06.2012

  • Розробка програми в візуальному середовищі С++. Визначення значення функцій в середовищі Builder мовою програмування С++. Обчислення елементів квадратної матриці згідно заданного алгоритму. Бібліотека візуальних компонентів і середовище програмування.

    курсовая работа [451,5 K], добавлен 15.01.2012

  • Розгляд операційних систем MS DOS та Windows. Написання модуля обчислення умовного арифметичного виразу на мові Assembler та вбудування його виводу у програму Pascal. Виконання тестових перевірок та знаходження нормальних і аномальних результатів.

    курсовая работа [1,4 M], добавлен 15.02.2010

  • Програми і мови програмування. Алфавіт мови програмування. Лексеми, зарезервовані слова мови Pascal. Ідентифікатори, типи даних. Арифметичні вирази, операції. Стандартні функції, структура програми. Процедури введення-виведення. Правила написання команд.

    лекция [445,0 K], добавлен 24.07.2014

  • Аналіз особливостей мови програмування Java та середовища Android Studio. Розробка програмного забезпечення для якісного та ефективного вивчення іноземних слів. Побудова базових алгоритмів і структури даних. Вибір мови програмування, реалізація програми.

    курсовая работа [335,3 K], добавлен 11.01.2015

  • Аналіз сучасного стану технологій програмування. Засоби реалізації об'єктів в мові C++, структура даних і функцій. Розробка програмного продукту - гри "трикутники", з використовуванням моделей, класів і функцій об’єктно-орієнтованого програмування.

    курсовая работа [117,8 K], добавлен 14.03.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.