Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.12.2011, 19:02   #1
gylayko
Форумчанин
 
Регистрация: 14.09.2011
Сообщений: 203
Смущение Разобраться с текстом программы.

Есть такая вот программа
Код:
.model tiny
.code
org 100h ; СОМ-программа
start:
jmp main  ;идем на метку
newint50h:  ;запросить новое прерывание 
int 08h;прерывания таймера (канал 08253/8254) 
iret;переключаем на следующую задачу
newint51h:    
int 09h;прерывания клавиатуры
iret
newint52h:
int 0Ah;XT-резерв, АТ-недоступно(подключается каскад IRQ8-IRQ15)
iret
newint53h:
int 0Bh;СОМ2, СОМ4
iret
newint54h:
int 0Ch;СОМ1, СОМ3
iret
newint55h:
int 0Dh;XT-HDC, FT-LPT2, Sound(резерв)
iret
newint56h:
int 0Eh
iret
newint57h:
int 0Fh;FDC-контролер НГМД(накопитель на гибких магнитных дисках.)
iret
main:    ;начало метки
mov AH, 25h; Установить вектор прерывания
mov AL, 50h;
mov DX, offset newint50h;указываем на участок памяти, где раньше указывались прерывания таймера
int 21h; Ввод без ожидания
mov AH, 25h
mov AL, 51h 
mov DX, offset newint51h; указываем на участок памяти, где раньше указывались прерывания клавиатуры
;так же и остальными прерываниями по их значениям
int 21h
mov AH, 25h
mov AL, 52h
mov DX, offset newint52h
int 21h
mov AH, 25h
mov AL, 53h
mov DX, offset newint53h
int 21h
mov AH, 25h
mov AL, 54h
mov DX, offset newint54h
int 21h
mov AH, 25h
mov AL, 55h
mov DX, offset newint55h
int 21h
mov AH, 25h
mov AL, 56h
mov DX, offset newint56h
int 21h
mov AH, 25h
mov AL, 57h
mov DX, offset newint57h
int 21h
cli; Запретить прерывания
mov AL, 00010101b
out 20h, AL
mov AL, 50h
out 21h, AL
mov AL, 00000100b
out 21h, AL
mov AL, 00001101b
out 21h, AL
sti; Разрешение аппаратных прерываний
mov DX, offset main
int 27h;завершение прерываний
end start
так вот, я немогу понять, что делает вот этот вот кусок
Код:
mov AL, 00010101b
out 20h, AL
mov AL, 50h
out 21h, AL
mov AL, 00000100b
out 21h, AL
mov AL, 00001101b
out 21h, AL
помогите кто чем может!
gylayko вне форума Ответить с цитированием
Старый 12.12.2011, 19:42   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

работа с контролером прерываний(APIC), а именно маскировка его прерываний(IRQ).
см вложение(сайт чтото плохо работает)
пункт 4, там довольно хорошо расписано.
Вложения
Тип файла: rar chap_8-2.rar (5.9 Кб, 10 просмотров)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с исходниками программы разобраться Dead_Angel Общие вопросы Delphi 0 09.06.2011 14:30
Нужно разобраться в коде программы на Си! Юлия26 Помощь студентам 0 14.12.2010 10:42
ПОмогите разобраться в коде программы на С++ Ajanami Помощь студентам 4 26.11.2008 15:24
Помогите разобраться с алгоритмом программы Evgenii Помощь студентам 10 07.11.2008 16:07
Помогите разобраться с текстом в ячейке!!! Zorg Microsoft Office Excel 9 21.04.2008 14:12