This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Pointer error

//test code Keil6.23
1 unsigned int code tbl[10][2]={
2 { 80, 1986},{ 600, 2630},{ 1390, 3584},{ 2180, 4509},{ 2960, 5396},
3 { 3730, 6245},{ 4500, 7069},{ 5260, 7858},{ 6020, 8623},{ 6200, 8800}
4 };
5 void main()
6 {
7 1 unsigned int code *Table;
8 1 unsigned int d1,d2,d3,d4;
9 1 unsigned char DataOff;
10 1
11 1 DataOff=3;
12 1 Table=tbl[0];
13 1
14 1 d3=*Table;
15 1 d4=*(Table+2);
16 1 Table=Table+2-DataOff;
17 1 // Table=Table-DataOff+2;
18 1 d1=*Table;
19 1 d2=*(Table+2);
20 1 }
C51 COMPILER V6.23a MAIN }
; FUNCTION main (BEGIN)
; SOURCE LINE # 5
; SOURCE LINE # 6
; SOURCE LINE # 11
;---- Variable 'DataOff' assigned to Register 'R7' ----
0000 7F03 MOV R7,#03H
; SOURCE LINE # 12
0002 7C00 R MOV R4,#HIGH tbl
0004 7D00 R MOV R5,#LOW tbl
;---- Variable 'Table' assigned to Register 'R4/R5' ----
; SOURCE LINE # 14
0006 8D82 MOV DPL,R5
0008 8C83 MOV DPH,R4
000A E4 CLR A
000B 93 MOVC A,@A+DPTR
000C F500 R MOV d3,A
000E 7401 MOV A,#01H
0010 93 MOVC A,@A+DPTR
0011 F500 R MOV d3+01H,A
; SOURCE LINE # 15
0013 7404 MOV A,#04H
0015 93 MOVC A,@A+DPTR
0016 F500 R MOV d4,A
0018 7405 MOV A,#05H
001A 93 MOVC A,@A+DPTR
001B F500 R MOV d4+01H,A
; SOURCE LINE # 16
001D EF MOV A,R7
001E 75F002 MOV B,#02H
0021 A4 MUL AB
0022 FF MOV R7,A
0023 ED MOV A,R5
0024 2404 ADD A,#04H
0026 FD MOV R5,A
0027 E4 CLR A
0028 3C ADDC A,R4
0029 CD XCH A,R5
002A C3 CLR C
002B 9F SUBB A,R7
002C FD MOV R5,A
002D 95F0 SUBB A,B
; SOURCE LINE # 18

002F 8D82 MOV DPL,R5
0031 F583 MOV DPH,A
;*************************************
;---- Variable 'Table' assigned to Register 'R4/R5' ----but here A!=R4,A=R5-B
;*************************************
0033 E4 CLR A
0034 93 MOVC A,@A+DPTR
0035 F500 R MOV d1,A
0037 7401 MOV A,#01H
0039 93 MOVC A,@A+DPTR
003A F500 R MOV d1+01H,A
; SOURCE LINE # 19
003C 7404 MOV A,#04H
003E 93 MOVC A,@A+DPTR
003F F500 R MOV d2,A
0041 7405 MOV A,#05H
0043 93 MOVC A,@A+DPTR
0044 F500 R MOV d2+01H,A
; SOURCE LINE # 20
0046 22 RET
/*****************************
if line 16 write as Line 17
then compiled OK
; SOURCE LINE # 17
001D EF MOV A,R7
001E 75F002 MOV B,#02H
0021 A4 MUL AB
0022 FF MOV R7,A
0023 C3 CLR C
0024 ED MOV A,R5
0025 9F SUBB A,R7
0026 FF MOV R7,A
0027 EC MOV A,R4
0028 95F0 SUBB A,B
002A CF XCH A,R7
002B 2404 ADD A,#04H
002D FD MOV R5,A
002E E4 CLR A
002F 3F ADDC A,R7

Parents Reply Children
No data