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

User Tag List

Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 28

Тема: Арифметические процедуры на ассемблере

  1. #1
    Veteran
    Регистрация
    22.02.2005
    Адрес
    Украина, Харьков
    Сообщений
    1,523
    Благодарностей: 107
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Арифметические процедуры на ассемблере

    Не подскажет ли многоуважаемый All где можно найти информацию по программированию арифметических процедур на ассемблере? Желателен линк на сайт или книгу. В свое время в спектрумовских E-zine часто публиковались процедуры быстрого умножения/деления, перемножения матриц и тому подобного. А интересуют процедуры и попроще, например знаковое сложение/вычитание. В общем подскажите где подобное можно найти. В принципе даже неважно под Z80 или под что-то другое.

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

  3. #2
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,270
    Благодарностей: 190
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    http://www.google.com/search?hl=en&s...ations&spell=1
    --> http://map.tni.nl/sources/external/z80bits.html

    ещё много есть док про Техасс Инструментс (калькулятор такой был на z80).
    в них очень много чего есть.

    и ещё можешь посмотреть в каком-нибудь опенсорсовом компилере C который может генерить код под z80 посмотреть математическую либу (в соседней ветке как раз компилеры обсуждаются)
    [target] [zemu] [js8x] [pouet 1, 2]
    KAY-1024, 5''FDD, 3''FDD, HDD

  4. #3
    Master
    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Благодарностей: 165
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от spensor
    Не подскажет ли многоуважаемый All где можно найти информацию по программированию арифметических процедур на ассемблере? Желателен линк на сайт или книгу. В свое время в спектрумовских E-zine часто публиковались процедуры быстрого умножения/деления, перемножения матриц и тому подобного. А интересуют процедуры и попроще, например знаковое сложение/вычитание. В общем подскажите где подобное можно найти. В принципе даже неважно под Z80 или под что-то другое.
    Ссылок на теорию нет. Есть практика. Позаимствовано у Алко. Он в свою очередь тоже у кого-то взял, может чего и своего добавил.
    Вложения Вложения
    axor/Perspective
    http://abzac.retropc.ru/

  5. #4
    Guru
    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,082
    Благодарностей: 918
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от spensor
    например знаковое сложение/вычитание.
    оно выполняется точно так же как и обычное, главное пределы соблюсти, чтоб неперолнения не возникало. т.е. обычным add и sub.

  6. #5
    Moderator Аватар для elf/2
    Регистрация
    14.01.2005
    Адрес
    N.Novgorod
    Сообщений
    803
    Благодарностей: 117
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от spensor
    где можно найти информацию по программированию арифметических процедур на ассемблере? Желателен линк на сайт или книгу
    http://baze.au.com/misc/z80bits.html
    автор: Milos "baze" Bazelides

    содержание:

    1 Integer Multiplication
    * 1.1 Restoring 8-bit * 8-bit Unsigned
    * 1.2 Restoring 16-bit * 8-bit Unsigned
    * 1.3 Restoring 16-bit * 16-bit Unsigned
    * 1.4 Square Table Driven 8-bit * 8-bit Signed
    * 1.5 Square Table Driven 6-bit * 6-bit Signed
    * 1.6 Logarithmic Table Driven 8-bit * 8-bit Signed
    2 Integer Division
    * 2.1 Restoring 8-bit / 8-bit Unsigned
    * 2.2 Restoring 16-bit / 8-bit Unsigned
    * 2.3 Restoring 16-bit / 16-bit Unsigned
    * 2.4 Restoring 24-bit / 8-bit Unsigned
    * 2.5 Restoring 24-bit / 16-bit Unsigned
    * 2.6 Restoring 32-bit / 8-bit Unsigned
    3 Integer Square Root
    * 3.1 Basic 8-bit Square Root
    * 3.2 Basic 16-bit Square Root
    * 3.3 Restoring 16-bit Square Root
    * 3.4 16-bit Square Table Bisection
    4 Random Number Generators
    * 4.1 8-bit Random Number Generator
    * 4.2 16-bit Random Number Generator
    5 Conversions Between Numbers and Strings
    * 5.1 16-bit Integer to ASCII (decimal)
    * 5.2 16-bit Integer to ASCII (hexadecimal)
    * 5.3 Memory dump (hexadecimal)
    6 Cyclic Redundancy Checks (CRC)
    * 6.1 16-bit CRC-CCITT
    * 6.2 Table Driven 16-bit CRC-CCITT
    * 6.3 32-bit CRC-32
    * 6.4 Table Driven 32-bit CRC-32

  7. #6
    Activist
    Регистрация
    23.01.2005
    Сообщений
    234
    Благодарностей: 15
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от axor
    Ссылок на теорию нет. Есть практика. Позаимствовано у Алко. Он в свою очередь тоже у кого-то взял, может чего и своего добавил.
    Прикольно, math_lib - это мой файл . Но процедуры почти все не я писал. И пользовался не всеми.

  8. #7
    Activist
    Регистрация
    23.03.2005
    Адрес
    г. Чернигов, Украина
    Сообщений
    405
    Благодарностей: 6
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот! значит массы оценили и велосипед не изобретали - остается пользовать

  9. #8
    Activist
    Регистрация
    10.02.2014
    Адрес
    г. Тула
    Сообщений
    466
    Благодарностей: 303
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Понадобились процедуры деления и умножения трехбайтовых чисел. На просторах инета нашел необходимые процедуры деления и умножения в журнале ZX FORMAT 7.Попробовал процедуру деления. Она к сожалению она почему-то оказалась не рабочей. С умножением еще не разбирался. В примере делю число 254639H на 00E489H получаем в аккумуляторе 29H а в HL 0C0FCH. Судя по комментариям в коде результат деления должен быть в регистрах A,H,L т.е в A -0 , в HL должно быть 0029H. Может кто посмотрит код и подскажет где ошибка закралась? или поделится готовыми библиотеками деления, умножения трехбайтовых чисел?
    Вложения Вложения
    • Тип файла: zip DIV.zip (956 байт, Просмотров: 18)
    Последний раз редактировалось Дмитрий2012; 11.05.2017 в 20:35. Причина: не тот файл прикрепил к сообщению, заменил

  10. #9
    Activist
    Регистрация
    27.11.2013
    Адрес
    г. Санкт-Петербург
    Сообщений
    285
    Благодарностей: 83
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Дмитрий2012 Посмотреть сообщение
    Понадобились процедуры деления и умножения трехбайтовых чисел. На просторах инета нашел необходимые процедуры деления и умножения в журнале ZX FORMAT 7.Попробовал процедуру деления. Она к сожалению она почему-то оказалась не рабочей. С умножением еще не разбирался. В примере делю число 254639H на 00E489H получаем в аккумуляторе 29H а в HL 0C0FCH. Судя по комментариям в коде результат деления должен быть в регистрах A,H,L т.е в A -0 , в HL должно быть 0029H. Может кто посмотрит код и подскажет где ошибка закралась? или поделится готовыми библиотеками деления, умножения трехбайтовых чисел?
    Может баян:
    "Гуртовцев А.Л... Программы для микропроцессоров. [Djv- 2.3M] Справочное пособие. Авторы: Аркадий Лазаревич Гуртовцев, Сергей Викторович Гудыменко.
    (Минск: Вышэйшая школа, 1989)
    Скан, обработка, формат Djv: Boroda3, 2006"

    КРАТКОЕ ОГЛАВЛЕНИЕ:
    Предисловие (3).
    Условные сокращения (6).
    Методологические замечания (8).
    1. Программы арифметики с фиксированной запятой (12).
    2. Программы арифметики с плавающей запятой (105).
    3. Программы преобразования представлений чисел (145).
    4. Программы вычисления элементарных функций (176).
    5. Программы обработки структур данных (211).
    6. Программы системного обеспечения (245).
    http://publ.lib.ru/ARCHIVES/G/GURTOV...vcev_A.L..html
    http://publ.lib.ru/ARCHIVES/G/GURTOV...essorov.(1989).[djv-fax].zip

  11. Этот пользователь поблагодарил AlexG за это полезное сообщение:
    Дмитрий2012 (12.05.2017)

  12. #10
    Veteran Аватар для drbars
    Регистрация
    01.03.2005
    Адрес
    Новосибирск
    Сообщений
    1,529
    Благодарностей: 654
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Дмитрий2012, ты хоть подробно напиши что на что делить... 24bit/16bit или 24bit/8 ?

    Код:
    2.4 Restoring 24-bit / 8-bit Unsigned
    
    Input: E:HL = Dividend, D = Divisor, A = 0
    Output: E:HL = Quotient, A = Remainder
    
    	add	hl,hl		; unroll 24 times
    	rl	e		; ...
    	rla			; ...
    	cp	d		; ...
    	jr	c,$+4		; ...
    	sub	d		; ...
    	inc	l		; ...
    
    2.5 Restoring 24-bit / 16-bit Unsigned
    
    Input: A:BC = Dividend, DE = Divisor, HL = 0
    Output: A:BC = Quotient, HL = Remainder
    
    	slia	c		; unroll 24 times
    	rl	b		; ...
    	rla			; ...
    	adc	hl,hl		; ...
    	sbc	hl,de		; ...
    	jr	nc,$+4		; ...
    	add	hl,de		; ...
    	dec	c		; ...
    ZX Spectrum +2 / DataGear / DivIDE 2k14
    ZX Evolution rev.C
    ZX Spectrum NEXT

  13. Этот пользователь поблагодарил drbars за это полезное сообщение:
    Дмитрий2012 (12.05.2017)

Страница 1 из 3 123 ПоследняяПоследняя

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

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

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

Похожие темы

  1. Ответов: 30
    Последнее: 14.01.2011, 15:13
  2. Функция #0a процедуры #3d13
    от axor в разделе Программирование
    Ответов: 3
    Последнее: 12.10.2006, 14:31
  3. Арифметические операции с двухбайтными числами
    от mishutka в разделе Программирование
    Ответов: 10
    Последнее: 17.02.2006, 19:09

Ваши права

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