实验1 存储器块清零程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验1 存储器块清零程序

一、实验要求

指定存储器中某块的起始地址和长度,将其内容清零。

二、实验目的

1、学习使用模拟软件,编辑简单程序;

2、掌握存储器的读写方法;

3、了解存储器块操作块操作方法

三、实验内容

1、实验步骤

启动PC机,打开uVision2软件。

创建工程Project文件,然后创建main.c源程序,。实现对数据块Da[10]的清零函数ClearDataZone:

void ClearDataZone(unsigned char* Data,int n)

{

}

int main()

{

unsigned char Da[10]={0,1,2,3,4,5,6,7,8,9};

ClearDataZone(Da,10);

while(1);

}

2、对代码进行编译,编译无误后,进入Debug运行程序,打开数据窗口(DATA),点击暂停按钮,观察要清零的数据区是否被清零。同时打开反汇编代码窗口,找出这段C代码用到的汇编指令有哪些?并对反汇编代码截图。

指令:

MOV SJMP LJMP ORL CLR JNZ JZ LCALL DEC

3、针对2中你看到的每一句汇编代码写出相应的含义,并标出。

C:0x011B 7808 MOV R0,#0x08

含义:将0x08这个数据传送到R0寄存器中

C:0x0138 12013D LCALL ClearDataZone(C:013D)

含义:长调用指令,调用ClearDataZone函数

C:0x013B 80FE SJMP C:013B

含义:短转移指令

C:0x0144 1D DEC R5

含义:减1指令。将R5寄存器中的数据减一

C:0x0145 7001 JNZ C:0148

含义:若不为0就跳转

C:0x014A 6010 JZ C:015C

含义:若为0就跳转

C:0x0149 4C ORL A,R4

含义:逻辑或指令。将A和R4寄存器中的数据做或运算,所得结果放在R4中。C:0x0156 E4 CLR A

含义:清0指令

四、实验总结

懂得了实验里边一些汇编代码所包含的意思。

相关文档
最新文档