keil a konstanty
MK
info@mcu.cz
Čtvrtek Duben 28 16:24:46 CEST 2005
> hm... do ty pameti to asi vleze. Problem se zacina menit na to ze
> vyrazem promenna[0] dostanu prni polozku z pole ale promenna[1] uz
> dostanu 0xffff
Ja se opravdu omlouvam ze se zase budu opakovat,
ale opravdu si nedokazu vycucat z prstu co delate a co nedelate
z toho vagniho zdeleni navrchu :-(((
V kazdem pripade tohle:
unsigned char code promenna[] = {0,1,2,3,4,5,6,7,8,9};
void main (void) {
while (1) {
P1 ^= 0x01; /* Toggle P1.0 each time we print */
P2 = promenna[1];
P0 = promenna[2];
}
}
se prelozi takhle:
RSEG ?CO?HELLO
promenna:
DB 000H
DB 001H
DB 002H
DB 003H
DB 004H
DB 005H
DB 006H
DB 007H
DB 008H
DB 009H
; void main (void) {
RSEG ?PR?main?HELLO
main:
; SOURCE LINE # 27
?C0001:
; while (1) {
; SOURCE LINE # 28
; P1 ^= 0x01; /* Toggle P1.0 each time we print */
; SOURCE LINE # 29
XRL P1,#01H
;
; P2 = promenna[1];
; SOURCE LINE # 31
MOV DPTR,#promenna+01H
CLR A
MOVC A,@A+DPTR
MOV P2,A
; P0 = promenna[2];
; SOURCE LINE # 32
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV P0,A
;
; }
; SOURCE LINE # 34
SJMP ?C0001
; END OF main
END
A opravdu nemam pocit, ze poprve by se to chovalo jinak,
nez jak chci v Ccku
S pozdravem
Další informace o konferenci Hw-list