首页 > 编程知识 正文

单片机data,sfr单片机

时间:2023-05-04 08:41:46 阅读:124599 作者:732

c语言指针的说明以*为分隔符,

“*”之前的存储类型限定-指针指向的对象数据的存储位置;

限定“*”之后的存储类型-指针本身所在的存储位置。

所以unsignedcharxdata*p; 与xdataunsignedchar*p不同。 说明的有两件事。

然后:

xdataunsignedchar*p; 无符号char * xdatap; 完全一样。

因为c的写法允许“最前面的存储类型修饰符修饰最后的对象”。

看看下面的步骤示例。

; unsignedcharxdata*p0;

; xdataunsignedchar*p1;

; uchara=0x20;

; Void主() )

; {

; p0=a;

; p1=a;

; }

NAMEPOINTER

? 宣传? 主要吗? POINTERSEGMENTCODE

? C_INITSEGSEGMENTCODE

? DT? POINTERSEGMENTDATA

? XD? POINTERSEGMENTXDATA

扩展代码(? C_STARTUP )

PUBLICa?

公共P1

公共P0

公共主

罗格? DT? POINTER

p0:DS2//p0指针在data区域中定义。

A?DS1

罗格? XD? POINTER

p1:DS3//p1指针在xdata区域中定义。

罗格? C_INITSEG

DB001H

DBa?

DB020H

; #pragmasrc

罗格? 宣传? 主要吗? POINTER

main:

; SOURCELINE#11

; {

; SOURCELINE#12

; p0=a;

; SOURCELINE#14

MOVp0,#high(A? )

MOVp0 01H,#low(a? //p0-2字节指针即时寻址

; p1=a;

; SOURCELINE#15

MOVDPTR,#p1

CLRA

MOVX@DPTR,a

INCDPTR

MOVA,#high(A? )

MOVX@DPTR,a

INCDPTR

MOVA,#low(a? )

MOVX@DPTR,A//p1-3字节公共指针间接寻址。

; }

; SOURCELINE#17

RET

; 主结束

结束

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。