User Tag List

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

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

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

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

    По умолчанию

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

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

  3. #2

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

    По умолчанию

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

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

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

  4. #3

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

    По умолчанию

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

  5. #4

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

    По умолчанию

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

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

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

  6. #5

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

    По умолчанию

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

  7. #6

    Регистрация
    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.

  8. #7

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

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Надо загрузить эту программку в Амстрад и подозреваю, что Амстрад станет чемпионом опять.
    Эту в амстрад не получится, здесь используется команда rdel. Но несомненно амстрад обгонит вектор, против z80 с большей частотой не попрешь.

    Цитата Сообщение от litwr Посмотреть сообщение
    прежняя процедура DIV32 была лучшим такого рода алгоритмом во всей сети
    Думаю просто никто особо не занимался оптимизацией 32 битных операций с целыми для 8080 и z80 ввиду неактуальности. Любая из двух вышеприведенных процедур для вектора будет быстрее исходного амстрадовского варианта. Но и под z80 можно оптимизировать. Возможно спектрумисты уже оптимизировали, просто надо найти их вариант.

  9. #8

    Регистрация
    26.04.2009
    Адрес
    г. Воронеж
    Сообщений
    6,504
    Спасибо Благодарностей отдано 
    333
    Спасибо Благодарностей получено 
    256
    Поблагодарили
    224 сообщений
    Mentioned
    6 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    добавил поддержку аппаратных деления и умножения.
    Это для ВМ1Г? vslav сейчас делает потактовый клон БК на FPGA с разными процами, надо будет с ним поговорить. Но, мне кааца, он говорил по итогам реверса кристаллов, что аппаратное умножение/деление в ВМ1Г весьма формальное и заметного выигрыша скорее всего не даёт. Там же можно проверить вычисление на ВМ1 на 100 Мгц ;-)
    "Во времена всеобщей лжи говорить правду - это экстремизм" - афоризм.

  10. #9

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

    По умолчанию

    Цитата Сообщение от MiX Посмотреть сообщение
    100 знаков- 0,7сек.
    1000 знаков- 64,7сек.
    4680 знаков- 1409,8сек.
    Очень вам благодарен, лет 20 что-то такое хотел узнать. А ещё бы сравнить выгоду от аппаратных деления и умножения. Чтобы использовать только программные надо поставить HMUL=HDIV=0. На PDP-11 эти операции только знаковые и перевод, особенно деления, в беззнаковый формат непрост. Поэтому выгода от аппаратных операций наверное не слишком большая.

    Цитата Сообщение от CodeMaster Посмотреть сообщение
    ВМ1Г весьма формальное
    Что ждать уважаемого vslav'a - может в этой теме быстрее накопаем?

    Цитата Сообщение от ivagor Посмотреть сообщение
    На компах с аппаратным текстовым экраном все хорошо, а при выводе на графический может быть и больше.
    Почтим уверен, что у всех - менее процента - там печать один раз после большого цикла. А вот в долях процента может быть разница раз в 10, которая ни на что в итоге не влияет.

    Цитата Сообщение от ivagor Посмотреть сообщение
    Корвет опередит вектор в pi32, но 6128 все же быстрее корвета.
    Противоречие
    Последний раз редактировалось litwr; 05.12.2015 в 14:03.

  11. #10

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

    По умолчанию

    Цитата Сообщение от litwr Посмотреть сообщение
    Противоречие
    При выполнении pi32 6128 быстрее корвета, корвет быстрее вектора. В чем противоречие?

    - - - Добавлено - - -

    Цитата Сообщение от litwr Посмотреть сообщение
    Почтим уверен, что у всех - менее процента - там печать один раз после большого цикла
    У самых медленных векторовских версий cp/m 100 символов будет печатать 0.3 секунды! Это значительно больше 1% для 100 цифр. Для тысячи цифр, конечно, это пустяк

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

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

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

Эту тему просматривают: 2 (пользователей: 1 , гостей: 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

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

Ваши права

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