![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.02.2011
Сообщений: 12
|
![]()
Как из обработчика прерываний от таймера (1CH) вызвать int 21h ?
Хотел вывести строку. Пытался по-всякому. Но выводятся странные символы и выдается сообщение об ошибке. |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 26.02.2011
Сообщений: 12
|
![]()
Код обработчика
ROUT: ; НАЧАЛО РЕЗИДЕНТНОЙ ЧАСТИ CLI ; Запрещение прерываний INC TIK ; Увеличение счетчика тиков CMP TIK,18 ; Сравнение его с 10: JL A1 ; если меньше, то конец прерывания push AX MOV AL, 20H OUT 20H,AL pop AX STI ; Разрешение прерываний IRET ; Возврат управления A1: ;((((((((((((((((( push AX push DX MOV AL, 20H OUT 20H,AL ;******* DS = CS ********* mov AX, CS mov DS, AX ;******* DS = CS ********* mov DX, offset STTIK mov AH ,09H int 21h XOR AL,AL MOV TIK,AL pop DX pop AX STI IRET ; Возврат управления |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
С++:invalid types 'int[int]' for array subscript | greendoom | Помощь студентам | 0 | 19.03.2011 16:53 |
Странности ввода 01h через int 21h | sad101010 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 1 | 23.02.2011 19:12 |
Обрабочик прерываний от таймера С++ | AleksIv | Помощь студентам | 0 | 19.04.2010 18:36 |
[Вопрос] Как определить прогресс таймера? | ZARO | Помощь студентам | 13 | 12.03.2010 06:23 |
Обращение к COM-порту из обработчика системного таймера (приложение WinForm) | mdrake | Общие вопросы .NET | 4 | 18.06.2008 09:36 |