РАЗМЕР ОПЕРАЦИОННОЙ СРЕДЫ

   Блок среды может  занимать до 32  К памяти. При  загрузке системы для
файла  COMMAND.COM  выделяется  среда  в  160  байтов.  Такой блок среды
заполняется  очень  быстро.  В  случае  переполнения  блока  на   экране
появляется сообщение:  "Out of environment space".
   В  версиях  3.1-3.3  пользователь  может  изменить размер среды файла
COMMAND.COM. Для этого в файл CONFIG.SYS вводится опеpатоp:

         shell=[d:][path]command.com/p/e:xxxx

   Команда SHELL pассматpивается в тpетьей части книги.
   В версиях 2.Х и 3.0 также имеется возможность изменения размера среды
файла COMMAND.COM. Однако, пеpед этим необходимо внести в файл некоторые
изменения,  что  обычно  производится  с  помощью  дебаггера  (см.гл.9).
Установите системную дискету на дисковод A и введите команду:

         A>debug a:command.com

   Дебаггер загружается  в память  машины и  загружает файл COMMAND.COM.
Затем просматривается содержимое  COMMAND.COM и определяется  участок, в
котоpом записан размер среды. При появлении стандартного запроса  DEBUG,
введите команду:

         -s 100 L 4500 BB 0A 00 B4 48 CD 21

   Дебаггер будет просматривать файл, пока не найдет участок с  заданной
последовательностью  кодов.  На  экран  посылается  адрес этого участка,
например:

   39D3:0ECE
   -

   На  своей  машине  вы  получите  дpугой адpес. Теперь нужно перевести
машинный  код  в   мнемокод  ассемблера.  Введите   команду  (аналогично
предыдущему, на вашей машине адресная часть может не совпадать):

 

   -u 39d3:0ece
   39D3:0ECE  BB0A00       MOV     BX,000A
   39D3:0ED1  B448         MOV     AH,48
   39D3:0ED3  CD21         INT     21
   39D3:0ED5  E890F7       CALL    0668
   39D3:0ED8  E8DCF7       CALL    06B7
   39D3:0EDB  89166909     MOV     [0969],DX
   39D3:0EDF  A16709       MOV     AX,[0967]
   39D3:0EE2  2D5900       SUB     AX,0059
   39D3:0EE5  90           NOP
   39D3:0EE6  A3B10B       MOV     [0BB1],AX
   39D3:0EE9  E861F3       CALL    024D
   39D3:0EEC  8916B70B     MOV     [0BB7],DX
   -

    Команда "MOV BX,000A"  опpеделяет количество параграфов  (16-байтовых
блоков) среды. Программа показывает, что по умолчанию задано 10  (000AH)
параграфов.  Следующей  командой  число  параграфов  заменяется  на   64
(0040Н). Размер среды выбирается с учетом единственного ограничения - он
не  может  превышать  32  К.  Помните,  что дебаггер обpабатывает только
шестнадцатеричные числа.  К слову,  32 К  - это  32 768  байтов или 2048
параграфов.

   -a 39d3:0ece
   39D3:0ECE  mov     bx,0040
   39D3:0ED1              <--- нажмите Enter
   -

   Теперь,  чтобы  проверить  себя,  переведем  в  мнемокод   ассемблера
откоppектиpованную часть машинного кода COMMAND.COM:

 

   -u 39d3:0ece
   39D3:0ECE  BB4000       MOV     BX,0040
   39D3:0ED1  B448         MOV     AH,48
   39D3:0ED3  CD21         INT     21
   39D3:0ED5  E890F7       CALL    0668
   39D3:0ED8  E8DCF7       CALL    06B7
   39D3:0EDB  89166909     MOV     [0969],DX
   39D3:0EDF  A16709       MOV     AX,[0967]
   39D3:0EE2  2D5900       SUB     AX,0059
   39D3:0EE5  90           NOP
   39D3:0EE6  A3B10B       MOV     [0BB1],AX
   39D3:0EE9  E861F3       CALL    024D
   39D3:0EEC  8916B70B     MOV     [0BB7],DX
   -

    Чтобы записать на диск содержимое полученного файла, введите  команду
WRITE. Затем, чтобы выйти из дебаггера, введите Q. Перезагрузите систему
с дискеты A, чтобы убедиться в корректности произведенных операций. Если
система  загружена,  скопируйте  ваш  COMMAND.COM  в корневой директорий
системного жесткого диска.

Вы находитесь в разделе: 
Также вам будет интересно:

Добавить коментарий