Что означает этот код в авардовском биосе?

Очень часто, при просмотре биоса (original.bin), встречается следующий код:
Пример:

call 88BE
...

1. 88BE: push 0E000

2. 88C1: push 088CF
3. 88C4: push 0EC31
4. 88C7: push 0323C
5. 88CA: jmp 0F000:0EC30
6. 88CF: retn

Такие куски кода встречаются очень часто. Отличаются они только (как правило) строками 2 и 4. Я как понял, это вызов какой-то функции...
push 088CF - сохранение адреса для возврата

Вопрос: Как узнать где находится код этой функции...
где его искать? (в bootloader'e или в original.bin или еще где-то) и по какому смещению?

ето трехетажные перепрыни от аварда короче
push 0323C-реальный адрес перепрыга
п.с. надо побольше знать о структуре
биоса т.е. все сегменты памяти...

Что сказали татары прийдя на Русь? "Сдавайтесь русские-нас орда!"
И что им ответили русские?
"А нас-рать!" ) (с)

Аватар пользователя apple_rom

Это стандартный вызов процедуры из другого сегмента (вприведенном случае - F000). Т.е. пп. 1-4 можно банально заменить на far call F000:323C.

apple_rom писал(-а):
Это стандартный вызов процедуры из другого сегмента (вприведенном случае - F000). Т.е. пп. 1-4 можно банально заменить на far call F000:323C.

Не так уж и банально...
Просто в конце вызываемой процедуры retn стоит а не
retf... Вот и изгогяется народ...

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img>
  • You can use BBCode tags in the text. URLs will automatically be converted to links.

Подробнее о форматировании текста

Антибот - введите цифру.
Ленты новостей