Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Ассемблерные вопросы:биты и переходы

7
25 ноября 2006 года
@pixo $oft
3.4K / / 20.09.2006
Биты:щас не помню,потом.Что-то про ShLD/ShRD
Переходы:как известно,циклы можно сделать неск. способами:
Lbl:
...
Loop Lbl,
Lbl
...
J(E)CXZ ExitLoop
Jmp Lbl,
Lbl:
...
J(проверка условия типа JC,JE и т.д.) Lbl
Кто из них самый быстрый по аппаратным таймингам?Я слышал,что Loop дольше,чем Jmp/Jxxx
551
25 ноября 2006 года
Pavia
357 / / 22.04.2004
На wasm.ru почитай статьи про оптимизацию. Или сразу в перво источнике agner.org

Loop самый медленный.
JECXZ тоже медленный
Быстре
DEC CX
JNZ
261
26 ноября 2006 года
ahilles
1.5K / / 03.11.2005
разумеется лучше уменьшать CX и потом прыгать в зависимости от его значения
но loop читабельнее, и можно сэкономить 1-2 байта
но лично я за
DEC CX
JNZ
334
27 ноября 2006 года
HexEdit
809 / / 27.07.2006
Цитата: ahilles
разумеется лучше уменьшать CX и потом прыгать в зависимости от его значения
но loop читабельнее, и можно сэкономить 1-2 байта
но лично я за
DEC CX
JNZ



Смотря на что ты хочешь оптимизировать цикл - если на размер - то loop, если на время выполнения, то dec cx, jnz...
Я за время выполнения

7
06 декабря 2006 года
@pixo $oft
3.4K / / 20.09.2006
Вот вопрос про биты:как быстрее вдвинуть 7-й бит из 1-го байта во 2-й байт-с помощью ShRD/ShLD или RCL/RCR?
261
06 декабря 2006 года
ahilles
1.5K / / 03.11.2005
как понять вдвинуть 7 бит из первого байта во второй
1.8K
06 декабря 2006 года
k3Eahn
365 / / 19.12.2005
Цитата: @pixo $oft
Вот вопрос про биты:как быстрее вдвинуть 7-й бит из 1-го байта во 2-й байт-с помощью ShRD/ShLD или RCL/RCR?


ROL/ROR всяк быстрее.

7
13 декабря 2006 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: ahilles
как понять вдвинуть 7 бит из первого байта во второй


Как сказал бы наш физик Харлам(-ов В.Ф.)-"Ну вы даёте"
Описываю на примере(как известно(надеюсь,ассемблерщикам,кои мне отвечали(а особенно Ahilles'у),известно),биты в байте нумеруются справа налево начиная с 0)
1-й байт и его дружная семейка битов:
биты 76543210
байт 10010011
2-й байт и его дружная семейка битов:
биты 76543210
байт 10110010
Вдвигаем 7-й бит из 1-го байта с пом.,например,ShLD(байт 1 не меняется!!!-нам это нафиг нужно(в принципе,пофиг-надо/не надо,определится в контексте задачи))-берём бит в квадратных скобках
байт 2 байт 1
1<-0110010[1]<-[1]0010011
^
|
это сдвинутый с конца бит(значение байта 2 тоже не нужно-он будет заполнен 1-мы битами других 7-ми байт,вдвигаемых таким же образом)

7
13 декабря 2006 года
@pixo $oft
3.4K / / 20.09.2006
Цитата: HexEdit
Смотря на что ты хочешь оптимизировать цикл - если на размер - то loop, если на время выполнения, то dec cx, jnz...
Я за время выполнения


А не будет ли дольше выборка,декодирование и исполнение 2-х операций Dec CX/JNZ ... вместо одной только Loop?

334
13 декабря 2006 года
HexEdit
809 / / 27.07.2006
Хм... вроде суммарное количество тактов у DEC CX, JNZ ... меньше чем у LOOP
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог