G
Guest_maku
Вот задачки 2 есть, помогите найти решение...
1)Hаписать программу в формате exe, выводящую на экран в десятичной системе счисления количество расширенной (XMS) памяти
(выше 1 Мб) (в байтах)
Примечание:
-Значение количества расширенной памяти можно определить, прочитав содержимое ячеек 17h (младший байт) и 18h (старший
байт) CMOS.
-Чтение из CMOS осуществляется следующим образом: в порт 70h записывается номер требуемого файла, затем его сдержимое
считывается из порта 71h.
-Т.к. CMOS медленное устройство и после записи в порт желательно вставить jmp short $+2
2) Hаписать резидентный обработчик прерывания клавиатуры, который при нажатии определённой комбинации (например,
CTRL-ALT-DEL) клавиш выводит на экран текущее время и завершается.
Примечание:
-Обработчик прерывания клавиатуры IRQI (INT 9) может быть дополнен во избежание переписывания всего кода обработки
клавиатуры.
-Для проверки сочетания нажатых клавиш может быть использован буфер клавиатуры, находящийся в области данных BIOS (сегмент
0040h). Адрес головы буфера клавиатуры размещён по смещению 001Ah, а адрес хвоста - по смещению 001Ch. Если адреса головы и
хвоста равны, то буфер пуст. Текущее состояние флагов клвиатуры содержится в байте состояния клавиатуры, находящемся по
смещению 0017h. Этот байт имеет следующую структуру:
0 бит клавиша Right Shift
1 бит клавиша Left Shift
2 бит клавиша Ctrl
3 бит клавиша Alt
4 бит переключатель Scroll Lock
5 бит переключатель Num Lock
6 бит переключатель Caps Lock
7 бит переключатель Insert
Если можно, то с комментариями.
Заранее бОООльшое спасибо.
1)Hаписать программу в формате exe, выводящую на экран в десятичной системе счисления количество расширенной (XMS) памяти
(выше 1 Мб) (в байтах)
Примечание:
-Значение количества расширенной памяти можно определить, прочитав содержимое ячеек 17h (младший байт) и 18h (старший
байт) CMOS.
-Чтение из CMOS осуществляется следующим образом: в порт 70h записывается номер требуемого файла, затем его сдержимое
считывается из порта 71h.
-Т.к. CMOS медленное устройство и после записи в порт желательно вставить jmp short $+2
2) Hаписать резидентный обработчик прерывания клавиатуры, который при нажатии определённой комбинации (например,
CTRL-ALT-DEL) клавиш выводит на экран текущее время и завершается.
Примечание:
-Обработчик прерывания клавиатуры IRQI (INT 9) может быть дополнен во избежание переписывания всего кода обработки
клавиатуры.
-Для проверки сочетания нажатых клавиш может быть использован буфер клавиатуры, находящийся в области данных BIOS (сегмент
0040h). Адрес головы буфера клавиатуры размещён по смещению 001Ah, а адрес хвоста - по смещению 001Ch. Если адреса головы и
хвоста равны, то буфер пуст. Текущее состояние флагов клвиатуры содержится в байте состояния клавиатуры, находящемся по
смещению 0017h. Этот байт имеет следующую структуру:
0 бит клавиша Right Shift
1 бит клавиша Left Shift
2 бит клавиша Ctrl
3 бит клавиша Alt
4 бит переключатель Scroll Lock
5 бит переключатель Num Lock
6 бит переключатель Caps Lock
7 бит переключатель Insert
Если можно, то с комментариями.
Заранее бОООльшое спасибо.