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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 10.01.2009, 08:00   #1
hobin
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 22
По умолчанию Помогите разобраться с прерываниями

Не пойму каким образом контроллер переходит к адресам прерываний.
При каких-то событиях происходит переходит к одной из ниже приведенных строк. А как контроллер знает, что надо переходить именно на эту строку? Я использую ATvtga48 помогите пожалуйста разобраться!
Код:
rjmp	RESET	;reset handle
ret;	int0
ret;	int1
ret;	t2_comp
ret;	t2_ovf
ret;	t1_capt
ret;	t1_compa
ret;	t1_compb
ret;	t1_ovf	
ret;	t0_ovf
ret;	spi,stc
ret;	usart,rxc
ret;	usart,udre
ret;	usart,txc
ret;	adc
ret;	ee_rdy
ret;	ana_comp
ret;	twi
ret;	spm

Последний раз редактировалось rpy3uH; 10.01.2009 в 10:28.
hobin вне форума Ответить с цитированием
Старый 11.01.2009, 01:30   #2
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию

Цитата:
А как контроллер знает, что надо переходить именно на эту строку?
Для этого существует таблица векторов прерываний, по каждому конкретному прерыванию (будь то таймер, компаратор, одно из событий USART и т.д.) существует свой конкретный адрес, куда перейдёт на исполнение контроллер. Именно поэтому по этим адресам должна распологаться одна из двух команд, либо reti, либо jmp (rjmp) на обработчик прерывания. В случае с 48-ой мегой rjmp.
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru
Ulex вне форума Ответить с цитированием
Старый 11.01.2009, 05:25   #3
hobin
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 22
По умолчанию

Спасибо! А чем обусловлено расположение команд reti и jmp, rjmp?
hobin вне форума Ответить с цитированием
Старый 11.01.2009, 16:27   #4
Ulex
Непрофессионал
Участник клуба
 
Аватар для Ulex
 
Регистрация: 01.01.2008
Сообщений: 1,405
По умолчанию ????

Т.е. чем обусловлено?
1. Есть таблица векторов (см. ниже).
2. Если вы используете в своей программе прерывания (установлен флаг глобального разрешения прерываний и разрешены маскируемые прерывания), то вы ОБЯЗАНЫ по векторам этих прерываний установить переходы на обработчики, либо выход из прерывания если оно вам не интересно.
3. В зависимости от типа контроллера, таблица векторов может быть либо 16-ти , либо 32-х разрядной. Соответственно разрядность команды, расположенной по векторам прерываний должна совпадать с разрядностью таблицы (ну или быть не больше). Вот почему в 48-ой меге нельзя использовать jmp для перехода на обработчик прерывания.
Вложения
Тип файла: txt TableInt.txt (1.3 Кб, 136 просмотров)
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------
Страничка с моими программками http://ulex-masm.ru

Последний раз редактировалось Ulex; 11.01.2009 в 16:30.
Ulex вне форума Ответить с цитированием
Старый 13.01.2009, 06:31   #5
hobin
Пользователь
 
Регистрация: 30.07.2008
Сообщений: 22
По умолчанию

Понятно спасибо.
hobin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите разобраться vigor53 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 16.12.2008 07:00
помогите разобраться Tanuska___:) БД в Delphi 1 04.09.2008 14:56
Правильная работа из под Win с прерываниями в МАСМ Stilet Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 10.06.2008 15:19
помогите разобраться ара Помощь студентам 13 05.12.2007 17:50
Помогите разобраться! Кот Microsoft Office Excel 3 14.08.2007 19:48