Hallo,
ich arbeite gerade mit dem Keil µVision3 Simulator. Folgendes Programm
versuche ich gerade auf einem Intel 80C51 zu simulieren.
1 | SUM1 EQU 43H ;LSB SUM1
|
2 | SUM2 EQU 53H ;LSB SUM2
|
3 | ORG 0
|
4 | MOV SP,#7FH ;STACKPOINTER
|
5 | MOV SUM1,#11H ;FESTE WERTE FUER DIE SUMMANDEN LADEN
|
6 | MOV SUM1-1,#22H
|
7 | MOV SUM1-2,#33H
|
8 | MOV SUM1-3,#44H
|
9 | MOV SUM2,#55H
|
10 | MOV SUM2-1,#66H
|
11 | MOV SUM2-2,#77H
|
12 | MOV SUM2-3,#88H
|
13 | CALL ADDA ;AUFRUF ADDITIONSPROGRAMM AUFGABE A
|
14 | STOP: JMP $ ;ENDLOSSCHLEIFE
|
15 | ;ADDA UNTERPROGRAMM FÜR DIE ADDITION VON ZWEI 32-BIT-ZAHLEN; DIE DIREKT
|
16 | ;ADRESSIERT WERDEN
|
17 | ADDA:
|
18 | MOV A,SUM1 ;1. SUMMAND LSB
|
19 | ADD A,SUM2 ;2. SUMMAND LSB ADDIEREN
|
20 | MOV SUM1,A ;TEILERGEBNIS ABSPEICHERN
|
21 | MOV A,SUM1-1
|
22 | ADDC A,SUM2-1
|
23 | MOV SUM1-1,A
|
24 | MOV A,SUM1-2
|
25 | ADDC A,SUM2-2
|
26 | MOV SUM1-2,A
|
27 | MOV A,SUM1-3
|
28 | ADDC A,SUM2-3
|
29 | MOV SUM1-3,A
|
30 | RET
|
31 | END
|
So, nun möchte ich gern währende der Simulation sehen, was im Speicher
des Controllers passiert. Also benutze ich das Memory Window. Zu Beginn
des Speichers steht das Programm ab Adresse 0x0000. Das macht ja nun
auch Sinn.
Jetzt würde ich bei der Adresse 0x0043 eigentlich den ersten Summanden
mit dem Wert 0x11 erwarten. Leider stehen im gesammten Speicher bis auf
den Programmteil nur Nullen. Wie kann das sein?? Was mache ich falsch??
Danke.