Консультация № 144446
20.09.2008, 02:51
0.00 руб.
0 1 1
Здравствуйте уважаемые эксперты!
Подскажите мне ответы на несколько вопросов:
1) Если каждой, файл начинаются на границе сектора, то вывод можно сделать, что запись на дискету файлов ограничена, не количеством байтов на дискете, а количеством файлов на дискете.
Пример, дискета (высокой плотности 1 228 800 байт) максимальное число записанных файлов (файлы меньше 512 байтов) на нее можно разместить: 2(две стороны)*80(число дорожек на стороне)*15(число секторов на дорожке)=2400 файлов.
Скажите, мои расчеты верны или есть, какая-то ошибка.
Говорят что команды условных переходов, к примеру возьмем для беззнаковых данных, je/jz или jne/jnz – одинаковы за назначением, почему тогда используются оба(je/jz), а не какой-то один (je).

Обсуждение

давно
Старший Модератор
31795
6196
20.09.2008, 05:24
общий
это ответ
Здравствуйте, Олег Миколайович!

В принципе расчеты верны, да такое возможно теоритически, но отнимаем один сетор MBR (main boot record: сторона=0, дорожка=0, сектор=1) где описана структура диска и основной загрузчик (если дикета загрузочная). Этот сектор должен быть всегда, иначе операционная система решит, что диск не отформатирован. Операционная система также создает таблицу размещения файлов, в которой записаны имена, разширения, время и дата создания, а также размещение на диске(начало и конец в логических или в физических секторах, как именно должно быть указано в MBR, если один файл на сектор, то достаточно только адреса этого сектора) конкретного файла. Итого на каждый файл отводится: 8(имя)+3(разширение)+3(ЧЧ:ММ:СС в BCD-кодах)+4(ДД:ММ:ГГГГ в BCD-кодах)+3(физ.адрес)=21 байт( расчет только для примера ). Для запоминания 2400 файлов нужно ещё допольнительно 50'400 байт или 98.4375 секторов (т.е. 99 секторов). Итого нужно 100(1+99) секторов. Хотя можно обойтись и без этой таблицы, но тогда имена файлов будут ввиде 1:56:12(сторона:дорожка:сектор).
Теперь практическая сторона вопроса, что легче запомнить 1:56:12 или "вася.тхт", сколько времени Вы потратите на поиски нужной Вам информации-файла без таблицы размещени файлов.

Эти команды одинаковые и создает компилятор одинаковый код, но для программиста есть различее: проверить равны ли два регистра(je) или проверить флаг Z(jz). Вот ещё группа команд JAE|JNB|JNC(выше или равно-не ниже-нет переноса) и JB|JNAE|JC(ниже-не выше и не равно-есть перенос). Вам нужно проверить только один флаг переноса CF и Вы будете вспоминать какая команда какой флаг проверяет? Или наоборот Вам нужно проверить два регистра больше-меньше-равны какие флаги нужно проверить? А так преход если флаг Z = 1(JZero) или если регистры равны (JEqu). Каждая команда в ассемблере имеет своё сокращение от ангийских слов JumpZero, MOVe, SHiftLeftDouble или RotateOfLeft.[size=1] (а может англичане с ассемблера свои слова взяли?) [/size]
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа