push ax
FSTCW word ptr [bp].exp2cw
FLDCW word ptr [bp-4] ; установить округление к
; ... ближайшему целому
pop ax ; очистить стек
pop ax ; восстановить AX
;
; Начать обработку числа:
FLD ST(0) ; ST => ST(1) => X для 2**X
FRNDINT ; ST => n(N); ST(1) => X
FXCH ; ST => X; ST(1) => n(N)
FSUB ST,ST(1) ; ST => f(X); ST(1) = n(X)
FTST ; установить коды условий
FSTSW word ptr [bp].exp2cc ; сохранить коды условий
FWAIT
and byte ptr [bp+1].exp2cc,45h ; замаскировать все
; ... кроме кодов условий
cmp byte ptr [bp+1].exp2cc,1 ; проверить на
; ... отрицательность
ja exp2_err ; NAN или бесконечность -> ошибка
je exp2_neg ; дробная часть минусовая
;
F2XM1 ; ST => (2**f(X)) - 1; ST(1) = n(X)
FLD1 ; ST => 1; ST(1) => (2**f(X))-1;
; ... ST(2) = n(X)
FADD ; ST => 2**f(X); ST(1) => n(X)
FSCALE ; ST => 2**(X) => 2**(N(log2(?)) => ?**N
FSTP ; ST => ?**N; ST(1) => восстановлен
jmp exp2_mer ; соединить
;
exp2_neg:
FABS ; ST => 1-f(x); ST(1) = n(X) + 1
F2XM1 ; ST => (2**(1-f(x)))-1; ST(1) = n(X) + 1
FLD1 ; ST => 1; ST(1) => (2**(1-f(x)))-1
FADD ; ST => 2**(1-f(x)); ST(1) => n(X) +1
FXCH ; ST => n(X) + 1; ST(1) => 2**(1-f(x))
FLD1 ; ST => 1; ST(1) = n(X) + 1
FSCALE ; ST => 2**(n(X) + 1);
; ... ST(2) => 2**(1-f(x))
- 10-44 -
FDIRP ST(2),ST ; ST(1) => 2**(n(X) + 1)/2**(1 - f(x))
FSTP ST(0) ; ST => 2**(n(x) + 1 - 1 + f(x) => 2**(X)
;
exp2_mer:
clc ; нет ошибок
exp2_out:
FLDCW word ptr [bp].exp2cw ; восстановить слово
; ...состояния
STKADJ4 EQU exp2bp-EXP2D
add sp,STKADJ4 ; восстановить первоначальный стек
pop bp ; восстановить базовый указатель
ret
exp2_err:
stc ; были ошибки
jmp exp2_out
exp2 ENDP
;*************************************************************
END ; конец программ
______________________________________________________________
Заключение
Приводя примеры программ отладки и ввода/вывода, мы надеемся,
что объяснили Вам, как работает NPX и какие возможности он пре-
доставляет, а также вдохновили Вас на разработку собственных
программ для NPX. Имея такое средство, Вы смогли бы заняться лю-
бой интересующей Вас работой. Тригонометрический анализ, преобра-
зования Фурье - все намного проще, если Вы используете вычисли-
тельную мощь NPX. Удачи Вам и успешной числовой обработки!
ЧАСТЬ III. ВОССТAHОВЛЕНИЕ
Глава 11. СТРУКТУРА ДИСКА И ВОССТAHОВЛЕНИЕ ФАЙЛОВ
Основные принципы восстановления файлов
Обзор процедур восстановления
Восстановление разрушенных файлов при помощи утилит
CHKDSK и RECOVER
Восстановление стертых файлов
Заключение
Если вы уже некоторое время поработали с операционной систе-
мой MS-DOS, вам, вероятно, доводилось случайно стирать или по
ошибке терять файл, который мог бы в дальнейшем вам понадобиться.
Команда ERASE (или DEL) в операционной системе MS-DOS является
часто используемой и мощной, а по своей природе - это разрушающая
команда. Разрушительная сила, конечно, требуется этой команде для
выполнения ею своих функций, но если вы проявите беспечность, эта
команда станет губительной, чего вы вряд ли желаете.
Единственная предусмотренная защита от случайного удаления
файлов командами ERASE или DEL появляется на экране тогда, когда
вы собираетесь удалить все файлы на диске и указываете команду
стирания в виде "erase *.*". Только в этом случае на экране появ-
ляется вопрос о том, действительно ли вы хотите выполнить такую
операцию. Если в качестве ответа вы введете символ "n" (нет), вы-
полнение команды будет прекращено. В тех же случаях, когда вы ис-
пользуете указанные команды удаления для стирания отдельных фай-
лов или групп файлов, единой защитой вам может послужить
самоконтроль: сделайте паузу прежде, чем нажать клавишу "Return"
(или "Enter"), и внимательно еще раз проверьте набранную вами ко-
манду для удаления файлов. Даже тогда (и это не зависит от степе-
ни вашей уверенности в правильности указания файла или файлов,
подлежащих удалению) среди удаленных вами файлов могут быть та-
кие, которые удалять не следовало. Что ж, все мы люди и когда-то
совершаем ошибки! Поскольку компьютеры устроены так, что мгновен-
но подчиняются вашим командам, запрос на удаление файлов будет
выполнен немедленно после нажатия вами клавиши "Return" (или
"Enter") в конце командной последовательности.
Файл может быть также стерт выполняющейся в текущий момент
программой. Текстовые редакторы и другие программы, обеспечиваю-
щие средства управления файлами, могут содержать команды (в явной
или неявной форме) по удалению файлов. Кроме того, файлы могут
оказаться стертыми в результате сбоев оборудования, сбоев в пода-
че питания или в результате каких-то запутанных переходов в самой
программе.
Итак, что нужно делать, если непродублированный нигде файл
был по ошибке удален? К счастью, файловая система MS-DOS была
разработана так, что в некоторых случаях восстановить стертый
файл не составляет труда: существует несколько специальных ути-
лит, предназначенных для восстановления стертых файлов. Некоторые
из этих утилит поставляются в основном комплекте программных
средств. Другие можно приобрести отдельно. Из отдельно приобрета-
- 11-2 -
емых средств наиболее распространенными являются "Norton-утили-
ты" и "Mace-утилиты". Аналогичный указанным программный продукт
под названием "Ultra-утилиты" состоит из набора утилит, имеющего-
ся в "свободной торговле"*. В настоящее время его можно достать
через многочисленные общедоступные каналы распространения прог-
раммного обеспечения.
В настоящей главе мы обсудим процедуры восстановления стертых
файлов и использование утилит CHKDSK и RECOVER операционной сис-
темы MS-DOS для восстановления разрушенных или потерянных файлов.
Мы будем также обсуждать применение других способов восстановле-
ния файлов, включающих в себя коммерческие программы "Norton-ути-
лит" и поддерживаемые пользователем программы "Ultra-утилит".
Для того, чтобы понять работу указанных выше средств, вы
должны понимать работу всей файловой системы MS-DOS, тогда вы
сможете понять и ограничения, которые имеют утилиты восстановле-
ния файлов. Отметим, что и "Norton-утилиты" и "Ultra-утилиты" ра-
ботают только в персональных компьютерах фирмы "IBM" или совмес-
тимых с ними персональных компьютерах. "Norton-утилиты", начиная
с версии 2.01, осуществляют также восстановление файлов, располо-
женных на жестких дисках (имеются в виду 10-Мегабайтные жесткие
диски в персональных компьютерах типа IBM-PC или в совместимых с
ними средах), а "Norton-утилиты", начиная с версии 3.0, имеют
поддержку как 20-Мегабайтных жестких дисков модели IBM PC/AT, так
и гибких дисков большой емкости (работающих под управлением опе-
рационной системы MS-DOS версии 3.0 или более поздних). Версия
4.0 "Norton-утилит" включает в себя возможность работы с любым
носителем дискового типа, работающим под управлением операционной
системы MS-DOS при условии, что дисковый носитель отформатирован
согласно стандартным соглашениям по операционной системе MS-DOS.
Несмотря на то, что пакеты утилит восстановления файлов
чрезвычайно полезны при работах в средах, для которых они были
разработаны, может так случиться, что они не будут работать над-
лежащим образом в среде конкретной операционной системе MS-DOS, и
особенно тогда, когда вашей системой не является персональный
компьютер IBM PC или в достаточной степени совместимый с ними
персональный компьютер. По этой причине в данную главу включено
описание программы, которую вы можете попробовать запустить в том
случае, когда другие утилиты не работают или, когда вы решаете,
что они не подходят для вашей машины. Программа RESCUE проста по
конструкции и может быть расширена и приспособлена под новые
свойства. Программа RESCUE предназначена для работы с дисками
(сменными и постоянными) при условии, что формат дисков соответс-
твует стандартным соглашениям по операционной системе MS-DOS.
Прежде чем мы продемонстрируем вам использование "Norton -ути-
лит", "Ultra-утилит" и альтернативной им программы RESCUE, давай-
те изучим основные принципы системы дисковой памяти MS-DOS и ос-
новные принципы восстановления файлов.
ДДДДДДДДДДДДДДДДДДДДДДДДДДДД
* Способ коммерческого распространения программного обеспече-
ния, при котором любой пользователь может свободно скопировать и
использовать программу; если пользователь находит использование
программы полезным, он может послать разработчику указанную в до-
кументации сумму, после чего он считается "зарегистрированным
пользователем" и имеет право на получение информации о новых
версиях. (Примечание переводчика.)
- 11-3 -
Основные принципы восстановления файлов
Вероятно вам будет небезинтересно узнать, как можно восста-
новить стертый файл. Интуитивно кажется, что если уж файл стерт,
он должен быть совершенно удален с поверхности диска навсегда.
Это предположение частично верно, поскольку после того, как файл
был стерт он больше не виден и к нему нет доступа при помощи ни-
каких стандартных команд MS-DOS.
Каждый файл, сохраняемый операционной системой MS-DOS на
диске, состоит из следующих трех частей: