Войти
ФлеймФорумПроЭкты

Нуб вкатывается в Ассемблер ! (2 стр)

Страницы: 1 2 3 411 Следующая »
#15
9:55, 12 мая 2017

gudleifr
> На самом MASM не получиться. Представьте длину цепочки от "принц двинул ручкой"
> до "загружаем полученное значение в регистр AX".
представляешь, в асме есть функции и процедуры. Код будет примерно всего раза в 2 длиннее, чем, если писать на С.

Я писал на асме графические приложения, правда давно это уже был, и смысла особого в этом нет. Быстрее работать оно точно не будет.
Скорость разработки раз в 5-10 ниже будет. Даже по размеру кода особого выигрыша не будет, если boost не подключить, то и на С++ можно писать крохотный код.
Если хочется поработать с железом на низком уровне, то уж лучше какие-то конкретные функции на асме реализовывать. Я так свою мат.библиотеку делал, выглядело всё примерно так:

__declspec(naked) void  __fastcall cross4_sse(float4& r, const float4& a, const float4& b)
{  
  _asm
  {
    mov   eax,[esp+4]    

    // edx = a, eax = b, ecx = r
    movaps  xmm0, xmmword ptr [edx]
    movaps  xmm2, xmm0

    movaps  xmm1, xmmword ptr [eax]
    movaps  xmm3, xmm1

    shufps  xmm0, xmm0, 11001001b
    shufps  xmm1, xmm1, 11010010b
    shufps  xmm2, xmm2, 11010010b
    shufps  xmm3, xmm3, 11001001b

    mulps  xmm0, xmm1
    mulps  xmm2, xmm3

    subps  xmm0, xmm2  
    movaps  qword ptr [ecx], xmm0

    ret    4
  }
}

В итоге и асм нормально подтянул и с пользой время потратил.


#16
9:56, 12 мая 2017

на каком именно конкретно асме?

вообще забавная тема для троллинга и агринга

#17
10:04, 12 мая 2017

Rikk

MASM под DOS.

#18
10:06, 12 мая 2017

раб вакуумной лампы
> MASM под DOS.
ты ещё и рабочий DOS где-то нашёл?
может тебе проще комп обновить и писать на нормальных языках? :)

#19
10:07, 12 мая 2017

Мизраэль
> Код будет примерно всего раза в 2 длиннее, чем, если писать на С.

все и всюду утверждают — программы на асмах всегда в любом случае короче быстрее и эффективнее чем на любых других языках

таким образом в теме образовалось противоречие

#20
10:07, 12 мая 2017

Мизраэль
> представляешь, в асме есть функции и процедуры.
Мизраэль
> Скорость разработки раз в 5-10 ниже будет. Даже по размеру кода особого
> выигрыша не будет, если boost не подключить, то и на С++ можно писать крохотный
> код.
Второе - следствие первого. Тупое программирование "на функциях и процедурах" (которых, в ASM, кстати, нет). Как раз к этому и приводит. А применяя удобный промежуточный язык можно здорово выиграть.
Например: http://www.gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=%5C5.FOBOS.

#21
10:58, 12 мая 2017

Я "полноценно" на ассемблере никогда не писал, делал только некоторые вставки, а когда, недавно, заметил, что он весьма и весьма некроссплатформенный, то вообще забил. А так, да. Если тупо переписать код паскаля на ассемблер, то можно добиться +18% прироста скорости (современный free pascal справляется лучше, но всё равно, не так оптимально использует регистры). По факту же, более разумное и "узкое" использование памяти и переменных позволяет поднять скорость в несколько раз (5-10 раз получалось в конце 90х на генераторе лабиринтов). Ну, и, естественно, тормознуть скорость разработки раз в 10-20 :)
А так, вообще, для общего развития очень полезный язык. Заодно и дебаговый дизассемблер можно будет куда эффективнее читать.

#22
11:01, 12 мая 2017

eugeneloza
> Ну, и, естественно, тормознуть скорость разработки раз в 10-20 :)
Только у непрограммистов.

eugeneloza
> А так, вообще, для общего развития очень полезный язык.
Это точно.

Кнут:

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

eugeneloza
> Заодно и дебаговый дизассемблер можно будет куда эффективнее читать.
Это тоже байка непрограммистов.

#23
11:07, 12 мая 2017

gudleifr
> Представьте длину цепочки от "принц двинул ручкой" до "загружаем полученное
> значение в регистр AX"

Ну допустим из физики известно факт что глаз улавливает явно движение (фиксирует разумные изменения в оптической системе колбочек глаза (в нервных волокнах)) если проходит минимум 12-15 изменений в секунду.
На этом стоит система изображения 24-30кадров в секунду .

допустим он там махает ладошами туда-сюда нагоняя волну воздуха в аквариуме  A=Am*sin(wt+p)  3секунды .

это есть 12*3=36изменений.

получается "загружаем полученное значение в регистр AX"= 36штук загрузок в регистр.

кажется немного и вполне можно взяться делать. в любом случае это не миллион штук загрузок регистра и не 10лет это делать суперММО

#24
11:11, 12 мая 2017

Итак товарищи

постулат 1
Мизраэль
> Код будет примерно всего раза в 2 длиннее, чем, если писать на С.

постулат2
eugeneloza
> позволяет поднять скорость в несколько раз (5-10 раз.....)

постулат3
eugeneloza
> можно будет куда эффективнее читать.


постулат4
gudleifr
> Это тоже байка


вы все противоречите друг другу.

#25
11:19, 12 мая 2017

Rikk
> получается "загружаем полученное значение в регистр AX"= 36штук загрузок в регистр.
ИРЛ это выглядит несколько иначе. В книге "Windows изнутри", например, Питрек пишет: сначала хотел качестве примера работы GDI привести вывод фразы каким-либо шрифтом, но чтобы влезло в книгу пришлось ограничиться описанием вывода одной точки...

#26
11:30, 12 мая 2017

gudleifr
> пишет: сначала хотел качестве

вы бы могли положить сюда скриншот из книги? буквально ту страницу и те слова.

#27
11:32, 12 мая 2017

eugeneloza
> а когда, недавно, заметил, что он весьма и весьма некроссплатформенный, то
> вообще забил

есть основания сомневаться и в этом

#28
11:39, 12 мая 2017

Асм нередко пользую для векторых функций например,  нехилый буст дает использование simd.
Но вот писать на нем игру...  В рядовых случаях скорости исполнения не добавит,  скорость разработки многократно снизит,  гибкость и отлаживаемость на низшем уровне.
Но можно попасть в книгу рекордов

#29
11:41, 12 мая 2017

Можно еще dll на си написать,  забиндить ее на асм программу и дергать :)  будет типа программа на асме!
Один фиг придется всякие kernel,  user,  gdi грузить

Страницы: 1 2 3 411 Следующая »
ФлеймФорумПроЭкты

Тема в архиве.