嵌入式汇编语言实验1.ppt





《嵌入式汇编语言实验1.ppt》由会员分享,可在线阅读,更多相关《嵌入式汇编语言实验1.ppt(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、*河南理工大学通信工程河南理工大学通信工程15.2.5 ARM汇编程序实例 例例1.1.数据块复制数据块复制例例2.2.数据简单运算数据简单运算(1)计算1+2+3+.+100的结果。程序清单:AREA sum,CODE,READONLY MOV R0,#0 ;初始化R0=0 MOV R2,#1 ;设置R2=0;R2控制循环次数 FOR CMP R2,#100 ;判断R2100?BHS FOR_E ;若条件失败,退出循环 ADD R0,R0,R2 ;循环体,R0=R0+R2 ADD R2,R2,#1 ;R2=R2+1 B FOR FOR_E LDR R1,#0X40000000;STR R2,
2、R1 ;保存结果到数组第9项 END 程序清单:AREA Buf,DATA,READWRITE ;定义数据段BufArray DCD 0 x11,0 x22,0 x33,0 x44 ;定义12个字的数组Array DCD 0 x55,0 x66,0 x77,0 x88 DCD 0 x00,0 x00,0 x00,0 x00 AREAExample,CODE,READONLY ENTRYCODE32LDR R0,=Array ;取得数组Array首地址LDR R2,R0 ;装载数组第1项字数据给R2MOV R1,#4LDR R3,R0,R1,LSL#2 ;装载数组第5项字数据给R3ADD R2,
3、R2,R3 ;R2+R3R2MOV R1,#8 ;R1=8STRR2,R0,R1,LSL#2 ;保存结果到数组第9项 END*河南理工大学通信工程河南理工大学通信工程4数据块复制数据块复制 例例1 1:程序将数据从源数据区:程序将数据从源数据区srcsrc复制到目标数据区复制到目标数据区dstdst复复制时制时,以以8 8个字为单位进行。对于最后所剩不足个字为单位进行。对于最后所剩不足8 8个字的数据个字的数据,以字为单位进行复制以字为单位进行复制,这时程序跳转到这时程序跳转到copywordscopywords处执行。在处执行。在进行以进行以8 8个字为单位的数据复制时个字为单位的数据复制时
4、,保存了所用的保存了所用的8 8个工作寄个工作寄存器。存器。在在ADSADS编译环境下编译环境下,程序如下:程序如下:*河南理工大学通信工程河南理工大学通信工程5数据块复制汇编程序实例数据块复制汇编程序实例 AREA AREAB1ock,CODE,READONLY;B1ock,CODE,READONLY;设置本段程序的名称及属性设置本段程序的名称及属性NUMNUMEQU 20 EQU 20 ;设置将要复制的字数设置将要复制的字数 ENTRY ENTRY ;标识程序人口点标识程序人口点 LDR R0,=LDR R0,=srcsrc ;R0;R0寄存器指向源数据区寄存器指向源数据区srcsrc L
5、DR R1,=LDR R1,=dstdst ;RlRl寄存器指向目标数据区寄存器指向目标数据区dstdst MOVMOV R2,#NUM R2,#NUM ;R2;R2指定将要复制的宇数指定将要复制的宇数 MOVMOV SP,#&400 SP,#&400 ;设置数据栈指针设置数据栈指针,用于保存工作寄存器数值用于保存工作寄存器数值BcopyBcopy MOVS R3,R2,LSR#3;MOVS R3,R2,LSR#3;需要进行的以需要进行的以8 8个字为单位的复制次数个字为单位的复制次数 BEQ BEQ CwordCword ;不足不足8 8个字的数据个字的数据,跳转到跳转到CwordCword
6、以字为单位复制以字为单位复制 STMFD SP!,R4-R11 ;STMFD SP!,R4-R11 ;保存工作寄存器保存工作寄存器OcopyOcopy LDMIA R0!,R4-R11 ;LDMIA R0!,R4-R11 ;从源数据区读取从源数据区读取8 8个字的数据个字的数据,放到放到8 8个寄个寄 ;存器中存器中,并更新目标数据区指针并更新目标数据区指针R0R0 STMIA R1!,R4-R11;STMIA R1!,R4-R11;将这将这8 8个字数据写入到目标数据区中并更新个字数据写入到目标数据区中并更新 ;目标数据区指针目标数据区指针R1R1 SUBS R3,R3,#1 ;SUBS R
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 汇编语言 实验

限制150内