Интересно, кто их курит? Для меня предел был 1200 стр.
![]() |
roboforum.ruТехнический форум по робототехнике. |
|
JMP Jump
JE/JZ Jump if equal/Jump if zero
JNE/JNZ Jump if not equal/Jump if not zero
JA/JNBE Jump if above/Jump if not below or equal
JAE/JNB Jump if above or equal/Jump if not below
JB/JNAE Jump if below/Jump if not above or equal
JBE/JNA Jump if below or equal/Jump if not above
JG/JNLE Jump if greater/Jump if not less or equal
JGE/JNL Jump if greater or equal/Jump if not less
JL/JNGE Jump if less/Jump if not greater or equal
JLE/JNG Jump if less or equal/Jump if not greater
JC Jump if carry
JNC Jump if not carry
JO Jump if overflow
JNO Jump if not overflow
JS Jump if sign (negative)
JNS Jump if not sign (non-negative)
JPO/JNP Jump if parity odd/Jump if not parity
JPE/JP Jump if parity even/Jump if parity
JCXZ/JECXZ Jump register CX zero/Jump register ECX zero
next instruction. Not supported in 64-bit
mode.
E9 cd JMP rel32 D Valid Valid Jump near, relative, RIP = RIP + 32-bit displacement sign extended to 64-bits
FF /4 JMP r/m16 M N.S. Valid Jump near, absolute indirect, address = zeroextended r/m16. Not supported in 64-bit mode.
FF /4 JMP r/m32 M N.S. Valid Jump near, absolute indirect, address given in r/m32. Not supported in 64-bit mode.
FF /4 JMP r/m64 M Valid N.E. Jump near, absolute indirect, RIP = 64-Bit offset from register or memory
EA cd JMP ptr16:16 D Inv. Valid Jump far, absolute, address given in operand
EA cp JMP ptr16:32 D Inv. Valid Jump far, absolute, address given in operand
FF /5 JMP m16:16 D Valid Valid Jump far, absolute indirect, address given in m16:16
FF /5 JMP m16:32 D Valid Valid Jump far, absolute indirect, address given in m16:32.
REX.W + FF /5 JMP m16:64 D Valid N.E. Jump far, absolute indirect, address given in m16:64.
опухнет, опухнет.
у интела громадное количество всякой доки и примеров на различные темы.

пойду выкину асм и застрелюсь
ALS писал(а):пойду выкину асм и застрелюсь
Не надо, он наше все )
Пока ТС "опухлялся", я на самом деле "написал" и собрал тахометр.
Использовались куски, найденные гуглом по тому самому сочетанию "math routines"...
Точность - 5rpm, диапазон 0-9995rpm, период измерения - 1сек, в качестве датчика - оптопара от принтера, на валу - колесо о 12-ти отверстиях.
PIC16F88, асм, примерно 400 байт кода, времени на "писательство" ушел вечер, на сборку/наладку - еще один.
если всё на асме писать, то голова опухнет, точно опухнет, особенно при написании многопоточных программ. не обязательно же читать что-то на подобии Intel 64 and IA-32 Architectures Optimization Reference Manual, в зависимости от задачи может легко хватить небольшой статьи или поверхностного понимания, как всё работает. неоптимальная структура или побайтовые "метания" по памяти легко в разы замедлит выполнения кода. увидели, что большую часть времени тратиться на перебор в цикле какого-то массива данных, подумали, можно ли оптимизировать просто развернуть цикл и/или переделать структуры данных. всё, зачем вылизывать 50, 60, 70,... % кода, если их выполнение занимает от нескольких % до максимум десятка-другого?
за перфекционизм нужно платить, иногда слишком много.
а эмбеддед это просто коняшка в вакууме - одно дело железка на тини12, совсем другое железка с 1..n ядерным армом, с десятками/сотнями метров или парой гиг озу и т.д., на котором линух или какая другая ось крутиться.Angel71 писал(а):копипастить асм код в принципе ничем хорошим не грозит
Angel71 писал(а): а допустим, чем будет отличаться смена типа для одной переменной, допустим с байта на инт, которая в куче мест используется? на си может быть достаточно и правки объявление переменной. и т.д.
Если тебе надо сменить точность вычисления, то ты меняешь алгоритм одной подпрограммы.Angel71 писал(а):одно дело железка на тини12, совсем другое железка с 1..n ядерным армом, с десятками/сотнями метров или парой гиг озу и т.д., на котором линух или какая другая ось крутиться.


Под комп я пишу на vb...Duhas писал(а):ИМХАется мне что копипастить код в принципе ничем хорошим не грозит, даже свой собственный. исключая функции с фиксированным набором параметров вход/выход.
слабо вериться, что из прям почти ничего из своих других проектов не используется или что не заимствуете свой/чужой код.
а с типами это больше вопрос доступных ресурсов вычислялки, конкретной задачи и возможностей компилятора/языка/библиотек. когда есть возможность использовать дженерики или возможность во время исполнения исследовать по ссылочке любой класс и подклассы до любого уровня вложенности, узнавая всё необходимое (приватные и защищённые в том числе) о типах, интерфейсах или методах, то вся эта бла-бла о типах гроша ломаного не стоит.
фу, кака.
ещё давным давно было такое явление, как "демосцена". в 100 байт комовского файла влезала 3д рендерилка красивостей + миди музычка играла. под винду позже стали делать чудные 3д демки с чудной музычкой, лезло это всё в очень смешные размеры.Да, считаю импульсы в секунду. За счет того, что в диске есть 12 отверстий, результат умножаю на 5. Это дает и нормальную скорость обновления информации на дисплее (та же самая одна секунда), и приемлемую (для меня) точность.dccharacter писал(а):А это точно период измерения или частота обновления дисплея. Если первое - то ты что делаешь, считаешь количество импульсов в секунду?
Поверьте, это все очень... эээ... малозначительные нюансы.arm-17 писал(а):ALS там для пиков куча всякой всячины,а мне надо для AVR,а информацию на LCD.У тебя один инкодер от принтера,а у меня от лифта 2-х канальный.
ALS писал(а):Да, считаю импульсы в секунду. За счет того, что в диске есть 12 отверстий, результат умножаю на 5. Это дает и нормальную скорость обновления информации на дисплее (та же самая одна секунда), и приемлемую (для меня) точность.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0