Команда lsl

Тема в разделе "WASM.ASSEMBLER", создана пользователем Mika0x65, 12 июл 2006.

  1. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Мое почтение всем.

    Написал небольшую программу, которая обходит таблицы GDT/LDT и выводит доступную с 3его кольца информацию о дескрипторах. Заметил, что для занятых 16битных дескрипторов TSS, команда lsl не возвращает значение предела. DPL этих сегментов = 3, т.е., лимит доступен. Ошибок в коде, вроде, нет... В чем может быть причина?

    P.s. Дело происходит в BSD 4.8, строптивые дескрипторы находятся в LDT. Лимит такого же дескриптора, но в GDT получить удается. Но, м.б., дело не в этом...
     
  2. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    Mika0x65
    Дескрипторы TSS не могут находиться в LDT, вернее находиться они там могут, но использовать их не получится.
     
  3. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Спасибо, об этом я не подумал...

    Судя по всему, у меня ошибка в определении типа дескриптора -- сейчас попробовал загрузить в ds селектор, индексирующий "TSS в LDT" и не получил #GP.