User Tag List

Страница 20 из 31 ПерваяПервая ... 161718192021222324 ... ПоследняяПоследняя
Показано с 191 по 200 из 331

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

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

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

    Регистрация
    25.11.2011
    Адрес
    г. Красногорск
    Сообщений
    1,389
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от b2m Посмотреть сообщение
    сейчас уже не открывается
    а другие на ретро-железках еще и деньги зарабатывают, с каждой копии своей программы по 100 сантиков:
    http://www.cdadapter.com/cross32.htm
    Вот нам и Licensing Best Practices в действии.
    Последний раз редактировалось perestoronin; 01.01.2016 в 16:31.

    Ретрокладовая продажи

    продажи
    [свернуть]

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

  3. #2

    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    14 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Пока нормальные люди отдыхают, некоторые занимаются всякими странными делами
    100 - 2.8168 сек
    1000 - 286.8624 сек - 4 мин 46.8624 сек
    Как вижу, деление работает с любым делителем до 2^16, это действительно необходимо? Уменьшение диапазона в два раза позволит выкинуть половину кода, а из оставшейся половину условных переходов. Вроде бы алгоритму "краника" деления на числа до 2^15 хватает для вычисления 4930 десятичных знаков.

  4. #3

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

    По умолчанию

    Когда у меня недавно были проблемы с архивным десктопом, тоже искал tasm32 - и не нашел. Про исходники не знаю.

  5. #4

    Регистрация
    25.11.2011
    Адрес
    г. Красногорск
    Сообщений
    1,389
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    тоже искал tasm32 - и не нашел
    Благодарю, действительно table driven, сюда по компонентам.
    Правильное наименование TASM - the Telemark Assembler
    и по такому ключу находится у калькуляторщиков http://www.ticalc.org/archives/files...250/25051.html
    А также
    http://old-dos.ru/files/file_1385.html
    А здесь есть страничка с документацией онлайн
    http://www.cpcalive.com/docs/TASMMAN.HTM
    Также нашел полную версию документации в pdf.
    Эта pdf спрятана на сайте проекта sl100. На заметку, в состав борды SL100 входят модули и на Z80 и на 8080.

    Сказано что кроме DOS версии, есть еще и Linux сборка, а возможно и даже и исходники. Никому не попадались ?


    А здесь сказано, что был далее использован в новых разработках:
    http://tistory.wikidot.com/tasm
    In the early days of the TI community, TASM was the most popular assembler that was used by Z80 assembly programmers.

    Later it was superceded by IDE's such as Assembly Studio 8x and SPASM, however in some cases it is still used to this day.

    Assembly Studio 8x:
    описание
    http://tistory.wikidot.com/assembly-studio-8x
    Assembly Studio 8x v4.0
    A full featured Win32 assembler and IDE for z80 calculator
    а скачать дистрибутив можно по другой ссылке
    http://www.ticalc.org/archives/files...158/15892.html
    Есть контакты автора Jeremy Goetsch (jeremy@acz.org)
    Проект судя по всему заброшен, вместе с доменом acz.org, может кто уже сталкивался с этим проектом и выпрашивал исходники у автора?

    SPASM:
    SPASM-ng is a z80 assembler with extra features to support development for TI calculators.
    https://github.com/alberthdev/spasm-ng

    Попутно откопал такое ретро-чудо, но уже для IBM360:
    http://www.jaymoseley.com/hercules/compilers/spasm.htm

    Пусть этот оффтопик побудет некоторое время в этой теме, позже его уберу в копилку знаний http://zx-pk.ru/wiki, кто-то же должен её пополнять .

    А здесь еще масса ретро-инструментов для ретро-процессоров упоминается, жаль что отчасти с битыми ссылками:
    http://wiki.nesdev.com/w/index.php/Tools
    Последний раз редактировалось perestoronin; 01.01.2016 в 13:21.

    Ретрокладовая продажи

    продажи
    [свернуть]

  6. #5

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

    По умолчанию

    ass (шутники) по картинке понравился, но увы есть отличия в синтаксисе от tasm и справка в 7ке не смотрится.

    Цитата Сообщение от perestoronin Посмотреть сообщение
    А здесь есть страничка с документацией онлайн
    Этот файл есть в архиве

  7. #6

    Регистрация
    25.11.2011
    Адрес
    г. Красногорск
    Сообщений
    1,389
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    Этот файл есть в архиве
    Благодарю, все еще в поиске исходника tasm или хотя бы linux версии, на данный момент нашел вот такой архив, в нем есть документация в pdf по программированию для процессора 6502, думаю может быть полезна для тех, кто разрабатывает версию программы расчета числа Пи под процессор 6502 (NES, Агаты, Анюша, Apple 1).
    Левенталь 6502 Подпрограммы на ассемблере (книга на английском).
    в том же архиве находится и сам tasm 3.2, но с таблицей только для 6502.
    Подумалось, что наверное не так сложно будет мне расковырять tasm с целью получить fork в исходниках, а сами таблички-то просто текстовые файлы, их можно использовать будет без изменений в авторской редакции.
    tasm мега компилятор с ассемблера, и сразу под массу процессоров, среди которых есть почти все нужные нам ретро-процессоры.
    Не представляется сложным написать самим таблички под какие-то другие более экзотичные процессоры , для этого и программирование даже знать и не нужно

    Не особенно тщательно искал но на той же страничке проекта много чего выложено, может еще что-то найдется в тех архивах уникальное, как к примеру выше упомянутая версия книги Левенталя для 6502, дайте знать и мне.

    Ждем теперь оптимизированную версию расчета чиста Пи по неоптимальному алгоритму и для процессора 6502
    Последний раз редактировалось perestoronin; 01.01.2016 в 13:53.

    Ретрокладовая продажи

    продажи
    [свернуть]

  8. #7

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

    По умолчанию

    Цитата Сообщение от perestoronin Посмотреть сообщение
    Ждем теперь оптимизированную версию расчета чиста Пи по неоптимальному алгоритму и для процессора 6502
    Судя по времени работы текущая версия litwr весьма оптимизирована:
    Цитата Сообщение от litwr Посмотреть сообщение
    Собрал такие данные для 100, 1000 и 3000 цифр.
    Commodore 64/PAL - 4.03 - 393.5 - 3527
    Commodore 128/PAL - 2.2 - 208.6 - 1868
    Commodore +4/PAL - 1.92 - 183.3 - 1641
    Цитата Сообщение от perestoronin Посмотреть сообщение
    Не представляется сложным написать самим таблички под какие-то другие более экзотичные процессоры
    Это большой плюс tasma, который перевешивает (для меня) его недостатки.

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

    Цитата Сообщение от blackmirror Посмотреть сообщение
    Как вижу, деление работает с любым делителем до 2^16, это действительно необходимо?
    Да, старший бит делителя бывает единичным. Диапазоны чисел я проверял, в умножении учет диапазона хорошо помог, а в делении, к сожалению, нет.

    Цитата Сообщение от blackmirror Посмотреть сообщение
    Уменьшение диапазона в два раза позволит выкинуть половину кода, а из оставшейся половину условных переходов.
    ? Не могу сообразить, за счет чего можно выкинуть половину кода при уменьшении диапазона в два раза. На каждый бит делимого приходится 8 строк.

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

    Цитата Сообщение от blackmirror Посмотреть сообщение
    Вроде бы алгоритму "краника" деления на числа до 2^15 хватает для вычисления 4930 десятичных знаков.
    Это Вы наверно про исходный, а здесь то "4х циферный"
    Последний раз редактировалось ivagor; 01.01.2016 в 15:51. Причина: исправил опечатки и ошибки

  9. #8

    Регистрация
    25.11.2011
    Адрес
    г. Красногорск
    Сообщений
    1,389
    Спасибо Благодарностей отдано 
    16
    Спасибо Благодарностей получено 
    7
    Поблагодарили
    7 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    весьма оптимизирована
    весьма вероятно что это так, но цифры уж очень близки к версии для 8080, поэтому думаю что это именно весьма неоптимизированная версия, при равной частоте с 8080, должна получаться версия быстрее для 6502.
    Цитата Сообщение от ivagor Посмотреть сообщение
    а здесь то "4х циферный"
    память можно рассматривать и как массив байт и как массив бит, другое дело что обращение к памяти как к массиву бит потребует накладных расходов, тут нужно внимательно смотреть сколько выигрываем и сколько проиграем в производительности и объеме памяти.

    В дополнение старый список инструментов для компиляции программ под ретропроцессоры
    http://www.z80.info/z80sdt.htm

    Цитата Сообщение от perestoronin Посмотреть сообщение
    все еще в поиске исходника tasm
    увы ни исходника tasm, ни версию для linux, я не нашел, но зато нашел другой ассемблер и тоже управляемый таблицами и причем с исходными кодами самого ассемблера:
    http://www.penguin.cz/~niki/tdasm/
    думаю будет полезен и для Z80, тем более что таблица (хотя и неполная) для z80 прилагается, а полные таблицы и отсутствующие таблички можно попробовать портировать для tdasm из архива tasm, но форматы таблиц различны.
    PS. В целом мне кажется tdasm не дотягивает до уровня tasm, поэтому ищу исходники или версию tasm под linux дальше.

    еще наткнулся на vasm, тоже достоен внимания http://sun.hasenbraten.de/vasm/index.php?view=relsrc
    Последний раз редактировалось perestoronin; 01.01.2016 в 16:04.

    Ретрокладовая продажи

    продажи
    [свернуть]

  10. #9

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

    По умолчанию

    В версии для 8080 "удвоенное" количество кода вызвано отсутствием команды HL=HL+RP+флаг переноса. В вариантах для 8085 и z80 код почти как у Вас, только с переходами по переносу, а не знаку.

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

    Цитата Сообщение от ivagor Посмотреть сообщение
    На каждый бит делителя приходится 8 строк.
    Поправлюсь - на каждый бит делимого

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

    Цитата Сообщение от ivagor Посмотреть сообщение
    Да, старший бит делителя бывает единичным.
    Уф, это я опять про делимое, а не про делитель. Максимальный делитель для 1000 - 6999, для 100 - 699. Не думаю, что это можно использовать для сокращения процедуры при расчете 1000 или 100 цифр. Вот если бы делимое, которое я как раз имел в виду, тогда другое дело.
    Последний раз редактировалось ivagor; 01.01.2016 в 16:01.

  11. #10

    Регистрация
    25.11.2015
    Адрес
    г. Москва
    Сообщений
    192
    Спасибо Благодарностей отдано 
    12
    Спасибо Благодарностей получено 
    16
    Поблагодарили
    14 сообщений
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ivagor Посмотреть сообщение
    В версии для 8080 "удвоенное" количество кода вызвано отсутствием команды HL=HL+RP+флаг переноса.
    8080 гадость конечно редкостная, но даже для него с делением не всё так плохо:
    #define ADC8(a,b) do{a=(a&255)+(b&255)+C; C=a>>8; a&=255;}while(0)
    #define ADD16(a,b) do{a=(a&65535)+(b&65535); C=a>>16; a&=65535;}while(0)
    //BC - делитель, должен быть в диапазоне от 256 до 32768
    //DE = -BC
    //HL < BC - старшие два байта делимого
    //SP - младший байт делимого расширенный нулём
    //A - частное
    //деление производится по формуле A=HL*256/BC; HL=HL*256%BC; HL+=SP; if(HL>=BC) {HL-=BC; ++A;}
    void div_8080(int &hl, int &a, int &bc){
    int sp=a;
    int de=-bc;
    int C=0;

    ADD16(hl,hl); ADD16(hl,de); if(!C) goto A1;
    S1: ADC8(a,a); ADD16(hl,hl); ADD16(hl,de); if(!C) goto A2;
    S2: ADC8(a,a); ADD16(hl,hl); ADD16(hl,de); if(!C) goto A3;
    S3: ADC8(a,a); ADD16(hl,hl); ADD16(hl,de); if(!C) goto A4;
    S4: ADC8(a,a); ADD16(hl,hl); ADD16(hl,de); if(!C) goto A5;
    S5: ADC8(a,a); ADD16(hl,hl); ADD16(hl,de); if(!C) goto A6;
    S6: ADC8(a,a); ADD16(hl,hl); ADD16(hl,de); if(!C) goto A7;
    S7: ADC8(a,a); ADD16(hl,hl); ADD16(hl,de); if(!C) goto A8;
    S8: ADC8(a,a); ADD16(hl,sp); ADD16(hl,de); if(!C) goto A9;
    S9: ADC8(a,0);
    return;
    A1: ADC8(a,a); ADD16(hl,hl); ADD16(hl,bc); if(C) goto S2;
    A2: ADC8(a,a); ADD16(hl,hl); ADD16(hl,bc); if(C) goto S3;
    A3: ADC8(a,a); ADD16(hl,hl); ADD16(hl,bc); if(C) goto S4;
    A4: ADC8(a,a); ADD16(hl,hl); ADD16(hl,bc); if(C) goto S5;
    A5: ADC8(a,a); ADD16(hl,hl); ADD16(hl,bc); if(C) goto S6;
    A6: ADC8(a,a); ADD16(hl,hl); ADD16(hl,bc); if(C) goto S7;
    A7: ADC8(a,a); ADD16(hl,hl); ADD16(hl,bc); if(C) goto S8;
    A8: ADC8(a,a); ADD16(hl,sp); if(C) goto S9;
    A9: ADD16(hl,bc);
    return;
    }

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

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

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

Эту тему просматривают: 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

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

Ваши права

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