Board.KolibriOS.org
http://board.kolibrios.org/

ряд вопросов по FASM
http://board.kolibrios.org/viewtopic.php?f=32&t=1993
Страница 10 из 10

Автор:  Scampada [ Сб янв 30, 2016 10:31 am ]
Заголовок сообщения:  Re: ряд вопросов по FASM

Привет. Кто подскажет, почему этот фрагмент не работает, в чем ошибка?

Код:
cmp byte [I_Param+5], 'B'
jz BtClrSet
inc edx
cmp byte [I_Param+5], 'R'
jz BtClrSet
inc edx
BtClrSet:


Я передаю в аргументах строку "BOOT R" (например). Вывод byte [I_Param+5] в debug работает, а вот сравнения почему-то не происходит, что я упустил?
По-моему - при сравнении флаги каждый раз разные... если сделать jnz, то прыжок происходит (но не работает логика).

Автор:  Scampada [ Сб янв 30, 2016 2:09 pm ]
Заголовок сообщения:  Re: ряд вопросов по FASM

Разобрался: по какой-то причине по этому адресу к моменту сравнения оказывается 00h.
Вопрос почему, буду трассировать дальше.

Автор:  Leency [ Вт сен 05, 2017 5:39 pm ]
Заголовок сообщения:  Re: ряд вопросов по FASM

За что я не люблю программы на ассемблере, так это за такие вот конструкции. (В ЯВУ тоже говна хватает, но сейчас не об этом (программирование вообще зло) )
Вложение:
OU1hnI3kQYSipEhjVRK3Jg.png
OU1hnI3kQYSipEhjVRK3Jg.png [ 11.35 КБ | 1136 просмотров ]

Вместо простой и понятной mov eax,4 стоит менее очевидная shr eax,1 (eax=8).
Идеальным даже было бы mov eax,SF_DRAW_TEXT.

Как я понимаю, автор наверно хотел оптимизировать код.

А как вы читаете, оптимизация здесь уместна или нет?
Есть смысл заменять shr на mov?

Автор:  akron1 [ Вт сен 05, 2017 6:51 pm ]
Заголовок сообщения:  Re: ряд вопросов по FASM

Код:
mov eax, 4 ;гекс-код "B804000000"
shr eax, 1 ;гекс-код "D1E8"

Как видно, автор сэкономил 3 байта. Подобная ручная оптимизация ни к чему хорошему не приводит. На асме лучше писать предельно понятно. Ведь главная причина больших размеров современных ЯВУ-программ -- это не плохие компиляторы, а большие библиотеки и жирные рантаймы, чего нет в ассемблере. И уже поэтому небольшие программы на асме будут намного легче своих аналогов на ЯВУ. И без какой-либо ручной оптимизации...
Ну, это чисто мое мнение, если три байта это важно -- оптимизируйте. :)

Автор:  0CodErr [ Вт сен 05, 2017 6:54 pm ]
Заголовок сообщения:  Re: ряд вопросов по FASM

Leency, да тут почти во всём проекте так.

Вот, например, из ядра(то, что прямо сейчас передо мной):
Код:
        mov     ecx, ebp
        shr     ecx, 2
        mov     [esp+36], eax
        sub     edi, eax
        mov     edx, eax
        mov     eax, [esp+24]
        cmp     eax, -1
        jnz     @f
        mov     [esp+28], edi
почему shr 2? что за esp +36 +24 +28 ???
Код:
        not     ecx
        rol     ecx, 8
        mov     cl, [esp+32-8+3]
        ror     ecx, 8
        mov     [esp+32-8], ecx
и тут не лучше.

Для меня на первом месте всё же понятность кода. А то потом через месяц сам же и забудешь что там и для чего.

Вполне возможно, что это одна из причин медленного развития. Кто-то новый приходит, открывает код, а там всё через одно место. Ну и закрывает и уходит соответственно.

Некоторые участники вставляют ассемблерный код, полученный с помощью си-компилятора.
И оставляют как есть всякие параметры функций и локальные переменные ([esp+8], [esp-8] и т.д.)

Автор:  akron1 [ Вт сен 05, 2017 7:13 pm ]
Заголовок сообщения:  Re: ряд вопросов по FASM

0CodErr писал(а):
Вполне возможно, что это одна из причин медленного развития. Кто-то новый приходит, открывает код, а там всё через одно место. Ну и закрывает и уходит соответственно.

Это, главным образом, касается разработки ядра. Разработка прикладных программ уже давно возможна на ЯВУ. Но особого развития не заметно. Я думаю, причина остановки развития -- это фактическая смерть десктопа. Резкое падение спроса на десктоп-компьютеры и снижение интереса разработки для них.

Автор:  Leency [ Вт сен 05, 2017 7:51 pm ]
Заголовок сообщения:  Re: ряд вопросов по FASM

(оффтоп)
Колибри ОС проиграла по многим причинам. Ассемблер сложно читать, сложнее писать понятные программы, в отличии от яву с human readable названиями функций.

Десктоп полуживой. Мобильные устройства меняются каждые 2 года, дестктопы минимум раз в 5 лет. Сейчас уже подрастает поколение у которых дома нет компов, только мобильные телефоны.
Интернет уже это самая настоящая часть жизни каждого из нас, не только гиков, почти каждого человека до 50 лет.

Почему все так слабо сейчас, потому что в Колибри нет полноценного интернета.
Дай wifi и современный браузер - можно будет жить.

Автор:  Pathoswithin [ Ср сен 06, 2017 1:06 am ]
Заголовок сообщения:  Re: ряд вопросов по FASM

А при чём здесь ассемблер? Такие программисты. Можно mov al, 4
Мне бы ваши проблемы, вон в драйвере FAT вообще куча [esp+16+8+12+8]. Причём, это Брыллиантовое наследство.

Вообще-то, КОС не только для десктопов, но и для ноутбуков. И всё ещё немало людей с мобильным телефоном, а не смартфоном.

Автор:  Leency [ Ср сен 06, 2017 11:12 am ]
Заголовок сообщения:  Re: ряд вопросов по FASM

>И всё ещё немало людей с мобильным телефоном, а не смартфоном.
Мало. :)

Страница 10 из 10 Часовой пояс: UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/