Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/12: Рейтинг темы: голосов - 12, средняя оценка - 4.83
3 / 3 / 0
Регистрация: 02.04.2016
Сообщений: 127

Команды обработки прерываний

20.03.2021, 19:14. Показов 2346. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени! Подскажите какие команды являются обязательными, из которых начинаются и заканчиваются любые подпрограммы обработки прерываний?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.03.2021, 19:14
Ответы с готовыми решениями:

Организация обработки прерываний
Помогите организовать обработку прерывания, где в качестве программы прерывания выступает прием символа кода ASCII из порта 05H и вывод...

Организация обработки прерываний
Здравствуйте! Пытаюсь разобраться с механизмом обработки прерывания. Нужно написать такую программку, чтобы показать программное прерывание...

Изучение механизма обработки прерываний
Друзья, нужно написать программу в Visual Studio 2008 в консольном приложении, которая имитирует механизм обработки прерываний. Кто-нибудь...

14
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
20.03.2021, 21:11
Цитата Сообщение от DmitriyStroy Посмотреть сообщение
и заканчиваются любые подпрограммы обработки прерываний?
reti у других ассемблеров он же iret
контроллер то какой?
0
3 / 3 / 0
Регистрация: 02.04.2016
Сообщений: 127
20.03.2021, 21:48  [ТС]
ValeryS, MK-51. Только RETI? А RET сюда относится? Или еще какие-то команды?
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
20.03.2021, 21:53
Если говорить в общем, то обязательным для обработчиков прерываний (помимо команды выхода из прерывания о которой написал ValeryS) является сохранение в стеке в начале обработчика текущих значений тех регистров, которые будут в этом обработчике использоваться. А перед выходом из обработчика восстановление запомненных значений этих регистров.

Добавлено через 1 минуту
RET это команда выхода из простой процедуры. Для выхода из обработчика прерывания она не годится.
0
3 / 3 / 0
Регистрация: 02.04.2016
Сообщений: 127
20.03.2021, 22:38  [ТС]
northener, PUSH и РОР сюда тоже относятся? Я правильно понял?
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
21.03.2021, 00:43
Да. Инструкция PUSH применяется для сохранения значения в стеке,а инструкция РОР для возврата значения из стека.
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
21.03.2021, 06:42
Лучший ответ Сообщение было отмечено DmitriyStroy как решение

Решение

Цитата Сообщение от northener Посмотреть сообщение
Если говорить в общем, то обязательным для обработчиков прерываний
в общем то как раз и нужна только reti
прерывание которое ничего не делает, зашло-вышло
вот например
Assembler
1
2
3
jmp Start
.org 3
reti;

Не по теме:

давненько не писал для 0x51 и на ассемблере, возможны ошибки


по правде говоря можно обойти и эти ограничения, например обойтись ret или даже вообще jmp, но это уже хакерские методы и нужно знать прекрасно архитектуру
0
3 / 3 / 0
Регистрация: 02.04.2016
Сообщений: 127
21.03.2021, 12:25  [ТС]
ValeryS, такой вот вопрос, программа-обработчик прерывания всегда заканчиваться командой RETI. А начинается тогда с чего?) С ORG- смещения внутри сегмента или точки входа в подпрограмму(jmp Start)?
0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
21.03.2021, 13:24
DmitriyStroy, адреса векторов прерываний жестко прописано
по жестким адресам, я не помню их точно, -0x03,-0x0B,-0x13,-0x1B,-0x23
на каждое отводится 8 байт, если обработчик влезет в это пространство, то пишется прямо там если нет то пишется команда перехода jmp
Цитата Сообщение от DmitriyStroy Посмотреть сообщение
ORG- смещения внутри сегмента
в 8051 нет сегментов это не 8086
Цитата Сообщение от DmitriyStroy Посмотреть сообщение
точки входа в подпрограмму(jmp Start)
это точка входа в основную программу
0
3 / 3 / 0
Регистрация: 02.04.2016
Сообщений: 127
21.03.2021, 14:21  [ТС]
ValeryS, с конечной командой разобрались, а начинается с чего? Какие такие команды являются обязательными для начала прерываний, я этого не могу понять SETB EA - с разрешения прерываний?

Цитата Сообщение от DmitriyStroy Посмотреть сообщение
начинаются и заканчиваются любые подпрограммы обработки прерываний?
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
22.03.2021, 01:19
Цитата Сообщение от ValeryS Посмотреть сообщение
в общем то как раз и нужна только reti
прерывание которое ничего не делает, зашло-вышло
Такое прерывание бессмысленно. Т.о. ваше замечание чисто теоретическое поэтому игнорируется.
Цитата Сообщение от DmitriyStroy Посмотреть сообщение
А начинается тогда с чего?
Ни с чего особенного. Начинается с кода, который этот обработчик должен выполнять с учетом того, о чем я писал в ответе #4.
Цитата Сообщение от DmitriyStroy Посмотреть сообщение
Какие такие команды являются обязательными для начала прерываний, я этого не могу понять
Чтобы разрешить прерывания вообще нужно в основной программе их разрешить инструкцией SETB EA. Но нужно ещё разрешить и конкретное прерывание.
0
22.03.2021, 05:34

Не по теме:

Цитата Сообщение от northener Посмотреть сообщение
Такое прерывание бессмысленно.
а вот такое:)
Цитата Сообщение от northener Посмотреть сообщение
Assembler
1
2
3
LJMP    Serial
................
Serial: RETI

0
23.03.2021, 03:38

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
а вот такое:)
Так это вашими молитвами было повеяно.
Сначала я отвечал автору, который как мне думалось хотел понять и разобраться.
Но когда стало ясно что автор избрал неверный путь для того чтобы "сдать и сбросить", тогда и пошел по вашему неверному пути. :)

0
Модератор
Эксперт по электронике
8981 / 6748 / 921
Регистрация: 14.02.2011
Сообщений: 23,871
23.03.2021, 07:02
northener,
0
пофигист широкого профиля
4770 / 3205 / 862
Регистрация: 15.07.2013
Сообщений: 18,613
24.03.2021, 02:42
ValeryS, ditto
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.03.2021, 02:42
Помогаю со студенческими работами здесь

пример программы обработки прерываний (маскируемой)
Нужен пример программы обработки прерываний (маскируемой) с комментариями...

Программирование внешних устройств в режиме обработки прерываний
не до конца понимаю как осуществляется работа процессора в режиме прерывания. Пропустил занятия по данной теме. кому не сложно, помогите...

Подпрограмма обработки прерываний: что это и как использовать
Всем привет.Я начинающий в ассемблере....Возник вопрос насчёт обработки прерываний:Что это вообще такое и как его использовать? А...

Определить количество векторов прерываний проинициализировано адресами процедур обработки
Определить какое количество векторов прерываний проинициализировано адресами процедур обработки, расположенных в BIOS. вывести на экран все...

В чём отличие обработки прерываний int 21h и int 28h
int 21h и int 28h.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru