Задать вопрос
Ответы пользователя по тегу Assembler
  • Генерация кода для условных выражений?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    Подход с польской записью возможен, если нужны только выражения. По поводу "А как вернуться назад?":
    1. Если вы храните строку с токенами в польской записи в каком-то массиве, и обрабатываете их в цикле, то после push $0/ push $1 можно сделать безусловный jump на начало цикла обработки.
    2. Использовать call, адрес возврата будет положен на стек и вы вернетесь к месту вызова по ret. Но в этом случае не получится использовать аппаратный (push, pop) стек без дополнительных извращений. Заведите массив под еще один стек для ваших данных. Гуглите "стек на массиве", если не понятно о чем я. Это кажется усложнением, но с большой вероятностью вы захотите использовать стек для чего-то еще потом. Не стоит сразу его резервировать для одной цели.
    3. Вместо условных переходов можно попытаться загрузить результат сравнений из регистра флагов напрямую.
    pushf			; Скопировать регистр флагов...
    pop ax			; ...в регистр AX

    остается сделать and с маской для нужного флага и сдвинуть (shr) чтобы получить 0 или 1.
    Ответ написан
  • Assembler'ные вставки кода в C++, как правильно реализовать ?

    tsarevfs
    @tsarevfs Куратор тега C++
    C++ developer
    1 правило ассемблерных вставок - "лучше бы вы не делали ассемблерные вставки".
    Вы уверены что оно вам нужно? Например работа с SSE вполне возможна с помощью библиотек C++.
    Некоторым аналогом push pop можно считать функцию _allcoa выделяющую память на стеке. Работать с объектами через ассемблер конечно возможно. Читайте про call conventions, name mangling, выравнивание. Если вы хотите работать с объектами использующими наследование и виртуальные функции, то вам нужно разобраться со структурой таблици виртуальных функций.
    Ответ написан
    1 комментарий
  • Микроконтроллеры?

    tsarevfs
    @tsarevfs
    C++ developer
    Самый простой способ купить какой-нибудь набор с
    для arduino. Ну и почитайте easyelectronics.ru.
    Ответ написан
    Комментировать
  • Как написать программу на ассемблере?

    tsarevfs
    @tsarevfs
    C++ developer
    И в чем проблема? Есть эмулятор. Там же набор инструкций. Гуглим "8085 tutorial" и в пдфке по первой ссылке читаем с 15 страницы.
    Ответ написан
    Комментировать