stimmt marwin, hast recht
habs jetzt geändert, der sprung zu loop war wirklich überflüssig, danke
das problem ist aber immer noch das gleiche (bin gleich zu exit gesprungen, weil ausg ned ging, sorry)
aber wieso gibt der einfach nix aus, wenn ausg abgearbeitet wird?
- Code: Alles auswählen
ORG $400
* address-distance
BEGINA EQU $10000 minimum=$10010
ENDA EQU $103ff maximum=$3ffff
RESULT EQU $1010
SEARCH EQU $1234
* program begins here
start
MOVE.W #SEARCH,$10010
MOVE.W #SEARCH,$10012
MOVE.W #SEARCH,$10014
MOVE.L #BEGINA,A0 BEGINA nach A0
MOVE.L #RESULT,A1 RESULT Speicheraddresse nach A1
LOOP
CMP.L #ENDA,A0 ENDA mit A0 maximum counts?
BGT AUSG *!EXIT**branch grater than avoiding endless loop caused by odd ending-adress
MOVE.W (A0),D0 move current register to D0
MOVE.W #SEARCH,D1 SEARCH Searchstring nach D1
CMP D1,D0 compare D0 with Searchstring , (equ: CMPI.W SEARCH,BEGINA)
BEQ SAVER if D0 equals searchstring go to saving
ADD #2,A0 increment Searchaddress
BRA LOOP else jump to LOOP
SAVER
MOVE.L A0,(A1) move Searchaddress to Results-addr
ADD #4,A1 increment resultaddr
ADD #2,A0 increment searchaddress
ADD #1,D2 increment counter
BRA LOOP
AUSG
CMP #RESULT,A1
BEQ EXIT
lea (A1),A0
TRAP #15
DC.W 7
SUB #4,A1
BRA AUSG
EXIT
stop #$2700
END start