User Tag List

Страница 16 из 31 ПерваяПервая ... 121314151617181920 ... ПоследняяПоследняя
Показано с 151 по 160 из 305

Тема: Программирование

  1. #151

    Регистрация
    29.06.2022
    Адрес
    г. Ирвайн, США
    Сообщений
    408
    Спасибо Благодарностей отдано 
    590
    Спасибо Благодарностей получено 
    340
    Поблагодарили
    109 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Спасибо!
    Я это уточнял потому что эта информация объясняет починку бага командами ei/di которые посоветовал Pyk. Там лечилось похоже не из-за того что прерывание не могло быть вызвано до out $10, а из-за того что следующая за ei команда гарантированно выполнялась сразу после ei. Это была lxi sp,

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

  3. #152

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

    По умолчанию

    Все зависит от задач. Если, например, нужно играть фоновую музыку по прерываниям, то не надо использовать ei и di. В этом случае надо так изменять sp, чтобы ничего не повредить.

  4. #153

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,307
    Спасибо Благодарностей отдано 
    1,032
    Спасибо Благодарностей получено 
    818
    Поблагодарили
    489 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Не могу найти подручного беззнакового умножения 8x8 -> 16. Ни у кого не завалялось?
    Больше игр нет

  5. #154

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    Не могу найти подручного беззнакового умножения 8x8 -> 16. Ни у кого не завалялось?
    А тебе медленно или быстро? Если быстро, то через таблицу квадратов четвертушек, 512 байт. Если медленно, то вообще в чём вопрос? Двоично в столбик. Как в школе.

  6. #155

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,307
    Спасибо Благодарностей отдано 
    1,032
    Спасибо Благодарностей получено 
    818
    Поблагодарили
    489 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sandro Посмотреть сообщение
    А тебе медленно или быстро? Если быстро, то через таблицу квадратов четвертушек, 512 байт. Если медленно, то вообще в чём вопрос? Двоично в столбик. Как в школе.
    Медленно норм. Просто не всегда хочется делать все самому. Мне кажется, что такие вещи должны быть готовыми. И раньше как-то находились, а тут оказалось, что что-то как-то нет.
    Больше игр нет

  7. #156

    Регистрация
    20.01.2010
    Адрес
    г. Зеленоград
    Сообщений
    600
    Спасибо Благодарностей отдано 
    28
    Спасибо Благодарностей получено 
    231
    Поблагодарили
    123 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Так, наверное, потому, что это тривиально ...

    Если устраивает совсем медленно, то просто последовательным сложением. Один аргумент в A, второй в DE, нулим HL, и увеличиваем его командой DAD количеством раз, которое в регистре A. Это даже 8x16, между прочим.
    Если множитель большой, где-то больше шести, то побитово в столбик. Множитель умножаем на два через XCHG: DAD H: XCHG

  8. #157

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,307
    Спасибо Благодарностей отдано 
    1,032
    Спасибо Благодарностей получено 
    818
    Поблагодарили
    489 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Upd: nevermind, нашел.
    Больше игр нет

  9. #158

    Регистрация
    29.06.2022
    Адрес
    г. Ирвайн, США
    Сообщений
    408
    Спасибо Благодарностей отдано 
    590
    Спасибо Благодарностей получено 
    340
    Поблагодарили
    109 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    svofski, если не сложно, поделись пожалуйста. Я помню только в документации к векторовскому ассемблеру были описаны рутины умножения и деления кажется. Но сам код уже не помню.

  10. #159

    Регистрация
    20.06.2007
    Адрес
    С.-Петербург
    Сообщений
    4,307
    Спасибо Благодарностей отдано 
    1,032
    Спасибо Благодарностей получено 
    818
    Поблагодарили
    489 сообщений
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Конечно, правда я уже забыл откуда сам списал.
    Код:
                    ; hl = h * l
    mul8x8:
                    mov 	A,h	; Multiplier    (-1) to A   Register
    	        mov 	e,l	; Multiplicand (127) to D,E Registers
    	        MVI	d,000h
    	        LXI	H,000h	; Clear H,L Registers to initialize Partial Product
    	        MVI	B,008h	; Iteration Count (8) to B Register
    m88LOOP:        DAD	H	; Shift Partial Product left into Carry (H&L)
    	        RAL		; Rotate Multiplier Bit to Carry
    	        JNC	m88NEXT	; Test Multiplier at Carry
    	        DAD	D	; Add Multiplicand to Partial Product (D&E)
    			;   if Carry =1
    	        ACI	000h	; (Add Carry Bit)
    m88NEXT:        DCR	B	; Decrement Iteration Counter
    	        JNZ	m88LOOP	; Check Iterations
    	        ret
    Но вот правда же, была где-то страничка с хорошим сборником всевозможной арифметики для 8080.
    Больше игр нет

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

    metamorpho(04.09.2022), nzeemin(03.09.2022), parallelno(03.09.2022)

  11. #160

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

    По умолчанию

    Цитата Сообщение от svofski Посмотреть сообщение
    правда я уже забыл откуда сам списал
    Такая процедура (начиная с lxi h,0) есть в Vector-user 1. Только там в описании упущено, что AHL=A*DE. Если старший (третий) байт произведения не нужен, то можно убрать подхват переноса в A.

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

    metamorpho(04.09.2022), svofski(03.09.2022)

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

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

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

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

Похожие темы

  1. Программирование на ассемблере
    от shuran33 в разделе Вектор
    Ответов: 341
    Последнее: 05.11.2025, 20:00
  2. Программирование на ассемблере
    от tnt23 в разделе Океан-240
    Ответов: 6
    Последнее: 30.10.2025, 12:56
  3. Программирование графики MSX
    от CityAceE в разделе MSX
    Ответов: 57
    Последнее: 23.10.2025, 08:53
  4. Программирование NES
    от Tronix в разделе Nintendo
    Ответов: 6
    Последнее: 08.07.2015, 21:21
  5. Программирование на пентеве.
    от Kakos_nonos в разделе Программирование
    Ответов: 2
    Последнее: 23.03.2013, 14:08

Ваши права

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