[an error occurred while processing this directive]
|
вчера,если помните, я спрашивал совета по поводу глюка с прерываниями, проблему решить,к сожалению, не удалось, зато выяснил
путем ковыряния в дизасме следующее:
глобальная переменная портится только тогда, когда после прерывания я попадаю(по IRP) на проверку условия(в сишном коде - switch), в ассемблере условие типа
CMPEQ .L2 B4,11,B0
[ B0] B .S1 L39 <==== попадаю сюда
NOP 5
только к тому времени B0 уже ,почему то ,не равен нулю.
так вот вопрос, то ли неправильно записывается регистр IRP(в чем я сильно сомневаюсь), то ли пора мылить шею(чего не хочется).
если пройтись по коду по шагам, выходит, что в этом месте регистр В0 ну НИКАК не может быть не равен нулю, а если запустить не исполнение - еще как может.
в общем тону, спасите
E-mail: info@telesys.ru