M
Michael Dreschmann
Guest
Hallo,
ich bin gerade dabei ein Stück Assembler-Code für einen AT90S8515 zu
debuggen. Dabei gibt es folgenden Programmteil, von dem ich nicht
sicher weiss, ob er auch das tut, was ich will:
cp ACT_PAN_POS_L,TEMP_L
cpc ACT_PAN_POS_H,TEMP_H
breq PC_EQU
cp ACT_PAN_POS_L,TEMP_L
cpc ACT_PAN_POS_H,TEMP_H
brlo PC_INC
cp ACT_PAN_POS_L,TEMP_L
cpc ACT_PAN_POS_H,TEMP_H
brsh PC_DEC
In ACT_PAN_POS und TEMP liegt jeweils ein 16 Bit word. Diese beiden
möchte ich nun vergleichen und abhänig vom Ergebniss (gleich, kleiner,
grösser) an 3 verschiedene Stellen springen.
Nun bin ich mir nicht sicher, ob die Variante mit erst Compare (cp)
Low-byte und dann Compare with Carry (cpc) High-byte auch mit allen
drei verwendeten Sprungbefehlen (breq, brlo und brsh) richtig
funktioniert.
Vielleicht weiss da einer Bescheid und kann mir das kurz beantworten.
Michael
ich bin gerade dabei ein Stück Assembler-Code für einen AT90S8515 zu
debuggen. Dabei gibt es folgenden Programmteil, von dem ich nicht
sicher weiss, ob er auch das tut, was ich will:
cp ACT_PAN_POS_L,TEMP_L
cpc ACT_PAN_POS_H,TEMP_H
breq PC_EQU
cp ACT_PAN_POS_L,TEMP_L
cpc ACT_PAN_POS_H,TEMP_H
brlo PC_INC
cp ACT_PAN_POS_L,TEMP_L
cpc ACT_PAN_POS_H,TEMP_H
brsh PC_DEC
In ACT_PAN_POS und TEMP liegt jeweils ein 16 Bit word. Diese beiden
möchte ich nun vergleichen und abhänig vom Ergebniss (gleich, kleiner,
grösser) an 3 verschiedene Stellen springen.
Nun bin ich mir nicht sicher, ob die Variante mit erst Compare (cp)
Low-byte und dann Compare with Carry (cpc) High-byte auch mit allen
drei verwendeten Sprungbefehlen (breq, brlo und brsh) richtig
funktioniert.
Vielleicht weiss da einer Bescheid und kann mir das kurz beantworten.
Michael