- •1.Шинна архітектура ibm pc. Класифікація шин комп'ютера по їхньому функціональнім призначенню. Пропускна здатність шини.
- •2.Взаємодія мікропроцесора з текстовим відеобуфером (схематична ілюстрація). Байт атрибутів vga. (Проілюструвати фрагментом програми).
- •3.Відеопам'ять адаптера vga і її фізична організація. Банки відеопам'яті адаптера vga і їх призначення. Логічна організація відеопам'яті в текстовому режимі.
- •4.Відеосторінки і їх програмування. Етапи програмування.
- •5.Підсистеми ibm pc для тимчасових операцій. Апаратне переривання 8h і його розширення 1Ch.
- •6.Читання часу доби ibm pc і виведення його на екран.
- •7. Виведення на екран системного часу з Cmos-мікросхеми.
- •8. Переривання 1Ah і його використання.
- •9. Мікросхема таймера і її організація. Канали мікросхеми таймера і їх призначення. (Проілюструвати фрагментами програми).
- •10. Шлях проходження ‘тиків’ у комірку пам'яті 46Сh. Програмування годин часу доби.
- •11. Регістри сом-портів і їх призначення.
- •12. Роль кодової таблиці ascii у текстовому режимі відеоадаптера.
- •14. Структура власного (користувацького) вектора переривання. Завантаження в оперативну пам'ять власного вектора переривання і його вивантаження з пам'яті. (Проілюструвати фрагментом програми ).
- •15. Функції dos, використовувані при створенні користувацького вектора переривання. (Проілюструвати програмою).
7. Виведення на екран системного часу з Cmos-мікросхеми.
Вся временная информация в CMOS хранится в формате BCD чисел. BCD – это числа десятичной системы 0..9, но записанные в двоичном формате. Бывают упакованными или распакованными. Но и тот и другой формат должен содержать каждую цифру в четырех битах. Упакованный формат – это когда в одном байте можно поместить числа от 0 то 99. Каждая цифра должна занимать свой полубайт. Распакованный формат – когда в каждом байте от 0 до 9.
Вывод на экран системного времени из CMOS-микросхемы осуществляется через функцию 2h прерывания 1Аh.
mov AH,2h int 1Ah
Рез: СH-часы;СL-минуты;DH-секунды.
Пример:
DataSeg Segment PUBLIC ‘data’
Rez db ‘Time Courant:’
Time db 0,0,’:’,0,0, ’:’,0,0,13,10,’$’
CodeSeg Segment
Public
TimerCmos PROC
push ax bx cx dx
T: mov AH, 02h
Int 1Ah
Mov AL, CH
TimerBCD Time, 0
Mov AL,CL
TimerBCD Time, 3
Mov AL,DH
TimerBCD Time, 6
Mov AH,09h
Mov DX,offset Rez
Int 21h
clrScr 0
Jmp T
Stop
Pop dx cx bx ax
Ret
TimerCmos Endp
MyMacro.mac
TimeBCD Macro Addr offs
Push CX AX
AND AL, 0Fh
Add AL, 30h
Mov Addr+offs+1, AL
POP AX
Mov CL,4
Shr AL, CL
AND AL, 0Fh
Add AL, 48
Mov Addr+offs+0,AL
POP CX
Endp
Прерывание 1Ah позваляет также вывести текущий день месяц и год через ф-ю 4h
mov AH,4h int 1Ah
Результат: DL-день недели;DH-месяц; СL- год;СH- век,CF=0 (ошибка).
С помощью функции 03h можно установить время Cmos –микросхемы.
mov AH,03h mov СH,час mov СL,минуты
mov DH,секунды mov DL,1 int 1Ah
8. Переривання 1Ah і його використання.
Прерывание – готовая подпрограмма, которая умеет что-либо делать. Прерывания по содержанию делятся на аппаратные (генерируются внешними устройствами) и внутренние (не обращаются к контроллеру ап. пр-я, не генерируются событиями).
Прерывание 1Ah - это служебное (системное) прерывание.
Следует иметь ввиду, что временные значения хранятся в BCD-формате (числа десятичной системы в двоичном формате).
1Аh позволяет прочесть текущую дату из Cmos -микросхемы через соответствующую функцию 4h.
mov AH,4h
int 1Ah
Результат: DL-день недели;DH-месяц; СL-век;СH-год,CF=0 (ошибка).
Вывод на экран системного времени из КМОП-микросхемы осуществляется через функцию 2h прерывания 1Аh.
mov AH,2h
int 1Ah
Рез: СH-часы;СL-минуты;DH-секунды.
С помощью функции 03h можно установить время Cmos –микросхемы.
mov AH,03h
mov СH,час
mov СL,минуты
mov DH,секунды
mov DL,1
int 1Ah
Также с помощью 1Аh можно установить «будильник»:записать в микросхему часов значение календарного времени , когда часы должны выдать сигнал . Для этого используется функция №6.
Обработчик прерываний 1Аh выводит текущее время в определенное место экрана. Обработчик активируется . Выводимое значение каждую секунду обновляется.
Функция прерывания 1Аh применяется для работы с каналом №0.
00h-чтение содержимого счетчика таймера.
01h-изменение содержимого.
Прерывание 1Ah позволяет работать со всеми временными подсистемами.