Hallo Andre,
habe ich eben ausprobiert mit deinem PIC. Brauchst Du Dir anscheinend keinen Kopf machen. Das sieht völlig okay aus, ohne den Schnickschnack.
Der braucht diese Abfrage nicht.....
aus "C" Code
di();
wird Assembler Code
BCF 0xff2, 0x7, ACCESS
Aber diesen Spassigen Code wollte ich Euch nicht vorenthalten, was der C-Copiler daraus macht beim 16C63:
Der "C" Code:
di();
Der erzeugt Assembler Code:
Jetzt weis ich wieder warum ich in Assembler programmiere.......;)Code:7F8 138B BCF 0xb, 0x7 ; INTCON,GIE löschen
7F9 1B8B BTFSC 0xb, 0x7 ; überspringe nächtse Zeile wenn Bit gelöscht ist
7FA 2FFC GOTO 0x7fc ; Bit war gesetzt gehe zu Adresse 7FC
7FB 2FFD GOTO 0x7fd ; Bit war gelöscht, gehe zu 7FD
7FC 2FF8 GOTO 0x7f8 ; Bit war gesetzt, wie wir schon in 7FA festgestellt hatten, nun zurück und Bit nochmal löschen
7FD 2FFE GOTO 0x7fe ; Bit war gelöscht, wie wir schon in 7FB festgestellt hatten, weiter gehts nun in der nächsten Zeile, die man auch ohne Goto erreicht hätte
7FE 118A
PS: (ich weis, der Code wird etwas grösser, weil ich keine offizielle Version gekauft habe)
Running this compiler in PRO mode, with Omniscient Code Generation enabled,
often produces code which is 60% smaller and at least 400% faster than in
Free mode. The MPLAB XC8 PRO compiler output for this code could be
3 bytes smaller and run 4 times faster.
See http://www.microchip.com for more information.