Разнотолки по поводу памяти по адресу...

Тема в разделе "WASM.HARDWARE", создана пользователем sizif, 15 июн 2008.

  1. sizif

    sizif New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    4
    Привет всем!
    Кто может ТОЧНО сказать, что за размер памяти лежит по адресу 00413h-00414h
    В инете я встерчал обяснения, что это размер сегмента, отведенного в реальном режиме для одной прогр.
    А в книге Барри Брэя "Микропроцессоры Intel, архитектура и т.д." сказано дословно:
    "Размер стандартной памяти в Кбайт (от 0 до 640)".
    Так где же правда? И если это правильно, о какой стандартной памяти идет речь?
     
  2. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Стоп. Стандартная память (Base Memory) - она же вроде всегда 640 кб! На то она и Стандартная... как это "размер"?
     
  3. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Ну были машины с памятью <640Kb давным-давно
     
  4. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    DEEP
    Great
    Не совсем верно. Физически вся эта память в размере 640 Кб, конечно, присутствует, однако для нужды программы часть её нельзя использовать. Если точнее, всегда нельзя использовать область векторов прерываний реального режима (нижний килобайт) и область данных BIOS (следующие 256 байт как минимум, а для некоторых функций BIOS -- ещё 256) -- итого 1,5 килобайта в самом низу (в адресах 00000-005FF). Кроме того, многие более-менее современные BIOS имеют область расширенных данных, находящуюся в верхней части области в 640 Кб, которую тоже нельзя затирать. Узнать размер этой области можно, спросив у BIOS имеющийся объём стандартной памяти. Например, на моём компе будет возвращена величина в 633 килобайта -- т.е. область расширенных данных занимает 7 Кб

    А вот какое число хранится в указанных ячейках, я, честно говоря, не знаю. Можно попробовать определить экспериментально: запросить у BIOS объём стандартной памяти, а затем глянуть, что записано в этих ячейках.
     
  5. sizif

    sizif New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    4
    Хммм... Т.е. разнотолки как были так и есть.
    А чем спрашивали?
     
  6. Black_mirror

    Black_mirror Active Member

    Публикаций:
    0
    Регистрация:
    14 окт 2002
    Сообщения:
    1.035
    sizif
    Может это и не имеет отношения к эти ячейкам, но например в OS/2 для досовских программ которые не использую графический режим можно было поставить использование памяти до $B800(текстовый буфер), то есть программа могла занимать 700К :)
     
  7. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    sizif
    Прошу прощения, проморгал вопрос :-[

    С помощью INT 12h, естественно. Сие прерывание входных параметров не имеет, а на выходе возвратит в AX размер памяти в килобайтах. Если у BIOS нет области расширенных данных, в AX будет содержаться 640 (десятичное).
     
  8. Pavia

    Pavia Well-Known Member

    Публикаций:
    0
    Регистрация:
    17 июн 2003
    Сообщения:
    2.409
    Адрес:
    Fryazino
    SII
    Да тут не только биос. Всякии там резиденты используют эту ячейку чтобы отвести для себя место в памяти.Для того чтобы их не стрели случайно.
    Расширенная облость биоса иначе определяется int 15h ah=0C1h.
     
  9. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Pavia

    INT 12h отрапортует фактически о том, какой максимальный адрес из младших 640 Кб можно использовать. Если проводить опрос до загрузки оси (а значит, и всяких программ), то память в верхних адресах этих 640 Кб может быть занята только самим BIOSом.