NAME POINTER
?PR?main?POINTER SEGMENT CODE ?C_INITSEG SEGMENT CODE ?XD?POINTER SEGMENT XDATA ?DT?POINTER SEGMENT DATA EXTRN CODE (?C_STARTUP) PUBLIC a? PUBLIC p1 PUBLIC p0 PUBLIC main
RSEG ?XD?POINTER p0: DS 3 p1: DS 3 //p0、p1均定义到xdata区,3字节通用指针。
RSEG ?DT?POINTER a?: DS 1
RSEG ?C_INITSEG DB 001H DB a? DB 020H
; #pragma src ; ; #define uchar unsigned char ; ; xdata unsigned char * p0; ; ; unsigned char * xdata p1 ; ; ; uchar a=0x20; ; ; void main()
RSEG ?PR?main?POINTER main: USING 0 ; SOURCE LINE # 11 ; { ; SOURCE LINE # 12 ; ; p0=&a; ; SOURCE LINE # 14 MOV DPTR,#p0 CLR A MOVX @DPTR,A INC DPTR MOV A,#HIGH (a?) MOVX @DPTR,A INC DPTR MOV A,#LOW (a?) MOVX @DPTR,A ; p1=&a; ; SOURCE LINE # 15 MOV R1,A INC DPTR CLR A MOVX @DPTR,A INC DPTR MOV A,#HIGH (a?) MOVX @DPTR,A INC DPTR MOV A,R1 MOVX @DPTR,A // p0、p1都是3字节通用指针间接寻址。完全一样。 ; ; } ; SOURCE LINE # 17 RET ; END OF main
END
|