Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как в C сделать так чтобы не использовался регистр bp?

1.0K
25 сентября 2002 года
kostya_11
2 / / 20.04.2000
run_proc = (void (far*)()) MK_FP(Segment, Offset);
// void (far *run_proc)() - глобальный
// Offset - глобальная

_SP = NewSP; // NewSP - глобальная
_SS = Segment; // Segment - глобальная

run_proc();

Этот программа работает не корректно т.к. перед вызовом run_proc() адрес лежит в ssbp(или около того), а ss меняется и следовательно адрес получается не верный.
Как можно сделать так чтобы не использовался регистр bp на какое то время? Может есть какая нибудь директива компилятора?

Заранее спасибо.



[ Это Сообщение было отредактировано kostya_11 в 2002-09-25 1823 ]
572
26 сентября 2002 года
Chingachguk
29 / / 20.01.2000
Попробуй объявить свою run_prog как НЕЛОКАЛЬНУЮ переменную (т.е. в области глобальных данных) - тогда адресация будет через DS:
Можешь написать кусок на асме - так еще проще Адрес можно запушить в новый стек и сделать retf
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог