2. Види асемблерів

 

Асемблери для DOS. Найбільш відомими асемблерами для операційної системи DOS були Borland Turbo Assembler (TASM), Microsoft Macro Assembler (MASM), і Watcom Assembler (WASM). Також свого часу був популярний простою асемблер A86.

Microsoft Windows. При появі операційної системи Microsoft Windows з'явилося розширення TASM, іменоване TASM32, що дозволило створювати програми для виконання в середі Windows. Остання відома версія TASM - 5.3, що підтримує інструкції MMX, на даний момент включена в Turbo C++ Explorer. Але офіційний розвиток програми повністю зупинено.

Microsoft підтримує свій продукт під назвою Microsoft Macro Assembler. Вона продовжує розвиватися і до цього дня, останні версії включені в набори DDK. Але версія програми, направлена на створення програм для DOS, не розвивається. Крім того, Стівен Хатчессон створив пакет для програмування на MASM під назвою «MASM32».

GNU і GNU/Linux. Сюди перенаправляється запит «GNU Assembler». На цю тему потрібна окрема стаття.

Сюди перенаправляється запит «gas». На цю тему потрібна окрема стаття.

До складу операційної системи GNU входить пакет binutils, асемблер gas (GNU Assembler), що включає, використовуючий AT&T-синтаксис, на відміну від більшості інших популярних асемблерів, які використовують Intel-синтаксис.

Переносимі асемблери. Також існує відкритий проект асемблера, версії якого доступні під різні операційні системи і який дозволяє отримувати об'єктні файли для цих систем. Називається цей асемблер NASM (Netwide Assembler).

Yasm - це переписана з нуля версія NASM під ліцензією BSD (з деякими виключеннями).

flat assembler (fasm) - молодий асемблер під модифікованою для заборони перелицензирования (включаючи під GNU GPL) BSD-лицензией. Є версії для KOLIBRIOS, GNU/Linux, DOS і Microsoft Windows, використовує Intel-синтаксис і підтримує інструкції AMD64.

8051 - класична архітектура мікроконтролера. Для неї існує крос-асемблер ASM51, випущений корпорацією MetaLink. крім того багато фірм, розробники програмного забезпечення, такі як IAR або keil, представили свої варіанти асемблерів. У ряді випадків застосування цих асемблерів виявляється ефективнішим завдяки зручному набору директив і наявності середи програмування, об'єднуючу в собі професійний асемблер мова програмування СІ, відладчик і менеджер програмних проектів.


 

3. Програмування порту клавіатури на асемблері

 

3.1 Принцип роботи контроллера клавіатури і його інтерфейс з BIOS

Контроллер клавіатури працює таким чином: при натисненні або відпуску будь-якої клавіші генерується байт (так званий скан-код), перші 7 бітів якого містять порядковий номер клавіші, а останній, сьомий біт, скинутий, якщо клавіша натискувала, і встановлений, якщо відпущена. Цей скан-код можна прочитати через порт 60h (насправді усередині контроллера клавіатури є якась черга скан-кодов, а порт 60h лише відображує верхній код, але про це можна і не знати). І ще. Як тільки клавіша натискується або відпускається, викликається 9-е переривання (IRQ 1).

Але не завжди натиснення або відпуск клавіші генерує один скан-код. Наприклад, натиснення клавіші Pause викликає генерацію відразу 5-и кодів. Натиснення білої стрілки вгору викликає скан-код 72, а чорної стрілки вгору - відразу 2 коди: 224 і 72. І для кожного з цих скан-кодов викликається 9-е переривання.

Таким чином, процедура обробки клавіатури BIOS, що "сидить" на 9-м перериванні, просто аналізує значення 60h-го порту і відповідним чином модифікує буфер введення. Всі процедури BIOS далі працюють не з поточному значенням порту, а з буфером введення, що дозволяє здійснювати введення з випередженням, тобто навіть тоді, коли система зайнята.

3.2 Програмні переривання і підпрограми обробки переривань

Операційна система MS-DOS надає програмістові, що працює на мові асемблера, великий набір підпрограм, що виконують різні корисні дії. Всі ці підпрограми оформлені як підпрограми обробки переривань, і для кожної підпрограми в керівництві по MS-DOS вказаний номер відповідного нею переривання. Розрізняють апаратні і програмні переривання. Програма обробки апаратного переривання викликається, якщо процесор отримує сигнал запиту переривання від одного з системних пристроїв. Ця підпрограма повинна містити, окрім власне команд, призначених для виконання деяких дій з обробки переривання, визначених програмістом, спеціальні команди, керівники контроллерами переривань. У зв'язку з цим, подпрограммы-обработчики апаратних переривань рідко безпосередньо використовуються програмістами. Підпрограма обробки програмного переривання викликається по команді INT n процесора (n - номер переривання в системній таблиці векторів переривань). Скорочено прийнято самі підпрограми обробки переривань називати "перериваннями", хоча це не правильно. У ПЕВМ IBM РС AT всі програмні переривання підрозділяються на переривання BIOS ( підсистеми управління вводом/выводом ), переривання ОС і переривання користувача. Підпрограми обробки переривань BIOS зазвичай знаходяться в ПЗП, вони поставляються розробниками апаратури для забезпечення єдиного інтерфейсу ОС з різними типами устаткування. Основу системи переривань ОС MS DOS складає переривання з номером 21h, зване перериванням MS DOS. Це переривання забезпечує API прикладних програм (Application Programm Interface - інтерфейс прикладних програм) в середі ОС MS DOS. Залежно від значення, що міститься при виклику переривання в регістрі AH, MS-DOS виконує при цьому один з декількох десятків підпрограм, які прийнято називати функціями DOS. Для кожного переривання і кожної функції DOS в керівництві описаний набір вхідних і вихідних параметрів, що передаються через регістри, а також перелік можливих помилок.

У даній роботі будуть описані переривання і функції DOS і BIOS, що відносяться до роботи з клавіатурою і екраном ПЕВМ IBM РС AT.


 


Информация о работе «Низькорівневе програмування контроллера клавіатури»
Раздел: Информатика, программирование
Количество знаков с пробелами: 32096
Количество таблиц: 0
Количество изображений: 0

Похожие работы

Скачать
111024
1
0

... іщенні, так і на вулиці, на транспорті, тобто відкриваються практично необмежені можливості! Погодитеся, це вагомий аргумент на користь безпровідних систем відеоспостереження. Простота в настройці і експлуатації стала аргументом до використання безпровідного відеоспостереження в такій несподіваній якості як відеоняня. Завдяки ній ви завжди зможете дізнатися, що робить ваша дитина, чи не задумав ...

0 комментариев


Наверх