|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.07.2011, 16:43 | #1 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
masm32 подменяет JZ на JE тогда, когда это совсем не нужно
Собственно сабж. Принципиальной разницы в этих переходах нет, если использовать CMP. CMP меня совсем не интересует, тк есть более кошерная TEST, но опять таки TEST влияет только на нульфлаг, так например :
Код:
CPU Disasm Address Hex dump Command Comments 004010A3 |. F705 00204000 TEST DWORD PTR DS:[402000],00000000 004010AD |. 75 09 JNE SHORT 004010B8 004010AF |. B8 00000080 MOV EAX,80000000 004010B4 |. C9 LEAVE 004010B5 |. C2 0400 RETN 4 004010B8 |> F705 44224000 TEST DWORD PTR DS:[402244],FFFF0000 004010C2 |. 74 09 JE SHORT 004010CD 004010C4 |. B8 00000040 MOV EAX,40000000 004010C9 |. C9 LEAVE 004010CA |. C2 0400 RETN 4 Вывод - JNE в топку. Люди. Подскажите, есть ли в масмах директива откл оптимизации для куска кода? |
12.07.2011, 17:10 | #2 | |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Да нет там никакой оптимизации.
Совершенно одинаковые команды. Даже машинные коды одинаковые: Цитата:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
|
12.07.2011, 17:37 | #3 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
хм. собственно всё нормально работает, если TEST заменить на CMP (не в случае с битовой маской). В чём цимес то? У меня уже привычка использовать TEST везде где можно, а тут вдруг проект по крупнее и масма в кармане и, внезапно, не работает.
|
12.07.2011, 17:49 | #4 |
Непрофессионал
Участник клуба
Регистрация: 01.01.2008
Сообщений: 1,405
|
Цимес где-то с логикой.
Я гоню, или вот этот test: Код:
И чем больше я узнавал людей, тем больше мне нравились компьютеры.
------------------------------------ Страничка с моими программками http://ulex-masm.ru |
12.07.2011, 17:57 | #5 |
Форумчанин
Регистрация: 01.12.2009
Сообщений: 569
|
Ух ты какое разжижение Логики действительно никакой. Надо на CAE_TRUE проверять. Запарился. И за мнемонику JE и JZ спасибо.
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Похоже решение проблемы наступает тогда, когда об этом напрямую скажут Президенту | grenles | Свободное общение | 10 | 21.12.2010 13:24 |
Как определить когда нажата кнопка мыши, если она нажата в совсем другой программе? | Iceman | Общие вопросы Delphi | 2 | 19.10.2009 19:03 |
Не совсем понимаю, что нужно найти в задании. | greenypeace | Помощь студентам | 2 | 08.06.2009 13:50 |