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