河南工院2011~2012学第二学期期中考试《ARM体系结构与编程》试卷(A)卷适用专业计算机应用1103考试方式:闭卷□开卷□考试时间:90分钟班级应用1103姓名薛彬伟学号0601110309成绩命题审题允许使用计算器是□否□1.用汇编语言实现下列程序(共30分)用ARM汇编实现0+2+4+6+……+100的和,结果放入r5中movr1,#0movr2,#2loop:addr1,r1,r2BLTr1,#100loopmovr5,r1end2.用汇编语言实现下列程序(共30分)用ARM汇编语言求(r3+r5)*3-r2/2的值,把结果放入r1中addr1,r3,r5mulr1,r1,#3r2,r2,2subr1,r1,r23.分析下面程序段,在每句代码的后面写上注释(共40分)AREAInit,CODE,READONLY;声明一个段,名为Init,属性为只读ENTRY;EXPORT__ENTRY;__ENTRY;ResetEntry;ASSERT:DEF:ENDIAN_CHANGE[ENDIAN_CHANGE;ASSERT:DEF:ENTRY_BUS_WIDTH[ENTRY_BUS_WIDTH=32bChangeBigEndian;DCD0xea000007][ENTRY_BUS_WIDTH=16andeqr14,r7,r0,lsl#20;DCD0x0007ea00][ENTRY_BUS_WIDTH=8streqr0,[r0,-r10,ror#1];DCD0x070000ea]|bResetHandler;跳转第1页,共3页河南工院2011~2012学第二学期期中考试《ARM体系结构与编程》试卷(A)卷适用专业计算机应用1103考试方式:闭卷□开卷□考试时间:90分钟班级应用1103姓名薛彬伟学号0601110309成绩命题审题允许使用计算器是□否□]ResetHandlerldrr0,=WTCON;将WTOON的内容给r0ldrr1,=0x0`;把0x0r1strr1,[r0];将r1中的数据存储在r0的存储单元ldrr0,=INTMSK;j将INTMSKK的容给r0ldrr1,=0xffffffff;将0xffffffff给r1strr1,[r0];将r1中的数据存储在r0的存储单元ldrr0,=INTSUBMSK;将INTSUBMSK的内容给r0ldrr1,=0x7fff;把0x7fff作为值给r1strr1,[r0];将r1中的数据存储在r0的存储单元[{FALSE}ldrr0,=GPBCON;GPBCON中的内容给r0ldrr1,=0x00555555;把0x00555555作为值给r1strr1,[r0];将r1中的数据存储在r0的存储单元ldrr0,=GPBDAT;GPBDAT中的内容给r0ldrr1,=0x07fe;把0x07fe给r1strr1,[r0];将r1中的数据存储在r0的存储单元]ldrr0,=LOCKTIME;把LOCKTIME中的内容给r0ldrr1,=0xffffff;把0xffffff作为值给r1strr1,[r0];将r1中的数据存储在r0的存储单元[PLL_ON_START;ldrr0,=CLKDIVN;CLKDIVN中的内容给r0ldrr1,=CLKDIV_VAL;CLKDIV_VAL中的内容给r1strr1,[r0];将r1中的数据存储在r0的存储单元[CLKDIV_VAL>1;meansFclk:Hclkisnot1:1.;mrcp15,0,r0,c1,c0,0;orrr0,r0,#0xc0000000;R1_nF:OR:R1_iA;mcrp15,0,r0,c1,c0,0;|mrcp15,0,r0,c1,c0,0bicr0,r0,#0xc0000000;R1_iA:OR:R1_nFmcrp15,0,r0,c1,c0,0]ldrr0,=UPLLCON;UPLLCON中内容给r0ldrr1,=((U_MDIV<<12)+(U_PDIV<<4)+U_SDIV);strr1,[r0];将r1中的数据存储在r0的存储单元nop;Caution:AfterUPLLsetting,atleast7-clocksdelaymustbeinsertedforsettinghardwarebecompleted.Nop;延时nopnopnopnopnopldrr0,=MPLLCON;MPLLCON中的内容给r0ldrr1,=((M_MDIV<<12)+(M_PDIV<<4)+M_SDIV);Fin=12.0MHz,FCLK=400MHz第2页,共3页河南工院2011~2012学第二学期期中考试《ARM体系结构与编程》试卷(A)卷适用专业计算机应用1103考试方式:闭卷□开卷□考试时间:90分钟班级应用1103姓名薛彬伟学号0601110309成绩命题审题允许使用计算器是□否□strr1,[r0];将r1中的数据存储在r0的存储单元]ldrr1,=GSTATUS2;把GSTATUS2地址的内容给r1ldrr0,[r1];把r1作为地址取值,给r0tstr0,#0x2;判断r0的低位否为0bneWAKEUP_SLEEP;第3页,共3页