как создать файл 4 Гб под досом.

Тема в разделе "WASM.BEGINNERS", создана пользователем Q_sam, 10 янв 2009.

  1. Memphis

    Memphis New Member

    Публикаций:
    0
    Регистрация:
    23 окт 2008
    Сообщения:
    104
    SadKo
    Может, лучше провести эксперимент тупо по созданию файла в 4гб на fat32 файловой системе? - уже 8 лет веду такие эксперименты, даже прожку написал по генерации файлов (1...65536 - количество) длиной каждый от 0 до 2**32-1, с заполнением кодом и без заполнения.

    _edge
    Команду copy file1+file2 file3 и BAT-файлы уже отменили? Если в задании не указано, каким образом создавать файл. - вчера проверил как в ДОС-окне, так и в чистом ДОСе (Вин98СЕ) - успешно создаются файлы на 3 и 4 Гига. Метода работает.
     
  2. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    http://ru.wikipedia.org/wiki/FAT32
     
  3. Q_sam

    Q_sam New Member

    Публикаций:
    0
    Регистрация:
    10 янв 2009
    Сообщения:
    21
    уточнил сегодня задание у препода.. вообщем смысл такой: необходимо научиться работать под DOS в защищенном режиме. те самостоятельно туда переключатьсяФайловая система FAT 32. Просто в защиченном режиме неполучиться адресовать память больше метра (кажется). т.е мы переходим в защищ. режим, аресуем кусок допустим 400 мб, переключаемся в реальный режим записываем в файл, ...... переключаемся в защ. режим итд.. пока не запишем файл размером нужного объема...говорит в литературе такое есть.. где именно специально не сказал чтобы поискал...
    так вот... мне непонятно следующее : вот я переключился в реальный режим... и че мне в нем делать... что я там должен получить.... может кто подскажет...
    ....пошел искать литературу.....
     
  4. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Q_sam
    Больше мегабайта нельзя адресовать в реальном режиме, а не в защищённом. В защищённом можно как раз адресовать всё. Про переключение туда-сюда есть много где, в т.ч. и в интеловских мануалах (в третьем томе).

    Ну а задание, как я понимаю, состоит в том, чтобы научиться читать или записывать данные, находящиеся за пределами первого мегабайта (прямо доступного в ДОС) в файл на диске, используя средства ДОС. Т.е., грубо говоря, надо: 1) переключиться в защищённый режим; 2) скопировать данные в буфер, лежащий в младшем мегабайте; 3) вернуться в реальный режим; 4) записать данные из буфера в файл на диске; 5) повторять до тех пор, пока всё не будет записано.
     
  5. Q_sam

    Q_sam New Member

    Публикаций:
    0
    Регистрация:
    10 янв 2009
    Сообщения:
    21
    извиняюсь заговорился... а на русском есть инфа? И я так понял буфер это просто массив данных? например buf db 4000000 dup(0) ;??????
     
  6. SII

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

    Публикаций:
    0
    Регистрация:
    31 окт 2007
    Сообщения:
    1.483
    Адрес:
    Подмосковье
    Q_sam
    Буфер -- не совсем массив данных. Технически, конечно, это массив, но его назначение -- промежуточное хранение данных. Например, он нужен для того, чтобы записать на диск с помощью файловых сервисов ДОСа данные из областей памяти, лежащих выше мегабайта: добраться к самим данным можно только в защищённом режиме, однако в нём не работают функции ДОСа и БИОСа, поэтому и приходится заниматься извращениями: переключаться в защищённый, копировать данные из верхних адресов в промежуточный буфер, наодящийся в нижних адресах, возвращаться в реальный режим и уже из этого буфера выполнять запись на диск.

    Если говорить точнее, добраться до памяти выше мегабайта можно ещё в "нереальном" режиме (и это даже проще), но это нештатный, хотя и всегда работающий режим, да к тому же Вам задали использовать именно защищённый режим.

    На русском полно всяких книг по ассемблеру, там обычно что-нибудь пишется и про защищённый. Но тут ничего не посоветую: учебной литературы у меня нет, только справочная.
     
  7. Y_Mur

    Y_Mur Active Member

    Публикаций:
    0
    Регистрация:
    6 сен 2006
    Сообщения:
    2.494
    Q_sam
    Если нужно только дотянуться до памяти за пределами 1Мб есть такая клаасная штука как унреал, и в том примере чтобы его установить как раз есть вход-выход в защищённый режим, но и теория тебе тоже явно не помешает ;)