Важная информация

User Tag List

Страница 13 из 34 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя
Показано с 121 по 130 из 331

Тема: Вычисление числа Пи на ассемблере

  1. #121

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Lethargeek Посмотреть сообщение
    представь что-то си-подобное с этим стеком
    Если вы не используете рекурсии и не передаёте структур по значению, вложенность вызовов до полусотни достаточна. А если вы используете, то у вас не 8-битный ретрокомпьютер с 64К ОЗУ. Повторю, на 6502 стек позволяет работать с байтами - более эконoмно чем с z80. Но операции со стеком 6502 медленнее чем должны быть при сравнении с другими на 1-2 такта - что-то там не доделали.

  2. #121
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #122

    Регистрация
    04.03.2010
    Адрес
    Россия. Пятигорск.
    Сообщений
    2,296
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    5
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от perestoronin Посмотреть сообщение
    Что в теории позволяет тех процесс, пусть интересует маркетологов и технологов, нас же по факту интересуют реальные ретро-железки, уже выпущенные и работающие, их то мы и сравниваем, а не теоретические возможности современных тех.процессов
    А никто и не говорит, про современные тех. процессы, любая, хоть старая, железка выпущена по определённому тех. процессу. И это не теория, а практика, например КР580ВМ80А выпущен по одному тех. процессу и для него номинальная частота 2 МГц, он при этом выполняет простую команду за 2мкс (4 такта по 0,5мкс), д другой проц, старый, ретро, выполнен по более современному тех. процессу и допустим для него номинальная частота 4 МГц, вот тебе уже и ускорение в два раза выполнения одного и того же алгоритма, при всех равных остальных условиях, и пусть это будет старый ретро тех. процесс середины 70-х годов. Вот тебе и практика и никакой теории.


    Цитата Сообщение от perestoronin Посмотреть сообщение
    Если есть сторонники уже сейчас нормировать результаты по норме техпроцесса - как "первичного фактора" при сравнении, то справедливую достаточно точную формулу "в студию" , но думаю здесь для справедливости нужна эмпирическая сложная зависимость, для вывода такой формулы у нас пока недостаточно статистики для ретро-железок. Для современных же железок её вполне можно считать линейной, а для ретро - нет.
    Зачем такие сложности, просто при описании, нужно его учитывать, если первым пунктом идёт микропроцессор, который применяется в системе, на которой проводится тест, то вторым пунктом должен быть указан тех. процесс по которому и в соответствии с которым он выполнен/произведён.

  4. #123

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Версия pi32 для Вектора
    Нажмите на изображение для увеличения. 

Название:	pi100.gif 
Просмотров:	334 
Размер:	1.7 Кб 
ID:	55063Нажмите на изображение для увеличения. 

Название:	pi1000.gif 
Просмотров:	347 
Размер:	7.9 Кб 
ID:	55064
    100 цифр - 4.34 сек
    1000 цифр - 403.50 сек - 6 мин 43.50 сек
    Процедурой деления DIV320 я можно сказать горжусь.
    В целом этого спигота для 8080 уже вряд ли удастся сильно оптимизировать.
    Вложения Вложения
    Последний раз редактировалось ivagor; 30.11.2015 в 21:27. Причина: добавил шрифт в архив

  5. #124

    Регистрация
    24.01.2008
    Адрес
    Уфа
    Сообщений
    3,927
    Спасибо Благодарностей отдано 
    105
    Спасибо Благодарностей получено 
    291
    Поблагодарили
    217 сообщений
    Mentioned
    10 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Если пересчитать на частоту 1.78МГц, то 7.32 сек. Немного быстрее моего варианта, но не на столько кардинально... Хотя, в процентном отношении - неплохая оптимизация.

  6. #125

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дело в том, что тормоза вектора сказываются очень сильно, а на 1.78 МГц без торможения 100 цифр посчитает за 5.62 сек. Еще сказывается более быстрый вывод символов на экран у РК. С другой стороны, на реальном рк все же тормоза есть. Лучше проверять на машинках у которых либо прозрачный доступ к памяти (корвет, орион, специалист) либо тормоза точно эмулируются (вектор).
    Последний раз редактировалось ivagor; 02.12.2015 в 12:33. Причина: убрал лишнее

  7. #126

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Альтернативный вариант для вектора. Заменил только процедуру деления. На ней просто отдохнул душой - тут и самомодифицирующийся код и переходы внутрь команды и нецелевое использование sp, в общем экстрим. На компах без торможения она чуть медленнее предыдущего варианта, а на векторе быстрее:
    Нажмите на изображение для увеличения. 

Название:	pi100.gif 
Просмотров:	360 
Размер:	1.7 Кб 
ID:	55072Нажмите на изображение для увеличения. 

