Автор: ROMby Unknown , 21 мая 2003
Очень часто, при просмотре биоса (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 или еще где-то) и по какому смещению?
Содержимое данного поля является приватным и не предназначено для показа.

BBCode

  • HTML-теги не обрабатываются и показываются как обычный текст
  • You may use the following BBCode tags:
    • [align]
    • [b]
    • [code]
    • [color]
    • [font]
    • [hr]
    • [i]
    • [img]
    • [list]
    • [quote]
    • [s]
    • [size]
    • [spoiler]
    • [sub]
    • [sup]
    • [table]
    • [u]
    • [url]
  • Адреса веб-страниц и email-адреса преобразовываются в ссылки автоматически.

Arsenal_PC

22 года 9 месяцев назад

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

apple_rom

22 года 8 месяцев назад

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

Unknown BIOS (не проверено)

22 года 8 месяцев назад

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

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