[an error occurred while processing this directive]
|
Может ли кто-нибудь объяснить следующий эффект:
define.h
idata char buf[5];
xdata char connekt[10];
1.с
for(x=0;x<10;x++) connekt[x]=2;
компилятор выдает следующий код:
276: for (x=0;x<10;x++) connekt[x]=2;
277:
C:0x26B3 E4 CLR A
C:0x26B4 F574 MOV x(0x74),A
C:0x26B6 74F6 MOV A,#0xF6
C:0x26B8 2574 ADD A,x(0x74)
C:0x26BA F582 MOV Buf(0x82),A
C:0x26BC E4 CLR A
C:0x26BD 343F ADDC A,#sdm(0x3F)
C:0x26BF F583 MOV DPH(0x83),A
C:0x26C1 7402 MOV A,#0x02
C:0x26C3 F0 MOVX @DPTR,A
C:0x26C4 0574 INC x(0x74)
C:0x26C6 E574 MOV A,x(0x74)
C:0x26C8 B40AEB CJNE A,#0x0A,C:26B6
Естественно, прога на процессоре не работает (в массиве connekt всякия мусор), хотя на отладчике показывается изменение именно connekt, а не Buf. Версия Keil - 7.01
E-mail: info@telesys.ru