Gast
#6433945
Seit einiger Zeit wurde der MPASM durch den XC8 Assembler ersetzt. Letzterer wird auch von Microchip zur Verwendung empfohlen. Merkwürdigerweise erzeugen sie aus dem gleichen Assemblerprogramm nicht den gleichen Code: Der Befehl CLRW wird vom MPASMmit 0x0100 übersetzt, der XC8 macht daraus 0x0103. Letzteres ist zwar im Prinzip auch richtig, denn die untersten 7 bit sind "Dont care", trotzdem empfiehlt Microchip, diese Bits aus Kompatibilitätsgründen auf 0 zu setzen: "The assembler will generate code with x = 0. It is the recommended form of use for compatibility with all Microchip software tools" Warum verletzt Microchip beim XC8 seine eigenen Kompatibiltätsregeln?