Size: a a a

Ассемблер

2021 May 15

ST

Saenro T in Ассемблер
Вернее прерываниям. Так следить надо, не бездумно же всё писать.
источник

AM

Alexander Morozov in Ассемблер
И так и так. Можно попытаться собрать структуру прямо в стеке, но ее нельзя использовать во время прерывания.
источник

ST

Saenro T in Ассемблер
Нет ничего невозможного.
источник

s

s54816 in Ассемблер
А какие прерывания? Если у нас esp, то это 32 бита и скорее всего юзермод. У прерываний свой стек.
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
да используйте вы уже movs(bwd), чего вы спорите
источник

AM

Alexander Morozov in Ассемблер
Естественно. У компьютера Радио86 для подключения динамика использовался выход процессора для сброса периферии.
источник

D

Den in Ассемблер
Вот нашел что то но непонятно о каком режиме работы процессора идет речь:

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

т.е указатель можно и на область кода переставить например и вот главное:

При альтернативном использовании обработка прерываний невозможна, так как во избежание повреждения данных прерывания должны запрещаться.
источник

D

Den in Ассемблер
вот что касается linux:
Исторически обработчики прерываний не получали собственных стеков. Вместо этого они будут делиться стеком процесса, который они прервали
источник

aq

anonim qwerty in Ассемблер
Заработало. Спасибо
источник

D

Den in Ассемблер
А вот тут я запутался потому что это из того же текста о linux:
Все прерывания обрабатываются kernel. Это делается обработчиком прерываний, написанным для этого конкретного прерывания. Для обработчика прерываний существует стек IRQ. Настройка стеков обработчика прерываний - это опция конфигурации. Размер стека kernel не всегда может быть достаточным для работы kernel и пространства, необходимого для обработки IRQ. Следовательно, в картину входит 2 стека.

   Аппаратный стек прерываний.
   Программный стек прерываний.

В отличие от обычного стека kernel, выделяемого для каждого процесса, два дополнительных стека выделяются для каждого CPU. Всякий раз, когда происходит аппаратное прерывание (или обрабатывается softIRQ), kernel должен переключиться на соответствующий стек.
источник

a

asm in Ассемблер
Добро пожаловать HNDRXX Nathaniel. Не ответив на вопрос, будешь удалён из чата
источник

D

Den in Ассемблер
так и не понял стек для обработчика прерываний свой или стек прерваного процесса
источник

D

Den in Ассемблер
Проще короче в отладчике по ситуации смотреть какой стэк используется а то так мозг сломаешь гадать
источник

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
ку
источник
2021 May 16

A

Aiwan ╭∩╮ (òÓ,) ╭∩╮b... in Ассемблер
HNDRXX ку
источник

楽園松本 in Ассемблер
HNDRXX что больше, ax или bx?
источник

АШ

Алексей Шведов... in Ассемблер
😂
источник

А

Антон in Ассемблер
#masm
Здравствуйте, подскажите пожалуйста, регистр edx может сам скидываться в ноль?
У меня функция, которая должна посчитать c^4 - a^3 - c^2, результат в eax, c = ecx = 6, a = ebx = 4,
и когда я пытаюсь промежуточный результат сохранить в edx, потом оказывается, что он равен нулю.
При этом, с другими регистрами таких проблем вроде нет, и с дополнительной переменной с2 тоже всё хорошо работает.

6^4 - 4^3 - 6^2 = 1196
При попытке сохранить промеж. результат в edx, ответ получаем   (04D0)16=(1232)10 - ответ неверный,
если использовать переменную то (04AC)16 =(1196)10  - правильно
источник

А

Антон in Ассемблер
источник

А

Антон in Ассемблер
источник