[求助]菜鸟求助c51编程:这是我自己写的一个单片机试验程序,题目原要求将外部数据存储区的2000H-20FFH的内容清零,为直观我将其置为88H,编译没出问题,但在执行时观察到不执行for循环,到软件仿真的数据区0x2000地址处没有看到数据变化,没有实现预定目的。后面的汇编程序是正确的,贴出来以方便大侠理解此程序的意图。请各位大侠指教。谢谢
unsigned int data *m _at_ 0x0030;
unsigned int xdata x _at_ 0x2000;
# include <Reg51.h>
main()
{
unsigned char data count=0;
m = &x;
for(count=0;count <=255;count++)
{*m=0x88;
m++;
}
while(1) ;
}
汇编:
ORG 64H
S1 :MOV R0,#00H
MOV DPTR,#2000H
MOV A,#88H
LOOP1:MOVX @DPTR,A
INC DPTR
INC R0
CJNE R0,#00H,LOOP1
SJMP $
END