Неравноправие регистров общего назначения

Тема в разделе "Микроконтроллеры AVR", создана пользователем a1000, 15 окт 2019.

  1. Igor68

    Igor68 Гуру

    Но печальное не в этом! А в том, что нет возможности делать перемещаемый код. При котором JMP и др не могут быть относительно счётчика команд. При этом программа может быть запущена только с адреса для которого откомпилирована. А зачем это? К примеру нельзя разместить две программы в адресном пространстве, которые способны работать, если их запускать по очереди. На помощь пришли сегментные регистры кода, а пространство кода делилось на страницы. Кстати в PIC16F84 счётчик команд был ограничен размером в 2048 байт... а код при этом должен был разместиться именно в нём. А вот уже PIC16F877 имел большее пространство и для линейного кода, превышающего 2048 байт надо с "подподвыподвертом" делать программу. К счастью сейчас ядра с косвенной, относительной и др. адресацией.
     
  2. parovoZZ

    parovoZZ Гуру

    Ядро AtMega MUL не умеет, а команда есть...Да и умножитель в мелкашечных мк это придаток к ядру. Как там в ARM - не знаю.
     
  3. Igor68

    Igor68 Гуру

    Ранее приведено для ATmega328... это про MUL. В ARM7TDMI MUL встроена для целочисленного умножения. В других ARM-ядрах по другому. Но как правило если они добавили инструкции для JAVA (аппаратное выполнение), то наверное и DIV уже сделали. Правда JAVA наверное вообще тупость - чисто моё мнение... да и не представляю как это.
     
    Последнее редактирование: 19 окт 2019