Size: a a a

2019 October 01

ЕК

Евгений Красников (Jin X) in pro.asm
Мой вариант add+setc = 2+3=5 байт. Надо сделать за 4.
add+adc = 4 байта, если 0 заменить на какой-нибудь регистр, в котором лежит 0 (такой есть, в общем-то). Проблема только в том, что изначально в ah не ноль, поэтому без инициализации никак.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
А если adc ah,0 , то это 3 байта будет (исключение: adc al,0 — 2 байта).
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Я могу среднее найти за 4 байта, но оставшись в пределах того же байта:
add al,ah
rcr al,1

Но мне надо сумму и расширить ещё на слово, т.к. в байт может не влезть.
источник

R

Rabu in pro.asm
Евгений Красников (Jin X)
Есть. Мне нужно решить вот такую задачу. Не знаю, решаема ли она.

Нужно сложить 2 беззнаковых байта и получить слово, например:
add al,ah
setc ah

Этот код нужно как-то сократить на байт.
Один из слагаемых должен быть al, результат в ax.

Можно и так:
add al,[si]
setc ah

Но тоже минус байт кода нужно. Этот setc занимает аж 3 байта, падла!
если AH изначально сброшен, можно так

add al, dl
rcl ah


иначе — никак, думаю
источник

R

Rabu in pro.asm
Евгений Красников (Jin X)
Я могу среднее найти за 4 байта, но оставшись в пределах того же байта:
add al,ah
rcr al,1

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

ЕК

Евгений Красников (Jin X) in pro.asm
Rabu
если AH изначально сброшен, можно так

add al, dl
rcl ah


иначе — никак, думаю
Если ah был бы изначально сброшен, проблемы бы не было: adc ah,ah и всё, к примеру (rcl тоже можно, но он тормозной, поэтому лучше adc).
Задача: впихнуть код в нужный объём. Не хватает 1 байта, как прям в классической рукописи :))
Ищу везде, где можно, но рассматриваю и возможность сократить код:
lodsw
add al,ah
setc ah
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Всё! Я нашёл байт в другом месте, юху! Актуальность задачи отпадает!
источник
2019 October 03

b

bilka00 in pro.asm
Назрел у меня сложный вопрос. Есть игра c dx7, работает под всем что выше winxp крайне плохо
источник

b

bilka00 in pro.asm
как бы вот замутить что то что описано вот тут http://www.cyberforum.ru/directx/thread2206650.html
источник

b

bilka00 in pro.asm
при том что исходников у меня нет конешн
источник

b

bilka00 in pro.asm
И еще интересует профайлер который сможет все запрофайлить без исходников. Подошел бы модуль к какому то отладчику
источник

I

Ioann_V in pro.asm
Написать свою dll dx7 с хуком?
источник

b

bilka00 in pro.asm
Ioann_V
Написать свою dll dx7 с хуком?
Ну вот об этом я и говорю. Но идея вроде банальная, полюбом кто то уже должен был что то подобное писать
источник

ЕК

Евгений Красников (Jin X) in pro.asm
bilka00
Ну вот об этом я и говорю. Но идея вроде банальная, полюбом кто то уже должен был что то подобное писать
Загугли «DirectX 7 to DirectX 8 wrapper». Что-то находится, не уверен, что прям 100% поможет, но какие-то заготовки даже есть на эту тему как минимум. Может, и готовое решение ест, х/з.
источник

I

Ioann_V in pro.asm
Будьте осторожны!
источник

I

Ioann_V in pro.asm
Однооперандная команда x86 / 64 : {I}MUL{X} R32 / R64 имеет разный latency[3;4], хотя Агнер Фог и рапортует о том, что latency у этой команды постоянен и всегда равен 4 - он ошибается:
Если после команды умножения данной выше мы обращаемся к регистру содержащему младшие биты результата, то latency будет 3, а если обращаемся к старшим - 4.
Речь идет, конечно, о поколении процессоров Intel Sandy Bridge и выше.

#asm #optimization #interesting
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Думаю, стоит перефразировать это так: «если процессор решит поставить следующей командой в очереди на исполнение...» и дальше по тексту :))
источник

R

Rabu in pro.asm
то чувство когда процессор решет за тебя
источник

I

Ioann_V in pro.asm
Ну, эта информация, она все таки не полностью стирает с лица Земли MulX против Imul, когда речь заходит именно о latency: у последней, можно смело получить троечку. А что там процессор в очередь поставит и прочее, уже эксперементами решаемо. Ну, или IACA - хороший инструмент, но иногда, очень редко, врет.
источник

ЕК

Евгений Красников (Jin X) in pro.asm
Ioann_V
Ну, эта информация, она все таки не полностью стирает с лица Земли MulX против Imul, когда речь заходит именно о latency: у последней, можно смело получить троечку. А что там процессор в очередь поставит и прочее, уже эксперементами решаемо. Ну, или IACA - хороший инструмент, но иногда, очень редко, врет.
О, кстати! А код для доски иака может анализировать?
источник