当前位置:首页 > 内存 > 正文

内存储器每一个单元

  • 内存
  • 2024-06-02 06:06:20
  • 8373

一、编程将片内数据存储器(30H)中数据传送到片外(3000H)的地址单元中上面的程序有一个错误。片外数据已被覆盖
mov
dptr,
#3000h
;设置片外地址
movx
a,
@dptr
;取数据到a
xch
a,
30小时
;与片内30小时单位交换
movx
@dptr,
a
;发送到片外
end
二、8051单片机片内数据存储器的三个存储区域是如何划分的8051的内部数据RAM区域包括工作寄存器组区域、直接位寻址区域和数据缓冲区。
(1)00H~1FH为工作寄存器组区,分为4组。每组占用8个RAM字节单元。每个单元都用作工作寄存器。每组8个单元定义为。8个工作寄存器R0~R7。
(2)20H~2FH为位寻址区域。这16个字节的每一位都有一个地址,地址为00H~7FH。
(3)30H~7FH为堆栈和数据缓冲区。


三、把片内数据存储器从50H开始的30个单元的内容清0,程序如何写?//汇编
RamStartEQU50H
ClrCountEQU30H
ORG0000H
AJMPMain
Main:
MOVClrCount,#30
RamClr:
MOVRamStart+ClrCount,#00
DJNZClrCount,RamClr
...
...
//C语言
#defineUSER_ADDR(*(volatileunsignedchar*))0x50
voidClrRam()
{
inti;
for(i=0;i<30;i++)
USER_ADDR+i=0;
main()
{
ClrRam();
}