Вот именно для того, чтобы завести туда нули и понадобится
дополнительное время, малое, но не нуль. А для того, чтобы туда что-то
завести с шины данных необходимо сначала по ней что-то передать, то есть
уже иметь число полной разрядности. Конечно, все это делается просто и
быстро, но ведь это надо делать, иначе процессор вообще не сможет ничего
сделать с байтами ни программно, ни аппаратно. Ассемблер, кстати, ничего
никуда не добьет, если константу, а тем более переменную за какой-либо
надобностью (скорее всего, для экономии памяти, только не понятно: зачем
ее экономить на таких крутых машинах?) объявить байтовой (байт -- значит
байт, старших разрядов -- тех, что старше восьми имеющихся младших он не
имеет), но можно загрузить сразу два или даже четыре байта (например, по
очереди), суммарная разрядность будет больше. Короче, сколько тебе надо
разрядов, столько объявляй, на ассемблер не надейся -- эта штука тупая,
как обезьяна, к тому же выполняет лишь функцию попугая. Кстати,
процессор как раз затем и нужен, чтобы аппаратно выполнять элементарные
команды, а программист -- для того, чтобы из этих команд собирать код
(может быть не вручную, а с помощью трансляторов, но собирать), что-то
делающий программно. Иначе ни одна программа не будет не только
выполняться, но и существовать, да и все машины будут неработоспособны.
Кстати, я вообще не понял, зачем при таких частотах экономить каждый
такт? Все равно больше теряется при перезагрузке КЭШа или при доступе к
памяти непосредственно по глобальной шине. Или ты откопал синхронную
глобальную шину? Покажи! Мне тоже интересно, где водятся дешевые
суперкомпьютеры (только у них синхронная глобальная шина сочетается с
быстрым процессором)? На самом деле, ассемблер нужен для того, чтобы
отлавливать целые избыточные модули, в которых теряется за раз хотя бы
несколько тактов, а не для того, чтобы считать каждый отдельный такт.
Поэтому, например замена команды mov al,0 на xor al,al давно не
актуальна, и так уже можно не делать (не спорю, некоторые делают,
например я сам, но это уже не обязательно).
Растактовка же была актуальна на Спектруме и по-моему больше нигде. Там
были команды, выполнение которых занимало десятки тысяч тактов, но их
замена модулями могла на несколько тысяч тактов замедлять выполнение
соответствующих команд, а на intel разница никогда большой не была и
проще было не копаться в растактовке, а просто запомнить, какие команды
выполняются быстрее. Запомнишь мало -- не беда, все равно по растактовке
есть шанс наоборот что-то упустить. А у кого память совсем дырявая --
могли записывать для себя два списка команд: быстрый и медленный (хотя,
как вообще можно программировать на а ассемблере с дырявой памятью не
понятно -- команды то надо помнить, или как?). Так, что хотелось бы
получить комментарий по поводу того, зачем мы все (и я тоже) маемся этим
идиотизмом --копаемся в растактовках, которые устарели раньше, чем их
напечатали, а в результате теряем на модулях больше, чем выигрываем на
командах.
С уважением Атавин Т. А.
atavin_***@p*****.ru
-----Original MessageFrom: Шматко А.А. [mailto:boroden***@s*****.ru]
Sent: Monday, April 11, 2005 12:58 PM
To: comp.soft.prog.prog (6724773)
Subject: Re[4]: bit битность?
> В случае intel отнюдь не всегда такт ;) , посмотри растактовку команд
> начиная с 8086 и сколько там команд, выполняющихся за такт, - вот тебе
> и хвалёные мегагерцы летящие в...
Сильно сомневаюсь, что процессору понадобится для этого времени, больше
нуля. Схемотехически это решается элементарно - в старшие разряды
Integer-а
через триггер (скорее, комутатор, но не суть важно) заводяться либо
сигналы
с линий данных, либо "нули". Не следует думать, что процессоры вычисляют
всё, пусть в них и есть какой-то там микрокод. Кое-что они всё-таки
делают
аппаратно. ;-)
Номер выпуска : 4339
Возраст листа : 569 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/349711
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru