unSPIDE上机练习实验程序章).pptVIP

  • 24
  • 0
  • 约3.16千字
  • 约 40页
  • 2018-04-06 发布于未知
  • 举报
* 上机练习实验程序 (教材第七章) 例1: 1到100的累加,观察各个寄存器、变量 //demo01 1到100的累加 //观察各个寄存器、变量 .ram //定义预定义RAM段 .var R1_Sum,R2_Sum; //定义两个变量 .code //定义代码段 .public _main; //对MAIN程序声明 _main: //MAIN程序开始 r1=0x0001; //向R1寄存器赋值 r2=0x0000; //向R2寄存器赋值 L_Sumloop: r2+= r1; //R1和 R2值的和再赋值给 R2 r1+= 1; //R1的值自加一 [R1_Sum]=r1; //将 R1内的值赋给变量R1_SUM [R2_Sum]=r2; //将 R2内的值赋给变量R2_SUM cmp r1,100; //将 R1内的值与100比较 jna L_Sumloop; //不相等时跳转到 L_Sumloop L_SumEndLoop: //程式结束的死循环 jmp L_SumEndLoop; 例2: 立即数加法、寄存器加减、两单元数据交换 单步运行,观察寄存器、存储器、变量 //demo 02 立即数加法、寄存器加减、两单元数据交换 //观察寄存器、存储器 .ram .var sum1,sum2; //定义两个变量 .code //定义代码段 .public _main; //对MAIN程序声明 _main: //MAIN程序开始 r1=0x1235; //向R1寄存器赋值 r2=0x0001; //向R2寄存器赋值 r3=r2+0x1233; //将R2内的值加上立即数1233H, 赋给 R3 R4=r1-0x0001; //将R1内的值减去立即数0001H, 赋给 R4 r1-=r2; //R1,R2内的值相减后得到的值再赋给 R1 [sum1]=r1; //将 R1内的值赋给变量 SUM1 loop1: r4+=1; //将 R4内的值自加 1 cmp r4,0x5678; //将R4内的值与 5678H比较 jne loop1; //不相等时跳转到 L00P1 [sum2]=r4; //否则将 R4内的值赋给变量 SUM2 endloop: jmp endloop; //结束循环 例3: 数据传送实验,将DATA1的数据搬到DATA2里面去, 观察存储器两个数据块的变化 例4: 冒泡法排序 观察变量i,j,t,存储器 //demo 04 冒泡法排序(小的在前面,大的在后面) //观察变量i,j,t,存储器0x0000 main() { static int f[10]={5,89,40,12,55,32,18,46,77,21};//10个排序的数 int i,j,t; for (j=0;j=9;j++)//外循环 for (i=0;i=9-j;i++)//内循环 if (f[i]f[i+1]) {t=f[i];f[i]=f[i+1];f[i+1]=t;} //排好的数在t内 } 例5: 用实时中断源定时 通过分频产生2Hz、4Hz、1024Hz、2048Hz以及4096Hz的时基信号,为中断系统提供各种实时中断源(IRQ4和IRQ5)信号。 A口初始化 设置IRQ4中断 开中断 清中断 延时 [ver]=1 返回 返回

文档评论(0)

1亿VIP精品文档

相关文档