Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Пн дек 11, 2017 4:24 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 144 сообщения ]  На страницу Пред. 16 7 8 9 10
Автор Сообщение
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Сб янв 30, 2016 10:31 am 
Не в сети
Аватара пользователя

Зарегистрирован: Чт апр 26, 2012 10:10 pm
Сообщения: 37
Привет. Кто подскажет, почему этот фрагмент не работает, в чем ошибка?

Код:
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, то прыжок происходит (но не работает логика).


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Сб янв 30, 2016 2:09 pm 
Не в сети
Аватара пользователя

Зарегистрирован: Чт апр 26, 2012 10:10 pm
Сообщения: 37
Разобрался: по какой-то причине по этому адресу к моменту сравнения оказывается 00h.
Вопрос почему, буду трассировать дальше.


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт сен 05, 2017 5:39 pm 
Не в сети
Designer
Аватара пользователя

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

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

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

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

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт сен 05, 2017 6:51 pm 
Не в сети

Зарегистрирован: Вс окт 27, 2013 8:13 pm
Сообщения: 85
Код:
mov eax, 4 ;гекс-код "B804000000"
shr eax, 1 ;гекс-код "D1E8"

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


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт сен 05, 2017 6:54 pm 
Не в сети

Зарегистрирован: Вс окт 30, 2011 6:43 pm
Сообщения: 1082
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] и т.д.)


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт сен 05, 2017 7:13 pm 
Не в сети

Зарегистрирован: Вс окт 27, 2013 8:13 pm
Сообщения: 85
0CodErr писал(а):
Вполне возможно, что это одна из причин медленного развития. Кто-то новый приходит, открывает код, а там всё через одно место. Ну и закрывает и уходит соответственно.

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


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Вт сен 05, 2017 7:51 pm 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
(оффтоп)
Колибри ОС проиграла по многим причинам. Ассемблер сложно читать, сложнее писать понятные программы, в отличии от яву с human readable названиями функций.

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

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

_________________
Через тернии к звездам


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Ср сен 06, 2017 1:06 am 
Не в сети
Mentor/Kernel Developer
Аватара пользователя

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

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


Вернуться к началу
 Заголовок сообщения: Re: ряд вопросов по FASM
СообщениеДобавлено: Ср сен 06, 2017 11:12 am 
Не в сети
Designer
Аватара пользователя

Зарегистрирован: Чт янв 25, 2007 3:33 pm
Сообщения: 4227
>И всё ещё немало людей с мобильным телефоном, а не смартфоном.
Мало. :)

_________________
Через тернии к звездам


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 144 сообщения ]  На страницу Пред. 16 7 8 9 10

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость


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

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB