С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Я так понимаю, это про оно?
https://m.habr.com/ru/post/471020/
troosh(11.10.2019)
После команды, которая меняет флаги, практически всегда - сразу команда перехода, реагирующая на флаги. Так, что бы между ними какая то ещё команда - очень редко, а так, что бы эта команда не трогала интересующий флаг, но сама влияла на некоторые из них - крайняя редкость, и это можно понять даже по тому, сколько времени прошло, прежде чем баг нашли
"movb Rs, Rd" - не такая уж частая.
1. Программисты жадные. Зачем пересылать 8 бит, если можно сразу 16? Бесплатно
2. Программисты ленивые. Чтобы написать movb вместо mov - это ж подумать надо. Лень
- - - Добавлено - - -
Кстати, mov Rs, Rd занимает 8 тактов и выполняется быстрее чем movb Rs, Rd. (автомату так вообще 4 такта надо, шина тормозит до 8).
И, да - производительность 1801ВМ1 625К словных инструкций reg-reg на 5МГц. А не 500К как везде написано.
Последний раз редактировалось Vslav; 11.10.2019 в 12:41.
Зато она особенная: расширяет со знаком байт.
Она записывает 16 бит, это не просто пересылка, это полезная инструкция в некоторых случаях.
Можно сделать макрос SXTB, букв столько же, но сразу ясно будет, что это расширение знака.
А так да, конечно, - во всём виноваты программисты, постоянно слышу от наших инженеров когда какой-то их баг им показываю![]()
Любая MOV с приёмником - регистром расширит знаковый бит в байте
Если мне не требуется расширение знака - я использую MOV, если байт хранит число со знаком - MOVB, если интересует ТОЛЬКО младший байт - CLR + BISB
Аккуратней, есть команда SXT, можно на автомате ошибиться
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)