Neues Feature in Bascom 2083 (DIM mit Attribut SAFE)

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    Aufgrund technischer Veränderungen ist der Mailverkehr innerhalb des Forums (Private Nachrichten) nur noch eingeschränkt möglich. Die Einschränkung ist notwendig, um zusätzliche Betriebskosten für das Forum zu vermeiden. Näheres zu den Hintergründen im Thread "Aktuelles zum Forum".Wir bitten um Verständnis.

    Hinweis kann nach Kenntnisnahme deaktiviert werden!

    • Hallo @monkye

      Leider ist es in der Wirklichkeit nicht immer so trivial.

      Zum Einen kann man den ADIW nur mit den geraden Registern ab r24 aufwärts machen,
      zum Anderen ist die Instruktion nicht bei jedem Controller vorhanden.

      Deswegen macht man für Inkrementierung
      SUBI r,$FF
      SBIC r+1,$FF

      Dann muss der Wert noch in das Register geladen und nach dem Incrementieren wieder gespeichert werden. Sind schon 6 Anweisungen.

      In Post #9 findest du das Disassembling, was der Compiler aus Incr wordVariable macht (kein CLI, SEI, SAFE wird ignoriert).

      In Post #11 das Disassembler-Listing was der Compiler aus wordVariable = wordVariable + 1 macht (CLI, SEI wird verwendet wie mit Attribut SAFE beabsichtigt).
    • Es wird sicher „den“ (historischen) Grund haben, dass diese Befehle in den meisten AVR implementiert sind. Für mich ist das aber kein Grund, den Compiler mit mehr Möglichkeiten auszustatten.
      Mir ist auch klar, dass die Datentypen verschieden behandelt werden müssen - also nicht nur die absolute Bitlänge, sondern auch das Vorzeichen…
      Aus datenschutzrechtlichen Gründen befindet sich die Kontaktdaten auf der Rückseite dieses Beitrages.