Директива align в NASM

Тема в разделе "WASM.ASSEMBLER", создана пользователем Microedition, 19 окт 2008.

  1. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Привет всем.
    Не поскажете, директива align в nasm'e правильно работает?
    Пишу тестовую прогу для защищенного режима, пытаюсь выравнить GDT так:

    ---------------------------------------
    align 4
    GDT:
    .null db 0x00,0x00,0x00,0x00,0x00,00000000b,00000000b,0x00 ; null descriptor
    .code db 0xFF,0xFF,0x00,0x00,0x00,10011010b,11001111b,0x00 ; code descriptor
    .data db 0xFF,0xFF,0x00,0x00,0x00,10010010b,11001111b,0x00 ; data descriptor
    ---------------------------------------

    При запуске комп перезагружается.
    В работоспособности проги полностью уверен.
    Загрузается по адресу 0x00000000

    Пытался выравнить вручную - работает
     
  2. Microedition

    Microedition Active Member

    Публикаций:
    0
    Регистрация:
    5 июн 2008
    Сообщения:
    814
    Уверен, что дело именно в GDT
     
  3. Mika0x65

    Mika0x65 New Member

    Публикаций:
    0
    Регистрация:
    30 июл 2005
    Сообщения:
    1.384
    Насчет NASM'а не знаю, но отладить такой момент можно с помощью Bochs, например. Или привести здесь полный код.
     
  4. Mikl___

    Mikl___ Супермодератор Команда форума

    Публикаций:
    14
    Регистрация:
    25 июн 2008
    Сообщения:
    3.787
    Microedition ALIGN и ALIGNB в NASM
    Взято здесь