单片机程序试题(压根不懂,谢谢高手啊~~)

来源:百度知道 编辑:UC知道 时间:2024/05/28 04:37:26
12. 在BUF 为首址的片外RAM 存放一个以FFH 为结束符的数组。以下程序将该数组的存放区域清零,保留结束符FFH,请补全此程序,并使用μVision2 集成开发环境进行软件
仿真。
MOV DPTR,#BUF
LOOP:
MOVX A,@DPTR
INC DPTR
SJMP LOOP
SJMP $
14. 试编写程序,完成x=y+z 和x=y-z 的功能。其中,y=24680,z=13579。并使用μVision2
集成开发环境进行软件仿真。
16. 试编写程序,完成x=-yz 和x=-y/z 的功能。其中,y=246.80,z=135.79。并使用μVision2
集成开发环境进行软件仿真。
18. 举例说明汇编和C-51 程序是如何设置变量所处的存储器区域的
20. 如C-51 程序定义了“unsigned long i;”,变量i 占用了几个字节?在哪个存储器区域?
字节顺序如何?如为“unsigned long idata i;”又在哪个存储器区域?
其实我是学文科的,可是不小心选错了选修课,选到了单片机,老师讲的我一个字都听不懂,自己也看过书,看不明白,这才来求助高人的,谢谢大家啊~~

关于12:
MOV DPTR,#BUF
LOOP:
MOVX A,@DPTR
CJNE A, #0FFH,ABC
SJMP ABC1
ABC: MOV A, #00H
MOVX @DPTR, A
INC DPTR
SJMP LOOP
ABC1:
SJMP $

关于14:

void main()
{
unsigned int x,y,z;
y=24680;
z=13579;
x=y+z;
}
void main()
{
unsigned int x,y,z;
y=24680;
z=13579;
x=y-z;
}

关于16:

void main()
{
float x,y,z;
y=246.80;
z=135.79;
x=-(y*z);
}
void main()
{
float x,y,z;
y=246.80;
z=135.79;
x=-(y/z);
}

关于18:
C-51:DATA--直接访问的内部存储器
IDATA--间接访问的内部存储器
PDATA--分页访问的外部存储器
XDATA--外部存储器
对应于汇编的话,为XDATA---MOVX A,@DPTR
PDATA--MOVX A,@Ri
IDATA-- MOV A, @Ri
DATA-- MOV A, Ri

关于20
占用了4个字节。默认为DATA区