Название:	pi1000.gif 
Просмотров:	325 
Размер:	7.9 Кб 
ID:	55073
    100 цифр - 4.16 сек
    1000 цифр - 385.82 сек - 6 мин 25.82 сек
    Этот вариант деления лучше подойдет не только для вектора, но и для ПК8000 и ПК8002.
    Но все имеет свою цену. Данный вариант требует квазидиск, который нужен только для возможности не запрещать прерывания и сохранить подсчет времени. Можно откомпилировать с запрещенными прерываниями (соответствующий фрагмент в исходнике я прокомментировал) - тогда квазидиск не нужен, но время придется засекать секундомером.
    Вложения Вложения

  8. #127

    Регистрация
    07.11.2008
    Адрес
    Орск
    Сообщений
    193
    Спасибо Благодарностей отдано 
    22
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    у меня есть несколько разных процов z80, в том числе ВМ1 , могу протестить на реале но надо файл для дисковода. Тар я не знаю как загрузить ((((

  9. #128

    Регистрация
    07.08.2008
    Адрес
    г. Уфа
    Сообщений
    8,393
    Спасибо Благодарностей отдано 
    763
    Спасибо Благодарностей получено 
    2,367
    Поблагодарили
    1,317 сообщений
    Mentioned
    39 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Самый быстрый (на текущий момент) в данном треде вариант для восьмибитки (ПК-6128Ц)
    Нажмите на изображение для увеличения. 

Название:	pi100.gif 
Просмотров:	339 
Размер:	1.7 Кб 
ID:	55103Нажмите на изображение для увеличения. 

Название:	pi1000.gif 
Просмотров:	352 
Размер:	7.9 Кб 
ID:	55104
    100 цифр - 3.46 сек
    1000 цифр - 319.62 сек - 5 мин 19.62 сек
    Сыграли два преимущества 8085 над 8080
    1. Более быстрое исполнение востребованных команд, что особенно актуально при вектороподобном торможении.
    2. Оптимизированная процедура деления. Под 8085 есть еще что оптимизировать, но я поработал только над делением.
    Вложения Вложения
    Последний раз редактировалось ivagor; 04.12.2015 в 12:56.

  10. #129

    Регистрация
    27.10.2011
    Адрес
    Самара
    Сообщений
    1,248
    Спасибо Благодарностей отдано 
    2
    Спасибо Благодарностей получено 
    34
    Поблагодарили
    28 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    https://ru.wikipedia.org/wiki/Motorola_6809 - говорят лучшая 8 битка. значительно лучше чем 6502. в теме никто под неё не пробовал pi подсчитать.

  11. #130

    Регистрация
    16.12.2014
    Адрес
    г. Ожерелье
    Сообщений
    769
    Спасибо Благодарностей отдано 
    252
    Спасибо Благодарностей получено 
    46
    Поблагодарили
    42 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    100 цифр - 3.46 сек
    1000 цифр - 319.62 сек - 5 мин 19.62 сек
    Ну и ну! Надо загрузить эту программку в Амстрад и подозреваю, что Амстрад станет чемпионом опять. Что-то вы с делением сделали фантастическое, даже прежняя процедура DIV32 была лучшим такого рода алгоритмом во всей сети! Даже удивительно, просматривал все (?) архивы z80 - там лучшего нет.

    Цитата Сообщение от sergio78 Посмотреть сообщение
    никто под неё не пробовал pi подсчитать.
    Хотелось бы, но железо с 6809 какое-то больно экзотическое и редкое: Драконы, цветные Тэнди...

    Улучшил оформление программ для PDP-11 (БК, ДВК, ...), добавил поддержку аппаратных деления и умножения. На диске программы с буквой М с умножением - 11М может обгонит и Спектрум и Вектор. Уважаемый perestoronin, надеюсь что вы сможете найти способ их и/или подобные протестировать. Программа с буквой T для 11M считает время по таймеру, а не видеопрерыванию - может это будет полезно для авторов эмуляторов. В исходниках программа и для RT-11 (ДВК, БК0011М, ...) с опциональной поддержкой как умножения, так и деления - кто бы протестировал? Интересны ДВК-3, а эмулятора нет.
    pi-pdp11.zip (исправлен файл для RT-11)
    Последний раз редактировалось litwr; 05.12.2015 в 11:39.

Страница 13 из 34 ПерваяПервая ... 91011121314151617 ... ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Арифметические процедуры на ассемблере
    от spensor в разделе Программирование
    Ответов: 27
    Последнее: 13.05.2017, 20:56
  2. Мнемокоманды и числа.
    от ALKO в разделе Программирование
    Ответов: 0
    Последнее: 15.02.2014, 03:49
  3. try-catch на ассемблере z80
    от siril в разделе Программирование
    Ответов: 22
    Последнее: 30.10.2012, 21:17
  4. Определение числа сторон
    от mungo в разделе Внешние накопители
    Ответов: 1
    Последнее: 16.03.2012, 18:06

Метки этой темы

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •