Таблица векторов прерываний

Discussion in 'WASM.BEGINNERS' started by Asm75, Jan 4, 2009.

  1. Asm75

    Asm75 New Member

    Blog Posts:
    0
    Joined:
    Jan 3, 2009
    Messages:
    28
    Где взять таблицу векторов прерываний?
     
  2. rudik

    rudik Руденко Артём

    Blog Posts:
    0
    Joined:
    Dec 6, 2006
    Messages:
    302
    Location:
    г. Харьков
    в реальном режиме - 0x00000000 - 0x00000400, в безопасном читай idtr.address.
     
  3. Asm75

    Asm75 New Member

    Blog Posts:
    0
    Joined:
    Jan 3, 2009
    Messages:
    28
    То, что таблица занимает такой-то диапазон в начале памяти я знаю. Опишите пошагово, что сделать-то надо? А как в безопасный режим попасть и как прочитать указанный файл? F8 при перезагрузке и искать Поиском Винды?? А разве нет в природе просто списка в формате .doc: Обработчик прерывания такого-то находится в памяти по адресу такому-то?
     
  4. Partner

    Partner Павел

    Blog Posts:
    0
    Joined:
    Feb 28, 2008
    Messages:
    917
    Location:
    Los Angeles
    Не смешно.
     
  5. Pavia

    Pavia Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 17, 2003
    Messages:
    2,409
    Location:
    Fryazino
    Partner
    Еще как смешно. =)

    Asm75
    Почему нето у меня в планах есть. =)
    idtr.address это не файл. idtr это регистр. address - его поле.
    Только оброщение к этому регистру идет иначе нежеле чем к ax.

    Таблица для того и создона чтобы избежать постоянной базы. Вот номера они известны и известны что где и по чем.
     
  6. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Pavia
    Если уж говорить точно, то известны до определённой степени. Например, устройствам в процессе их настройки могут назначаться различные номера IRQ, а значит, и разные векторы прерываний. Жёстко зашиты лишь номера векторов, связанных с собственно процессором (деление на нуль, общее нарушение защиты и т.д.). Даже номера векторов, используемых операционной системой (если речь о Винде), можно теоретически поменять: в конце концов, Майкрософт никому не гарантировала переносимость на уровне вызовов NativeAPI через прерывания :)
     
  7. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    _IDT
     
  8. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    Раз ты знаешь что адрес 00000, каждый обработчик в таблице занимает 4 байта (2 на сегмент, 2 на смещение), то можно с достаточной точностью сказать, что обработчик прерывания такого-то находится в памяти по адресу 4*[прерывание-такое-то]
     
  9. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Great
    Так это только для реального режима...
     
  10. wasm_test

    wasm_test wasm test user

    Blog Posts:
    0
    Joined:
    Nov 24, 2006
    Messages:
    5,582
    А ты смог понять с его постов для какого ему надо? =)
    Предположил этот вариант потому что проще. А у него чтото там про безопасный режим, поиск файлов и таблицу векторов... фиг поймешь

    О.. всетаки перечитав несколько раз понял шутку (или не шутку?) про idtr.address. Хихикая, удаляюсь)
     
  11. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Great
    Сия тайна велика есть :)

    А вообще-то рано браться за издевательства над прерываниями -- у человека явно пока не хватает знаний по устройству и работе компутеров вообще и процессора в частности.
     
  12. Pavia

    Pavia Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 17, 2003
    Messages:
    2,409
    Location:
    Fryazino
    SII
    Что ты хочешь человек второй день ассемблер изучает, а до этого на бесике писал.
     
  13. SII

    SII Воин против дзена

    Blog Posts:
    0
    Joined:
    Oct 31, 2007
    Messages:
    1,483
    Location:
    Подмосковье
    Pavia
    Откуда мне знать, что он знает, а что -- нет? Я лишь вижу, что с ассемблером он пока знаком очень слабо. А значит, заниматься прерываниями ещё рано -- всему своё время. Нельзя изучать интегралы с производными, если арифметика ещё твёрдо не усвоена :)
     
  14. Asm75

    Asm75 New Member

    Blog Posts:
    0
    Joined:
    Jan 3, 2009
    Messages:
    28
    Пора и представиться: Z - специалист совсем в другой области, заинтересовался тем, как работает компьютер и программированием, в частности на асме. Как и рекомендовано человеку, который хочет во всем спокойно разобраться, читаю статью "Введение в машинный код". В этой статье говорится про таблицу векторов прерываний, по которой процессор узнает по какому адресу памяти обратиться для запуска программы-обработчика полученного прерывания. Цитата из статьи "Введение в машинный код":
    Вот я и подумал, где можно раздобыть такую удобную таблицу :)) Я понимаю, как вам смешно, но все-таки хочу глубоко проработать тему ассемблера, разобраться в работе процессоров и научиться программировать. (под DOS и под Windows).
     
  15. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Asm75
    Скозали ведь, инструкцию sidt заюзой, например:
    Code (Text):
    1.     sub esp,8
    2.     sidt fword ptr ss:[esp]
    3.     mov eax,dword ptr ss:[esp + 2]
    4.     add esp,8
     
  16. steelfactor

    steelfactor New Member

    Blog Posts:
    0
    Joined:
    Apr 26, 2007
    Messages:
    501
    Asm75
    Здесь цикл статей есть "Процессор Intel в защищенном режиме",
    почитай их для начала, чтоль...
     
  17. Pavia

    Pavia Well-Known Member

    Blog Posts:
    0
    Joined:
    Jun 17, 2003
    Messages:
    2,409
    Location:
    Fryazino
    Asm75
    Как уже сказали таблица в реальном режиме находится по адрессу 00000-0003ff.
    А чтобы узнать за что какое прерывание отвичает. Советую взять справочник Ralf Brown interrupt list. Хотя я предпочитаю PhoenixBIOS 4.0 Programmer’s Guide И help по досу.

    PS Линк поправил просто по дороге опостроф пропадал.
     
  18. Asm75

    Asm75 New Member

    Blog Posts:
    0
    Joined:
    Jan 3, 2009
    Messages:
    28
    Т.е. таблица для каждого процессора своя, а как её посмотреть?

    я в отладчике debug.exe ввожу команду -r а регистра такого там нет. И не должно быть? Как тогда его "прочитать"
    А каким образом?

    Еще вопрос, почему цифры начинаются с 0х?


    для чего это?


    Не могли бы пояснить, как заюзать этот код и как он поможет мне, ведь цель - посмотреть таблицу векторов прерываний?
     
  19. Asm75

    Asm75 New Member

    Blog Posts:
    0
    Joined:
    Jan 3, 2009
    Messages:
    28
    Object not found!
    The requested URL was not found on this server. The link on the referring page seems to be wrong or outdated. Please inform the author of that page about the error.

    If you think this is a server error, please contact the webmaster.

    Error 404
     
  20. Clerk

    Clerk Забанен

    Blog Posts:
    0
    Joined:
    Jan 4, 2008
    Messages:
    6,689
    Location:
    РБ, Могилёв
    Это внутреннее имя не экспортируемое таблицы IDT в ядре NT. Ну я же не знал по столь не подробному вопросу что тебе надо, по дефолту подразумевается виндоз.
    Ну вернёт код этот тебе адрес таблицы, нужно её прочитать. Способ зависит от того где это будет юзатьсо.
    Тебе под какую ось нужно ?