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

User Tag List

Страница 5 из 5 ПерваяПервая 12345
Показано с 41 по 41 из 41

Тема: GCC 11.2.1 с поддержкой процессоров 1801вм1 и 1801вм2

  1. #41
    Master Аватар для Sandro
    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    590
    Спасибо Благодарностей отдано 
    27
    Спасибо Благодарностей получено 
    211
    Поблагодарили
    115 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Заменить #10 на #20. Но тогда, естественно, уже возможно перепеолнение.

    Код совершенно классический, есть в любом букваре. Есть также классическая вариация с выходом по обнулению второго множителя. Она в среднем быстрее, если множитель маленький, то в разы.

    Код:
    ; r0 = r1 * r2
    mul:	clr r0
    	cmp r1, r2
    	bhis 1$
    	xor r1, r2
    	xor r2, r1
    	xor r1, r2
    1$:	tst r2
    	beq 0$
    	clc
    	ror r2
    	bcc 2$
    	add r1, r0
    2$:	asl r1
    	add r1, r0
    	asr r2
    	bcs 2$
    	beq 3$
    	sub r1, r0
    	br 2$
    3$:	sub r1, r0	
    0$:	rts r7
    Набил по памяти, но вроде правильно. Это т.н. алгоритм с восстановлением, классическая оптимизация. Тело цикла умножения -- это 2$..bcs 2$ для единичного бита и 2$..br 2$ для нулевого. Выполняется до исчерпания единичных бит в меньшем множителе.
    Можно ещё быстрее, но это приводит к ещё большему объёму кода.

    А ещё быстрее -- через таблицу квадратов, пользуясь следующим равенством:

    ((x + y) ^ 2) / 4 - ((x - y) ^ 2) / 4 = x * y;

  2. Эти 3 пользователя(ей) поблагодарили Sandro за это полезное сообщение:

    Oleg N. Cher (30.11.2021), tnt23 (02.12.2021), yu.zxpk (30.11.2021)

Страница 5 из 5 ПерваяПервая 12345

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

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

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

Похожие темы

  1. Вопрос по 1801ВМ1
    от svinka в разделе БК-0010/0011
    Ответов: 35
    Последнее: 27.02.2022, 21:22
  2. Оберон/GCC для УКНЦ/БК
    от Oleg N. Cher в разделе ДВК, УКНЦ
    Ответов: 22
    Последнее: 10.11.2021, 11:15
  3. отладочный модуль на 1801ВМ1
    от Случайность в разделе ДВК, УКНЦ
    Ответов: 16
    Последнее: 21.04.2020, 14:55
  4. 1801ВМ2 А и Б
    от dk_spb в разделе ДВК, УКНЦ
    Ответов: 2
    Последнее: 03.05.2010, 11:51

Ваши права

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