欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2023年-实验九 ARM数据处理指令数据加载存储指令实验.docx

    • 资源ID:96075918       资源大小:32.35KB        全文页数:8页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2023年-实验九 ARM数据处理指令数据加载存储指令实验.docx

    实验九ARM数据处理指令/数据加载存储指令实验1、实验目的掌握基本的数据处理指令使用方法,并能够完成简单的数据处理操作学会使用条件码标志掌握基本的单寄存器传送指令和多寄存器传送指令的使用方法2、实验内容任务一:ARM运算指令的使用(1)请按以前实验要求创建项目,并添加exp5.s源文件,文件内容如下,要求补充完整代码:£jJexp5_l_l. sm叵|区| 1 iq J Path: D:tempadsnewprojectnewproexp5_l_l.s ;expb_lSTART_l.s源程序 AREA Labi, CODE, ENTRYREADONLYSTOPooooVWR0z#0x3FRlz#0x2CR2,#0xl0R3,#0x5;计算口4=山+1?1;计算R5=RO-R1并更新标志位 ;W£R6=R1-RO并更新标志位;计算R7=R2+8R3BENDSTOPLine 16 Col 9(2)然后再通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,核对程序的准确性。任务二:利用数据处理指令实现位处理(1)在项目中删除exp5.s,并添加exp5_2.s源文件,文件内容如下,同样要求补充完整代码,目的在于将Ox3FCO的第4-11位用OxDD替换,即 变成 Ox3DDO:;- exe5_2_l.s13回区t empadsnewprojectnewproexe5_2_l.;exp5_2STARTl.s源程序 AREA Lab2, CODE,ENTRYREADONLYVVVOOOMMMRl,#0x3FC0 R2z#0xFF0 R3z#0xDD;要被替操的数;用在掩码BMOICOVRR;清除0x3FC0中对应枚,使其成为0x3000|;通过移位,将UxDD与要替换的位域对齐;将对应位置入目的操作数R1STOPB STOPENDLine 9 Col 64(2)然后阅读代码手工计算每一步的执行结果,并填入表1中(注意只需完成START部分的代码即可)。完成后再通过单步运行程序,观察相关寄存器 和存储器相应地址上的值的变化情况,核对和之前你在表上填的值是否一致。执行File->Reload Current Image命令可以重新加载和运行当前映像文件。 表1 exp5_2_l.s单步运行结果序号执行指令指令执行后的变化情况(用十六进制表示)寄存器R1R2R3R1500x()0x()0x()0x800()10x3FC00x00x00x80042Ox3FCO0XFF00x00x80083Ox3FCOOXFFOOxDD0x800C40x3000OXffOOxDD0x801050x3000OXfTOOxddO0x801460x3dd0OxffOOxddO0x8018任务三:乘法指令的使用(1)在项目中删除exp5_2.s,并添加exp5_3.s源文件,文件内容如下,同样要求补充完整代码:(2)然后阅读代码手工计算每一步的执行结果,并填入表2中(注意只需完成START部分的代码即可)。完成后再通过单步运行程序,观察相关寄存器 和存储器相应地址上的值的变化情况,核对和之前你在表上填的值是否一致。执行File->Reload Current Image命令可以重新加载和运行当前映像文件。表2 exp5_3_l.s单步运行结果序号执行指 令指令执行后的变化情况(用十六进制表示)寄存器R0RIR2R3R4R5R6R7R8R9R10R1500x00x00x00x00x00x00x00x00x00x00x00x80001()x3F0x800420x3F0x3D0x800830x3F0x3DOXffOOOOOO0x8()()c40x3f0x3dOxff,OOOOOOOx3fcO0x801050x3f0x3dOxffOOOOOOOx3fcOOxfO30x801460x3f0x3dOxffOOOOOOOx3fcO0xf420x801870x3f0x3dOxffOOOOOO0x3fc00x400000000x801c80x3f0x3dOxffOOOOOO0x3fc00x40000000Ox3f8O0x802090x3f0x3dOxffOOOOOO0x3fc00x40000000OxffffffcO0x8024任务四:ARM单寄存器传送指令的使用(1)在项目中删除exp5_3.s,并添加exp6.s源文件,文件内容如下: 母 if Path: D:tempadsnewprojectne. . exp6_l_l. !二 g;exp6_l_l .s 源程序AREA Labi, CODE, READONLY ;ENTRYSTARTADR RIzSRC;R1 指向SRC(2)ADR R2, DST加2指向口51COPYLDR RO, RI;加戟第一个字STR R0,R2;将它存入DSTADD RI,RI,#0x4ADD R2,R2z#0x4LDR RO,RISTR R0zR2ADD R2,R2,#0x4LDR RO,RISTR RO,R2STOPB STOPSRCDST 1DCB "one small!"ALIGN;(4)DCB "three big"源数据(3);目标数据1END44Line 24Col 111±11i S exp6_l_l.s13回区程序解读: 程序的功能是将存储器SRC处的源数据通过数据传送指令送到DST处 代码(2)伪指令ADR是将一个寄存器相关表达式或程序相关表达式的地址存入寄存器,在例子中相当于使R1指向SRC地址,R2指向DST地址, 即初始化地址指针; 代码(3) DCB的作用是分配一组字节内存并定义其内容为指定字符串,也可以用“二”代替。例如:SRC = "one small”DST =" three big ” 代码(4) ALIGN的作用是以字边界对齐当前内存段。注:伪指令并不是ARM的汇编语言,没有相应的机潜码,它是由汇编器提供的,在程序中的作用是为程序做准备工作。另外,不同的汇编器支持的伪指 令可能不同。(2)请先阅读程序,手工计算每一步的执行结果,并填入表3中(注意只需完成START部分的代码即可)。然后再通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,核对和之前你在表上填的值是否一致。执行File->Reload Current Image命令可以重新加载和运行当前映像文件。 表3 exp6_l_l.s单步运行结果序号指向指 令指令执行后的变化情况寄存器(值用十六进制表示)存储器(值用十六进制表示)R0RIR2PC0x80300x80310x80320x80330x80340x80350x80360x80370x80380x803900x00x00x00x80000x740x680x720x650x650x200x620x690x670x2110x80300x800420x803c0x800830x20656e6f0x8()()c40x80100x6f0x6e0x650x2050x80340x801460x80400x801870x6c6l6d730x801c80x80200x730x6d0x61Ox 6c90x80440x8024100x802811Ox802c任务五:多寄存器存储/加载指令的使用(1)在项目中删除exp6.s,并添加exp6_2.s源文件,文件内容如下:泡exp6_2_ls目回区|、h . 母 d' Path: D: tempadsnewpr. . . exp6_2_l. s ;expb_2START_1.S源程序AREA Lab2zCODE, READONLY |s D R R R R RFR M D D D V R D D D D D o T L L A A A M sR 1 2 3 s (R R R LENTRYSTOPB STOPAREA DblockzDATA;(1)NUM DCD 0x12,0x34,0x56,0x78;(2)ENDLine 2 Col 36 < |程序解读: 程序的功能是计算给定数组各项和的平均值,方法是先将数据各项加载到寄存器中,然后利用数据处理指令计算,最后再将结果存入存储器中。 代码(1)定义一个名为Dblock的数据区域。 代码(2)伪指令DCD的作用是分配一组字内存并定义其内容,分配的内存一定是4的倍数。也可以用“&”代替,例如:NUM &0xl2 0x34,0x56,0x78 (2)请先阅读程序,手工计算每一步的执行结果,并填入表4中(注意只需完成START部分的代码即可)。然后再通过单步运行程序,观察相关寄存器和存储器相应地址上的值的变化情况,核对和之前你在表上填的值是否一致。执行File->Reload Current Image命令可以重新加载和运行当前映像文件。表4 exp6_2_l.s单步运行结果序号执行指 令指令执行后的变化情况寄存器(值用十六进制表示)存储器(值用十六进制表示)R0R1R2R3R4SPPC0x80240x80280x802C0x80300x803800x()0x()0x()0x()0x()0x()0x800()0x120x340x560x780x1010x00x00x00x00x00x80240x80040x120x340x560x780x1020x120x340x560x78Oxe8OOe8OO0x80380x8008Ox 120x340x560x780x1030x120x340x560x780x460x80380x800c0x120x340x560x780x1040x120x340x560x780x9c0x80380x80100x120x340x560x780x1050x120x340x560x780x9c0x80380x80140x120x340x560x780x1060x120x340x560x780x270x80380x80180x120x340x560x780x1070x120x340x560x780x270x80380x801c0x120x340x560x780x27任务六:程序改进(1)实验exp6.s是零变址形式,请将其程序分别改为前变址和后变址形式。说明:零变址寻址:LDR R(),R1前变址寻址:LDRROJR1,#4后变址寻址:LDR RO, Rl,#4(2)利用多寄存器传送指令修改exp6_l_l.s程序。

    注意事项

    本文(2023年-实验九 ARM数据处理指令数据加载存储指令实验.docx)为本站会员(太**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开