- Akku Tests und Balkonkraftwerk Speicher         
Ergebnis 1 bis 10 von 22

Thema: Compiler Multiplikation verbieten

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    05.11.2007
    Beiträge
    1.076

    Compiler Multiplikation verbieten

    Hallo zusammen,

    in einem kleinen 8 Bitter ist eine Multiplikation ja nicht grad optimal, da sie in Software ausgeführt wird.
    Wenn ich nun einen Wert mit 3 multiplizieren möchte, habe ich ja so einiges an Möglichkeiten.
    Ich habe mal verschiedene Möglichkeiten compiliert und war doch sehr erstaunt über das Ergebnis:
    Um den Compiler auszutricksen habe ich folgenden Code verwendet und genau der ist laufzeitmässig der absolut Schlechteste:

    Compiler ist der XC8 Version V2.00

    char cnt;

    Code:
    cnt  = cnt + cnt + cnt;    // 57 Zyklen
    So wie ich es in Assembler gemacht hätte, hat auch der Compiler die beste Laufzeit.
    Code:
    cnt  = (cnt << 1) + cnt;   //  5 Zyklen
    Hier mal die Übersicht:
    Code:
    cnt *=3;                   // 45 Zyklen
    cnt  = (cnt << 1) + cnt;   //  5 Zyklen
    cnt  = cnt + cnt + cnt;    // 57 Zyklen
    cnt += (cnt + cnt);        // 56 Zyklen
    Ich möchte halt vermeiden, dass der schlaue C-Compiler mir eine Multiplikation erzeugt.
    Kann man das noch irgendwie steuern ?

    Siro

    Wie so oft macht der C-Compiler nicht das was da steht, er konzentriert sich nur auf das Ergebnis. Hier fehlt eigentlich eine Option: Bitte das so kodieren wie es dort steht. Natürlich ironisch gemeint....
    Geändert von Siro (01.11.2018 um 12:10 Uhr)

Ähnliche Themen

  1. Auch Hybridfahrzeuge betroffen: Großbritannien will Verbrenner ab 2040 verbieten
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 0
    Letzter Beitrag: 26.07.2017, 10:40
  2. Verkehr: Stadtrat in San Francisco will Lieferroboter verbieten
    Von Roboternetz-News im Forum Neuigkeiten / Technik-News / Nachrichten / Aktuelles
    Antworten: 2
    Letzter Beitrag: 24.05.2017, 10:52
  3. Multiplikation falsch??
    Von fredyxx im Forum Arduino -Plattform
    Antworten: 8
    Letzter Beitrag: 20.05.2016, 10:21
  4. Multiplikation in ass
    Von haus51 im Forum Assembler-Programmierung
    Antworten: 9
    Letzter Beitrag: 20.03.2007, 13:48
  5. Vias unter Bauteilen verbieten (Eagle)
    Von Henrik hessert im Forum Konstruktion/CAD/3D-Druck/Sketchup und Platinenlayout Eagle & Fritzing u.a.
    Antworten: 2
    Letzter Beitrag: 16.12.2006, 18:34

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress