




免费预览已结束,剩余4页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
9第四章 ARM程序设计基础汇编语言程序示例Example1/Example1.DOC; 例一:数据块拷贝,利用LDR/STR指令; 项目名:Example1.mcp,文件名:Example1.sAREABlock,CODE,READONLYnumEQU10ENTRYstartLDRR0,=srcLDRR1,=dstMOVR2,#numblockcopyLDRR3,R0,#4STRR3,R1,#4SUBSR2,R2,#1BNEblockcopyB.AREABlockData,DATA,READWRITEsrcDCD 0,1,2,3,4,5,6,7,8,9dstSPACE10*4ENDExample2/Example2.DOC; 例二:数据块拷贝,利用LDM/STM指令; 项目名:Example2.mcp,文件名:Example2.sAREABlock,CODE,READONLYnumEQU20ENTRYstartLDRR0,=srcLDRR1,=dstMOVR2,#numMOVSP,#0x400blockcopyMOVSR3,R2,LSR#3BEQcopywordsSTMFDSP!,R4-R11octcopyLDMIAR0!,R4-R11STMIAR1!,R4-R11SUBSR3,R3,#1BNEoctcopyLDMFDSP!,R4-R11copywordsANDSR2,R2,#7BEQstopwordcopyLDRR3,R0,#4STRR3,R1,#4SUBSR2,R2,#1BNEwordcopystopB.AREABlockData,DATA,READWRITEsrcDCD0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9dstSPACE20*4ENDExample3/Example3.DOC;例三:ADR伪指令;项目名:Example3.mcp,文件名:Example3.sAREAadrlabel1,CODE,READONLYENTRYstartBLfuncB.LTORGfuncADRR0,startADRR1,DataArea;ADRR2,DataArea+4300ADRLR3,DataArea+4300MOVPC,LRDataAreaSPACE8000ENDExample4/Example4.DOC;例四:LDR伪指令;项目名:Example4.mcp,文件名:Example4.sAREALDRlabel1,CODE,READONLYENTRYstartBLfunc1BLfunc2B.func1LDRR0,=startLDRR1,=Darea+12LDRR2,=Darea+6000MOVPC,LRLTORGfunc2LDRR3,=Darea+6000LDRR4,=Darea+6004MOVPC,LRDareaSPACE8000ENDExample5/Example5.DOC;例五:利用跳转表实现程序跳转;项目名:Example5.mcp,文件名:Example5.sAREAJump,CODE,READONLYnumEQU2ENTRYstartMOVR0,#0MOVR1,#3MOVR2, #2BLarithfuncB.arithfuncCMPR0,#numMOVHSPC,LRADRR3,JumpTableLDRPC,R3,R0,LSL #2JumpTableDCDDoAddDCDDoSubDoAddADDR0,R1,R2MOVPC,LRDoSubSUBR0,R1,R2MOVPC,LRENDExample6/Example6.DOC;例六:基于S3C4510B的串行通信程序;项目名:Example6.mcp,文件名:Example6.s;Define Special Function RegisterIOPMODEQU0x3FF5000IOPDATAEQU0x3FF5008UARTLCON0EQU0x3FFD000UARTCONT0EQU0x3FFD004UARTSTAT0EQU 0x3FFD008UTXBUF0EQU0x3FFD00CUARTBRD0EQU0x3FFD014AREA Init,CODE,READONLYENTRY;LED DisplayLDRR1,=IOPMODLDRR0,=&ffSTRR0,R1LDRR1,=IOPDATALDRR0,=&ffSTRR0,R1;UART0 line control registerLDRR1,=UARTLCON0LDRR0,=0x03STRR0,R1;UART0 control regiserLDRR1,=UARTCONT0LDRR0,=0x9STRR0,R1;UART0 baud rate divisor regiser;Baudrate=19200,对应于50MHz的系统工作频率LDRR1,=UARTBRD0LDRR0,=0x500 STRR0,R1;Print the messages!LOOPLDRR0,=Line1BLPrintLineLDRR0,=Line2BLPrintLineLDRR0,=Line3BLPrintLineLDRR0,=Line4BLPrintLineLDRR1,=0x7FFFFFLOOP1SUBSR1,R1,#1BNELOOP1BLOOP;Print line PrintLineMOVR4,LRMOVR5,R0LineLDRBR1,R5,#1ANDR0,R1,#&FFTSTR0,#&FFMOVEQPC,R4BLPutByteBLinePutByteLDRR3,=UARTSTAT0LDRR2,R3TSTR2,#&40BEQPutByteLDRR3,=UTXBUF0STRR0,R3MOVPC,LRLine1DCB&A,&D,0123456789*,0Line2DCB&A,&D,ABCDEFGHIJKLMNOPQRSTUVWXYZ,0Line3DCB&A,&D,abcdefghijklmnopqrstuvwxyz.,0Line4 DCB &A,&D,0END3、存储器从0x400000开始的100个单元中存放着ASCII码,编写程序,将其所有的小写字母转换成大写字母,对其它的ASCII码不做变换。解:MOVR0,#0x400000MOVR1,#0LPLDRBR2,R0,R1CMPR2,#0x61BLONEXTCMPR2,#0x7B;0x61-0x7A为小写字母的ASCSUBLOR2, R2,#0x20STRBLOR2,R0,R1NEXTADDR1, R1,#1CMPR1,#100BNELP8、编写一简单ARM汇编程序段,实现1+2+100的运算。解:MOVR2,#100MOVR1,#0LOOPADDR1,R1,R2;R1中为累加和SUBSR2,R2,#1;R2控制循环BNELOOP4、编写程序,比较存储器中0x400000和0x400004两无符号字数据的大小,并且将比较结果存于0x400008的字中,若两数相等其结果记为0,若前者大于后者其结果记为1,若前者小于后者其结果记为-1。解:MOVR0,#0x400000LDRR1,R0;取第1个数 LDRR2,R0,#4 ;取第2个数 CMPR1,R2;两个数相比较MOVHIR1,#1;R1大 MOVLOR1,# -1;R1小 MOVEQR1,#0;两个数相等 STRR1,R0,#8 7、编写一程序,存储器中从0x400200开始有一个64位数。(1)将取反,再存回原处;(2)求其补码,存放到0x400208处 。解:LDRR0,=0x400200LDRR2,=0xFFFFFFFFLDRR1,R0;取低32位数 EORR1,R1,R2;取反STRR1,R0;存低32位反码 ADDSR1,R1,#1;又加1为求补STRR1,R0,#8 ;存低32位补码LDRR1,R0,#4 ;取高32位数 EORR1,R1,R2;取反STRR1,R0,#4 ;存高32位反码 ADCR1,R1,#0;高32位求补STRR1,R0,#12 ;存高32位补码Example7Example7.OC例七:汇编语言与C/C+的混和编程项目名:Example7.mcp文件名:Example7_asm.s文件名:Example7_c.c;Example7_asm.sAREAAsm_C,CODE,READONLYENTRYLDRSP,=0x4000IMPORT_mainBL_mainB.END#include int main()printf(Hell
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车险核保考试题及答案
- 发展新质生产力的
- 福建新质生产力发展计划
- 新质生产力赋能出版业
- 民族英雄戚继光课件
- 民族舞蹈基本功训练课件
- 植树节活动方案(模板)
- 数字科技赋能新质生产力
- 2025年妇产科超声常见疾病诊断模拟考试答案及解析
- 科学家视角:新质生产力的创新密码
- 2025三门县国企招聘考试题目及答案
- 2025-2030红色旅游行业市场发展现状及发展前景与投资机会研究报告
- 植筋施工方案 全
- 2025四川省前期物业服务合同示范文本
- 法院舆情风险防控课件
- 动态系统仿真技术-全面剖析
- 护理人员绩效考核制度
- 人教版六年级语文上册教学计划(含进度表)
- 苏教版科学五年级上册全册教案(含反思)
- 餐饮服务与数字化运营 习题及答案 项目六
- 天津地铁设备管理制度范文
评论
0/150
提交评论