《ARM嵌入式系统结构与编程》第三章课后答案_第1页
《ARM嵌入式系统结构与编程》第三章课后答案_第2页
《ARM嵌入式系统结构与编程》第三章课后答案_第3页
《ARM嵌入式系统结构与编程》第三章课后答案_第4页
《ARM嵌入式系统结构与编程》第三章课后答案_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第3章ARM指令集寻址方式1.在指令编码中,条件码占几位,最多有多少个条件,各个条件是如何形成的? 答:条彳码占4位,最多有15个条件操作码条件助记符标志含义0000EQZ=1相等0001NEZ=0不相等0010CS/HSC=1无符号数大于或等于0011CC/LOC=0无符号数小于0100MIN=1负数0101PLN=0正数或零0110VSV=1溢出0111VCV=0没有溢出1000HIC=1,Z=0无符号数大于1001LSC=0,Z=1无符号数小于或等于1010GEN=V有符号数大于或等于1011LTN!=V有符号数小于1100GTZ=0,N=V有符号数大于1101LEZ=1,N!=V有符号

2、数小于或等于1110AL任何无条件执行(指令默认条件)1111NV任何从不执行(不要使用)2.指令条件码中,V标志位在什么情况下才能等于1?答:V溢出标志位对于加减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时,V=1表示符号位溢出,其他指令通常不影响V位。3.在ARM指令中,什么是合法的立即数?判断下面各立即数是否合法,如果合法则写出在指令中的编码格式(也就是8位常数和4位移位数)0x5430 0x1080x3040x5010xfb100000x3340000x3FC0000x1FE00000x55800000x7F800 0x39C0000x1FE80000答:立即数必须由1个

3、8位的常数通过进行 32位循环右移偶数位得到,其中循环右移的位数由一个4位二进制的两倍表示。即一个8位的常数通过循环右移2*a213_4位(即0,2,4,。30)得到0X54300000,0000,0000,0000,0101,0100,0011,0000 非法立即数0X1080000,0000,0000,0000,0000,00 01,0000,1000 0x42 循环右移 30 位 (rotate_4=0xF)0X3040000,0000,0000,0000,0000,00 11,0000,01000x5010xC1循环右移30 位(rotate_4=0xF)0000,0000,0000,

4、0000,0000,0101,0000,0001 0xfb100000000,1111,1011,0001,0000,0000,0000,00000x3340000000,0000,0011,0011,0100,0000,0000,00000x3FC0000000,0000,0011,1111,1100,0000,0000,00000x1FE0000非法立即数非法立即数0Xcd循环右移0XFF循环右移18 位(rotate_4=0x9)18 位(rotate_4=0x9 )0000,0001,1111,1110,0000,0000,0000,00000x5580000非法立即数0000,010

5、1,0101,1000,0000,0000,0000,00000x7F8000000,0000,0000,0111,1111,1000,0000,00000x39C0000000,0000,0011,1001,1100,0000,0000,00000x1FE800000001,1111,1110,1000,0000,0000,0000,0000非法立即数非法立即数0XE7循环右移非法立即数18 位(rotate_4=0x9)4.分析逻辑右移,算术右移,循环右移,带扩展的循环右移它们间的差别。 答:LSL逻辑左移:31LSR逻辑右移310ASR算术右移ROR循环右移310RRX带扩展的循环右移:

6、315.ARM数据处理指令具体的寻址方式有哪些,如果程序计数器 PC作为目标寄存器,会产生什么结果?答:数据处理指令寻址方式具体可分为5种类型:1)第二操作数为立即数 2)第二操作数为寄存器 3)第二操作数为寄存器移位方式且移位的位数为一个5位立即数4)第二操作数为寄存器移位方式且移位数值放在寄存器中5)第二操作数位寄存器进行 RRX移位得到。如果PC (R15)用作目标寄存器, 指令会产生不可预 知的结果。6.在Load/Store指令寻址中,字,无符号字节的Load/Store指令寻址和半字,有符号字节寻址,试分析它们之间的差别。答:在Load/Store指令寻址中,字,无符号字节的 Lo

7、ad/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指令在实现寄存器

8、组合连续的内存单元中数据传递时,地址的变化方式有以下4种类型:后增IA (Increment After):每次数据传送后地址加4;先增 旧(Increment Before):每次数据传送前地址加4 ;后减DA (Decrement After):每次数据传送后地址减4 ;先减DB (Decrement Before):每次数据传送前地址减4 ;8 .栈操作指令地址的变化方式有哪几种类型,并分析它们的地址变化情况,从而得出栈操作指令寻址和块拷贝 Load/Store指令之间的对应关系。答:根据堆栈指针的指向位置不同和堆栈的生长方向不同,共有4种类型的堆栈工作方式:满递增堆栈FA:堆栈指针指向

9、最后压入的数据,且由低地址向高地址生成。满递减堆栈FD:堆栈指针指向最后压入的数据,且由高地址向低地址生成。空递增堆栈EA:堆栈指针指向下一个要放入数据的空位置,且由低地址向高地址生成。空递减堆栈ED:堆栈指针指向下一个要放入数据的空位置,且由高地址向低地址生成。9 .分析协处理器加载/存储指令的寻址方式种的内存地址索引格式中不同的汇编语法格式下内存地址的计算方法。答: 协处理器加载/存储指令的寻址方式种的内存地址索引格式中,索引格式类似于LDR/STR指令寻址中的立即数作为地址偏移量的形式。 Addressing_mode 中的偏移量为 8 位立即数的汇编语法格式有以下3 种:? 前变址不回

10、写形式: <Rn> , #+/-<imm_offset8>*4 第一个内存地址编号为基地址寄存器Rn 值加上/减去imm_offset8 的 4 倍,后续的每一个地址是前一个内存地址加4 ,直到协处理器发出信号,结束本次数据传输为止。? 前变址回写形式: <Rn> , #+/-<imm_offset8>*4 !第一个内存地址编号为基地址寄存器Rn 值加上/减去imm_offset8 的 4 倍,后续的每一个地址是前一个内存地址加 4 ,直到协处理器发出信号,结束本次数据传输为止。当指令执行时,生成的地址值将写入基址寄存器。? 后变址回写形式: &

11、lt;Rn> , #+/-<imm_offset8>*4内存地址为基址寄存器Rn 的值,当存储器操作完成后,将基地址寄存器Rn 值加上 /减去 imm_offset8 的 4 倍,后续的每一个地址是前一个内存地址加4,直到协处理器发出信号,结束本次数据传输为止。最后将Rn 值加上/减去imm_offset8 的 4 倍写回到基址寄存器Rn (更新基地址寄存器)。1. 写出下列指令的机器码,并分析指令操作功能。MOVR0, R1MOVR1, ,0X198ADDEQS R1 , R2, ,0xABCMPR2,#0XabLDRR0,R1,#4STRR0,R1,R1,LSL #2!L

12、DRHR0,R1,#4LDRSBR0,R2,#-2!STRBR1,R2,#0Xa0LDMIAR0,R1,R2,R8STMDB R0!,R1-R5,R10,R11STMEDSP!R0-R3,LR答:机器码部分略。MOVR0, R1; R0 R1MOVR1, ,0X198; R0 0X198ADDEQS R1 , R2, ,0xAB;当 Z=1 时, R1 -R2+0xAB 并影响标志位CMPR2,#0Xab; R2-0xAB ,并影响标志位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位清零LDRSB2R0,R2,#-2!; R0 - 【 R2-2 】字节, R0 有符号扩展为 32 位, R2=R2-STRBLDMIAR1,R2,#0Xa0R0,R1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论