Если все же достаточно 8*8=16, то компактнее и быстрее (и без порчи A) так:
Скрытый текст
Код:;HL=H*E mul88: mvi l,0 mov d,l mvi b,8 mul88_1: dad h jnc mul88_2 dad d mul88_2: dcr b jnz mul88_1 ret[свернуть]
Если все же достаточно 8*8=16, то компактнее и быстрее (и без порчи A) так:
Скрытый текст
Код:;HL=H*E mul88: mvi l,0 mov d,l mvi b,8 mul88_1: dad h jnc mul88_2 dad d mul88_2: dcr b jnz mul88_1 ret[свернуть]
Да, у меня 8х8. Отличный мул у тебя.
Больше игр нет
Подскажите пожалуйста как включать квазидисковый режим Баркаря? Или он включается всегда если такой квазидиск используется?
Еще чуть компактнее и быстрее (портим A вместо B)
Скрытый текст
Код:;HL=H*E mul88: xra a mov l,a mov d,a cma mul88_1: dad h jnc mul88_2 dad d mul88_2: add a jm mul88_1 ret[свернуть]
Похоже на самое компактное умножение 8*8=16 для 8080. Или нет?
Про Баркаря можно почитать в журнале Радиолюбитель 95/11
- - - Добавлено - - -
Upd: И еще на 4 такта быстрее.
Последний раз редактировалось ivagor; 04.09.2022 в 15:01.
metamorpho(04.09.2022), parallelno(04.09.2022), svofski(04.09.2022), tnt23(07.09.2022)
Добавил раздел про работу с квазидиском.
- - - Добавлено - - -
Добавил раздел про тайминги команд.
Была у меня книжка: Злобин В. К., Григорьев В. Л. Программирование арифметических операций в микропроцессорах. М.:1991
В Сети скан находится без проблем. Сейчас посмотрел - есть несколько алгоритмов и для умножения 8x8->16 на ВМ80. Не было сейчас времени вникнуть, насколько они хороши, но может на будущее пригодится...
svofski(05.09.2022)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Иногда надо маленький диапазон псевдослучайности -- 11-битный LFSR:
Сделал ему Мандрил-тест.Код:; выход: ; HL - число от 1 до 2047 rnd11: lxi h,1 mov a, h rrc \ rrc xra h ani 1 ; bit 10 xor bit 8 dad h ora l mov l, a ; lsb = bits 10 xor 8 mvi a, 7 ana h mov h, a shld rnd11+1 ret
Последний раз редактировалось svofski; 06.09.2022 в 16:59. Причина: обновил rnd11 на Галуа
Больше игр нет
tnt23(07.09.2022)
Конфигурация Галуа все же эффективнее Фибоначчи при программной реализации, даже в таком не очень удобном случае
Скрытый текст
Код:rnd11: lxi h,1 dad h mvi a,1000b ana h jz rnd11exit xra h mov h,a mvi a,5 xra l mov l,a rnd11exit: shld rnd16_1+1 ret[свернуть]
Не помню, почему взял тот полином в rnd16, возможно чтобы картинка проявлялась помедленнее. Но скорее всего просто прошляпил. Если заменить mvi a,00000001b на mvi a,2Dh, то дальше можно убрать 3 команды относящиеся к h.
svofski(06.09.2022)
Ссылки которые содержат номер страницы - не работают, если у вас в настройках форума другой размер страницы.
Речь про ссылки вида
Самая быстрая установка палитры по версии Improver
https://zx-pk.ru/threads/29144-progr...ml#post1136855
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)