第1个回答 2009-03-18
00H~1FH为通用工作寄存器区
就是R0到R7,编程时多数忽略不计
20h~2fh为位寻址区 (汇编时非常宝贵)
多用作标志位
可以用SETB\CLR\JNB直接操作
例 FLAG EQU 20H.1
SETB FLAG
CLR FLAG
JB 20H.1,FLAG1
30h~7fh为用户RAM区 (汇编时非常珍贵,C语言自动分配)
多用作数据存储,但断电后数据会丢失
可以用MOV指令直接赋值
例 将数字#22H存入RAM的34H单元
MOV A,#22H
MOV 34H,A本回答被提问者采纳
第2个回答 2009-03-12
AT89C52
片内地址低128字节地址:
00h~1fh 寄存器地址 R1~R7 共4组 RS1 RS0设置
20h~2fh 为位存储区 位地址为00H~7FH
30h~7fh 字节地址 直接寻址 间接寻址均可
片内地址高128字节地址:
80H~0FFH 只能间址使用:
例:MOV R0,#80H
MOV @R0,#00H
另:
F0H=B
E0H=A
D0H=PSW
B8H=IP
B0H=P3口
A8H=IE
A0H=P2口
98H=SCON
90H=P1口
88H=TCON
80H=P0口
以上高128地址,直接使用为特殊寄存器,间址为字节地址
一般书上都有详细介绍~
第3个回答 2009-03-12
00H~1FH为通用工作寄存器区
就是R0到R7,编程时多数忽略不计
20h~2fh为位寻址区 (汇编时非常宝贵)
多用作标志位
可以用SETB\CLR\JNB直接操作
例 FLAG EQU 20H.1
SETB FLAG
CLR FLAG
JB 20H.1,FLAG1
30h~7fh为用户RAM区 (汇编时非常珍贵,C语言自动分配)
多用作数据存储,但断电后数据会丢失
可以用MOV指令直接赋值
例 将数字#22H存入RAM的34H单元
MOV A,#22H
MOV 34H,A