• CooCox ColDE V2.x.x или V1.7.x?

    @sbudyakov Автор вопроса
    А в каком смысле "переосмыслили своё видение"? Изменения коснулись только интерфейса?
  • CooCox ColDE V2.x.x или V1.7.x?

    @sbudyakov Автор вопроса
    CooCox CoIDE - IDE для программирования микроконтроллеров.
    Краткое описание на сайте STM - www.st.com/en/development-tools/coide.html
    Офф. сайт - www.coocox.org
  • Что такое битность команды?

    @sbudyakov Автор вопроса
    Кажется, теперь я понял... Спасибо за объяснения!
  • Что такое битность команды?

    @sbudyakov Автор вопроса
    Большое спасибо за объяснение! Но все-равно остался вопрос...

    Поместить 16-битное значение по 16-битному адресу (одной командой)
    lea 0x1234, 0xFFFF (5 байт)


    Как процессор по 16-разрядной шине "прокачает" 5 байт?
    Где хранится информация о том, что команда большая по объему и читать ее нужно в несколько заходов?

    Приведу пример (если я правильно понимаю):
    1) Процессор берет адрес команды из стека команд;
    2) Инкрементирует значение счетчика стека;
    3) Начинает читать команду по полученному адресу... <- Тут вопрос!
    Как он читает команду размер которой 5 байт?
    Ведь, когда он перешел по адресу из стека, он может прочитать за раз только 16 бит.
  • Что такое битность команды?

    @sbudyakov Автор вопроса
    Скажите, пожалуйста, где можно почитать про разбиение команд и/или чисел в памяти?
    Как 32-битный процессор может прочитать число, которое кодируется, например, 50 битами? Как он понимает, что сначала надо обратиться по одному адресу и прочитать первые 32 бита, а потом по следующему и дочитать оставшуюся информацию?

    Просто я, в основном, натыкаюсь на статьи с кодом, но не понимаю как это происходит на уровне микропроцессорной логики.
  • Что такое битность команды?

    @sbudyakov Автор вопроса
    В целом стало понятнее...
    Например возмем старые arm'ы еще времен MU0. Чтобы сложить 2 числа, 1) Надо сначала взять инструкцию, 2) потом загрузить из стека первое число, 3)сохранить его в регистр, 4) взять второе число, и одновременно по двум бусам сложить в ALU, 5) итог же пустить на Data out и 6) запушить на стек с адрессом из стэк поинтера.


    Но тут вопрос. На каком этапе исполнения программы в целом (или команды в частности) происходит попадание операнда в стек (2 и 4 пункты)? И в какой стек именно? Просто я пока не имею большого опыта, поэтому знаком только со стеком команд.
  • Что такое битность команды?

    @sbudyakov Автор вопроса
    AStek: Расскажите, пожалуйста, про этот тип процессоров немного подробнее. Ну, или ссылочку где можно почитать (в Гугле не нашел статьи с описанием принципа - в основном сразу даны прикладные задачи на Асм). Я просто про такой никогда даже не слышал!
    И в какой момент исполнения программы опернад попадает в стек?
  • Что такое битность команды?

    @sbudyakov Автор вопроса
    Спасибо за презентацию! Но тут больше рассказывается разность систем команд ARM и Thumb, а у меня вопрос на более низком уровне...
    Как в 32-разрядной команде можно уместить 32-разрядный операнд или его адрес (такой же разрядности)?

    Например:
    ADD R1, a @ где а - 32-битная константа
    То есть (в самом простом случае), процессору надо передать машинный код операции add + адрес ячейки R1 + само число a. Как это сделать за минимальное количество тактов?! Ведь, разрядность шин адреса/данных/команд - 32.

    Это вопрос, скорее, по архитектуре ЭВМ, чем по Асм, но я не знаю где еще можно спросить...
  • Что такое битность команды?

    @sbudyakov Автор вопроса
    AStek: В таком случае, позвольте другой вопрос... В каком виде команда содержит в себе операнды?
    (Здесь достаточно хорошо описаны и 16-, и 32-х разрядные команды)
    Краткий пример: предположим, я инкрементирую операнд размером в 32 бита с помощью 32-разрядной команды INC.
    Как в выделенные для команды INC 32 разряда поместить и операнд и саму команду?
  • Что такое битность команды?

    @sbudyakov Автор вопроса
    AStek: У меня тоже сначала было такое предположение, но в лекциях о структуре команд Ассемблера (тут) указано, что максимальная длина машинной команды - 15 байт... Следовательно, битность команды не определяется ее длинной.
  • Что такое битность команды?

    @sbudyakov Автор вопроса
    Andrei Smirnov: Спасибо за ссылку! Но, насколько я понял, в вопросе рассматривается разница 16/32-битных кодов в целом, а меня интересует конкретно битность команд.