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

    (完整版)《ARM嵌入式系统结构与编程》第三章课后答案.pdf

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

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

    (完整版)《ARM嵌入式系统结构与编程》第三章课后答案.pdf

    第第 3 3 章章 ARMARM 指令集寻址方式指令集寻址方式1.1.在指令编码中,条件码占几位,最多有多少个条件,各个条件是如何形成的?在指令编码中,条件码占几位,最多有多少个条件,各个条件是如何形成的?答:条件码占 4 位,最多有 15 个条件操作码0000000100100011010001010110011110001001101010111100110111101111条件助记符标志EQNECS/HSCC/LOMIPLVSVCHILSGELTGTLEALNVZ=1Z=0C=1C=0N=1N=0V=1V=0C=1,Z=0C=0,Z=1N=VN!=VZ=0,N=VZ=1,N!=V任何任何含义相等不相等无符号数大于或等于无符号数小于负数正数或零溢出没有溢出无符号数大于无符号数小于或等于有符号数大于或等于有符号数小于有符号数大于有符号数小于或等于无条件执行(指令默认条件)从不执行(不要使用)2.2.指令条件码中,指令条件码中,V V 标志位在什么情况下才能等于标志位在什么情况下才能等于 1 1?答:V溢出标志位对于加减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时,V=1 表示符号位溢出,其他指令通常不影响V 位。3.在 ARM 指令中,什么是合法的立即数?判断下面各立即数是否合法,如果合法则写出在指令中的编码格式(也就是8 位常数和 4 位移位数)0 x54300 x1080 x3040 x5010 xfb100000 x3340000 x3FC0000 x1FE00000 x55800000 x7F800 0 x39C0000 x1FE80000答:立即数必须由 1 个 8 位的常数通过进行 32 位循环右移偶数位得到,其中循环右移的位数由一个4位二进制的两倍表示。即一个8位的常数通过循环右移2*rotate_4位(即0,2,4,。30)得到0X54300000,0000,0000,0000,0101,0100,0011,0000 非法立即数0X1080000,0000,0000,0000,0000,0001,0000,10000 x42 循环右移 30 位(rotate_4=0 xF)0X3040000,0000,0000,0000,0000,0011,0000,01000 xC1 循环右移 30 位(rotate_4=0 xF)0 x5010000,0000,0000,0000,0000,0101,0000,0001非法立即数0 xfb100000000,1111,1011,0001,0000,0000,0000,0000 非法立即数0 x3340000000,0000,0011,0011,0100,0000,0000,00000Xcd 循环右移 18 位(rotate_4=0 x9)0 x3FC0000000,0000,0011,1111,11 00,0000,0000,00000XFF 循环右移 18 位(rotate_4=0 x9)0 x1FE00000000,0001,1111,111 0,0000,0000,0000,0000非法立即数0 x55800000000,0101,0101,1000,0000,0000,0000,0000非法立即数0 x7F8000000,0000,0000,0111,1111,1 000,0000,0000非法立即数0 x39C0000000,0000,0011,1001,1100,0000,0000,00000XE7 循环右移 18 位(rotate_4=0 x9)0 x1FE800000001,1111,1110,1000,0000,0000,0000,0000 非法立即数4.分析逻辑右移,算术右移,循环右移,带扩展的循环右移它们间的差别。答:LSLLSL 逻辑左移逻辑左移:3100LSRLSR 逻辑右移逻辑右移:3100ASRASR 算术右移算术右移:310RORROR 循环右移循环右移:310RRXRRX 带扩展的循环右移:带扩展的循环右移:31C05.ARM 数据处理指令具体的寻址方式有哪些,如果程序计数器 PC 作为目标寄存器,会产生什么结果?答:数据处理指令寻址方式具体可分为5 种类型:1)第二操作数为立即数2)第二操作数为寄存器 3)第二操作数为寄存器移位方式且移位的位数为一个 5 位立即数 4)第二操作数为寄存器移位方式且移位数值放在寄存器中5)第二操作数位寄存器进行 RRX 移位得到。如果 PC(R15)用作目标寄存器,指令会产生不可预知的结果。6.在 Load/Store 指令寻址中,字,无符号字节的Load/Store 指令寻址和半字,有符号字节寻址,试分析它们之间的差别。答:在 Load/Store 指令寻址中,字,无符号字节的 Load/Store 指令寻址中共有以下 3 种内存地址构成格式:1)Addressing_mode 中的偏移量为立即数 2)Addressing_mode 中的偏移量为寄存器的值3)Addressing_mode 中的偏移量通过寄存器移位得到半字,有符号字节的 Load/Store 指令寻址中共有以下2 种内存地址构成格式:1)Addressing_mode 中的偏移量为立即数 2)Addressing_mode 中的偏移量为寄存器的值7.块拷贝 Load/Store 指令在实现寄存器组合连续的内存单元中数据传递时,地址的变化方式有哪几种类型,并分析它们的地址变化情况。答:批量 Load/Store 指令在实现寄存器组合连续的内存单元中数据传递时,地址的变化方式有以下 4 种类型:后增后增 IA(Increment After)IA(Increment After):每次数据传送后地址加:每次数据传送后地址加 4 4;先增先增 IB(Increment Before)IB(Increment Before):每次数据传送前地址加:每次数据传送前地址加 4 4;后减后减 DA(Decrement After)DA(Decrement After):每次数据传送后地址减:每次数据传送后地址减 4 4;先减先减 DB(Decrement Before)DB(Decrement Before):每次数据传送前地址减:每次数据传送前地址减 4 4;8.栈操作指令地址的变化方式有哪几种类型,并分析它们的地址变化情况,从而得出栈操作指令寻址和块拷贝 Load/Store 指令之间的对应关系。答:根据堆栈指针的指向位置不同和堆栈的生长方向不同,共有4 种类型的堆栈工作方式:满递增堆栈 FA:堆栈指针指向最后压入的数据,且由低地址向高地址生成。满递减堆栈 FD:堆栈指针指向最后压入的数据,且由高地址向低地址生成。空递增堆栈 EA:堆栈指针指向下一个要放入数据的空位置,且由低地址向高地址生成。空递减堆栈 ED:堆栈指针指向下一个要放入数据的空位置,且由高地址向低地址生成。9.分析协处理器加载/存储指令的寻址方式种的内存地址索引格式中不同的汇编语法格式下内存地址的计算方法。答:协处理器加载/存储指令的寻址方式种的内存地址索引格式中,索引格式类似于LDR/STR指令寻址中的立即数作为地址偏移量的形式。Addressing_mode 中的偏移量为 8 位立即数的汇编语法格式有以下 3 种:前变址不回写形式:,#+/-*4 第一个内存地址编号为基地址寄存器 Rn 值加上/减去 imm_offset8 的 4 倍,后续的每一个地址是前一个内存地址加4,直到协处理器发出信号,结束本次数据传输为止。前变址回写形式:,#+/-*4!第一个内存地址编号为基地址寄存器 Rn 值加上/减去 imm_offset8 的 4 倍,后续的每一个地址是前一个内存地址加 4,直到协处理器发出信号,结束本次数据传输为止。当指令执行时,生成的地址值将写入基址寄存器。后变址回写形式:,#+/-*4内存地址为基址寄存器 Rn 的值,当存储器操作完成后,将基地址寄存器Rn 值加上/减去 imm_offset8 的 4 倍,后续的每一个地址是前一个内存地址加 4,直到协处理器发出信号,结束本次数据传输为止。最后将 Rn 值加上/减去 imm_offset8 的 4 倍写回到基址寄存器 Rn(更新基地址寄存器)。1.写出下列指令的机器码,并分析指令操作功能。MOVR0,R1MOVR1,,0X198ADDEQS R1,R2,,0 xABCMPR2,#0XabLDRR0,R1,#4STRR0,R1,R1,LSL#2!LDRHR0,R1,#4LDRSB R0,R2,#-2!STRBR1,R2,#0Xa0LDMIA R0,R1,R2,R8STMDB R0!,R1-R5,R10,R11STMED SP!R0-R3,LR答:机器码部分略。MOVR0,R1;R0-R1MOVR1,,0X198;R0-0X198ADDEQS R1,R2,,0 xAB;当 Z=1 时,R1-R2+0 xAB 并影响标志位CMPR2,#0Xab;R2-0 xAB,并影响标志位LDRR0,R1,#4;R0-【R1+4】STRR0,R1,R1,LSL#2!;【R1+R1*4】-R0,R1=R1+R1*4LDRHR0,R1,#4;R0-【R1+4】半字,R0 的高 16 位清零LDRSB R0,R2,#-2!;R0-【R2-2】字节,R0 有符号扩展为 32 位,R2=R2-2STRBR1,R2,#0Xa0;【R2+0Xa0】-R1 低 8 位,LDMIA R0,R1,R2,R8;将内存单元【R0】【R+11】以字为单位读取到R1,R2,R8 中STMDB R0!,R1R5,R10,R11将寄存器 R1R5,R10,R11 的值以字为单位依次写入【R0】中,每写一个字之前R0=R04STMED SP!R0R3,LR将寄存器 R0R3,LR 的的值以字为单位依次写入【SP】中,每写一个字之后SP=SP4

    注意事项

    本文((完整版)《ARM嵌入式系统结构与编程》第三章课后答案.pdf)为本站会员(w***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




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

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

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

    收起
    展开