Реальный 32-битный режим

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

  1. Medstrax

    Medstrax Забанен

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    673
    Не все так просто. При mov/push cs старшие 16 бит не меняются.
    При int N старшие 16 бит в стеке устанавливаются в 0

    ЗЫ. Мне вообще непонятно почему push ax уменьшает вершину стека на 2, а push cs на 4 (естесно, речь идет о 32-х битном режиме). Если дело только в выравнивании стека по границе двойного слова, то почему бы и в 1-м случае уменьшать esp на 4
    ЗЗЫ. Интересно, с AMD-шными процами все точно так же как с интел?
     
  2. droopy

    droopy New Member

    Публикаций:
    0
    Регистрация:
    2 окт 2004
    Сообщения:
    21
    Хватит спорить о разрядности регистров. Все-таки тема о реальном 32-битном режиме.
    Когда-то давно я сделал мини-ОС в этом режиме. Но все исходники потерялись. Это выглядело примерно так:
    программа загружалась в DOS, переходила в RM32
    перехватывала base и xms память DOS
    ставила свои драйвера HDD, FDD, клавы и тд
    исполняла программы формата *.32 (чистый код, типа com, только RM32)
    предоставляла им свои функции

    Так как память DOS не разрушалась, то предоставлялся сервис "выполнить прерывание DOS/BIOS", вплоть до выполнения программы. Для этого включался обычный реальный режим.

    То есть было что-то вроде расширителя DOS.
    Так вот, мне интересно, нужно ли это сейчас? Или лучше не париться, все равно никто не оценит.
     
  3. sergh

    sergh New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    128
    Адрес:
    rsdn
    droopy
    >> Так вот, мне интересно, нужно ли это сейчас? Или лучше не париться, все равно никто не оценит.

    Что значит "нужно"?
    Представляет ли твоя разработка коммерческую или практическую ценность - вряд ли. Будет ли на такой ОС кто-то реально работать - вряд ли. Насколько я понимаю, она похожа на простой вариант ОС для встраиваемых систем, но для нормального использования нужен как минимум компилятор, набор библиотек, набор драйверов.

    Имхо, всё это ковыряние в асме, а особенно в области осеписания - 99% for fun. На x86 типичному программисту на практике может пригодиться MMX с SSE для ускорения критических участков и некое "общее понимание" - для отладки.

    Но вот мне например fun :) А "нужно"/"не нужно" - какая разница?
     
  4. sergh

    sergh New Member

    Публикаций:
    0
    Регистрация:
    31 авг 2005
    Сообщения:
    128
    Адрес:
    rsdn
    Medstrax
    Возможно для того, чтобы сделав
    push eax
    push cs
    можно было эмулировать call