Im nachfolgendem Programmauszug bei SYSTEM._L0046.
Achtung: Es ist ein anderes Programm. Die Sprungmarken sind anders.
Code
SYSTEM._StrIns:
MOV _ACCFLO, _ACCFHI
ANDI _ACCFLO, 3
TST _ACCFLO
BREQ SYSTEM._L0024
LSR _ACCFLO
BRNE SYSTEM._L0026
SYSTEM._L0026:
LPM _ACCAHI, Z+
RJMP SYSTEM._L0025
SYSTEM._L0024:
LD _ACCAHI, Z+
SYSTEM._L0025:
TST _ACCAHI
BREQ SYSTEM._L0033
MOV _ACCFLO, _ACCFHI
ANDI _ACCFLO, 10h
BREQ SYSTEM._L0028
SYSTEM._L0028:
LD _ACCALO, X
SYSTEM._L0030:
CP _ACCB, _ACCA
BRCC SYSTEM._L0032
SYSTEM._L0033:
RET
SYSTEM._L0032:
MOV _ACCDLO, _ACCB
SUB _ACCDLO, _ACCA
MOV _ACCDHI, _ACCDLO
SUB _ACCDLO, _ACCAHI
BRCS SYSTEM._L0038
CP _ACCALO, _ACCA
BRCC SYSTEM._L0035
MOV _ACCELO, _ACCAHI
ADD _ACCELO, _ACCALO
CP _ACCB, _ACCELO
BRCS SYSTEM._L0034
MOV _ACCB, _ACCELO
SYSTEM._L0034:
RJMP SYSTEM._L0038
SYSTEM._L0035:
PUSH _ACCBLO
PUSH _ACCBHI
PUSH _ACCCLO
PUSH _ACCCHI
MOV _ACCDHI, _ACCALO
SUB _ACCDHI, _ACCA
CP _ACCDHI, _ACCDLO
BRCC SYSTEM._L0036
MOV _ACCDLO, _ACCDHI
SYSTEM._L0036:
CLR _ACCDHI
ADD _ACCBLO, _ACCA
ADC _ACCBHI, _ACCDHI
ADD _ACCBLO, _ACCDLO
ADC _ACCBHI, _ACCDHI
ADIW _ACCBLO, 1
MOVW _ACCCLO, _ACCBLO
ADD _ACCCLO, _ACCAHI
ADC _ACCCHI, _ACCDHI
MOV _ACCDHI, _ACCDLO
INC _ACCDHI
MOV _ACCFLO, _ACCFHI
ANDI _ACCFLO, 10h
BREQ SYSTEM._L0037
SYSTEM._L0037:
LD _ACCGLO, -X
ST -Z, _ACCGLO
DEC _ACCDHI
BRNE SYSTEM._L0037
SYSTEM._L0031:
POP _ACCCHI
POP _ACCCLO
POP _ACCBHI
POP _ACCBLO
MOV _ACCB, _ACCA
ADD _ACCB, _ACCAHI
ADD _ACCB, _ACCDLO
BRNE SYSTEM._L0042
SYSTEM._L0038:
ADD _ACCAHI, _ACCDLO
INC _ACCAHI
SYSTEM._L0042:
MOV _ACCFLO, _ACCFHI
ANDI _ACCFLO, 10h
BREQ SYSTEM._L0045
SYSTEM._L0045:
ST X, _ACCB
SYSTEM._L0044:
CLR _ACCALO
ADD _ACCBLO, _ACCA
ADC _ACCBHI, _ACCALO
SYSTEM._L0043:
MOV _ACCFLO, _ACCFHI
ANDI _ACCFLO, 3
TST _ACCFLO
BREQ SYSTEM._L0046
LSR _ACCFLO
BRNE SYSTEM._L0048
SYSTEM._L0048:
LPM _ACCGLO, Z+
RJMP SYSTEM._L0047
SYSTEM._L0046:
LD _ACCGLO, Z+
SYSTEM._L0047:
MOV _ACCFLO, _ACCFHI
ANDI _ACCFLO, 10h
BREQ SYSTEM._L0049
SYSTEM._L0049:
ST X+, _ACCGLO
SYSTEM._L0050:
DEC _ACCAHI
BRNE SYSTEM._L0043
SYSTEM._L0041:
RET
SYSTEM.DefIntErr:
RETI
Code
program isrtable;
{$NOSHADOW}
{ $WG} {global Warnings off}
Device = mega32, VCC=5;
{ $BOOTRST $03800} {Reset Jump to $03800}
Define_Fuses
// Override_Fuses;
NoteBook = A;
COMport = USB;
LockBits0 = [];
FuseBits0 = [];
FuseBits1 = [SPIEN, JTAGEN, OCDEN];
Import SysTick, SerPort;
From System Import ;
Define
ProcClock = 16000000; {Hertz}
SysTick = 10; {msec}
StackSize = $0064, iData;
FrameSize = $0064, iData;
SerPort = 19200, Stop2; {Baud, StopBits|Parity}
RxBuffer = 8, iData;
TxBuffer = 8, iData;
Implementation
{$IDATA}
{--------------------------------------------------------------}
{ Type Declarations }
type
{--------------------------------------------------------------}
{ Const Declarations }
{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
{--------------------------------------------------------------}
{ functions }
{--------------------------------------------------------------}
{ Main Program }
{$IDATA}
var txt : string[25];
var c : char;
begin
c := '3';
txt := '';
append(c, txt);
EnableInts;
loop
mdelay(1);
endloop;
end isrtable.
Gott sei Dank, kann ich wieder gut schlafen. Wie ein
Was ist ein Pseudo Register/IO "Scratch...". ?