教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

第四章复习(修改)

来源:网络收集 时间:2026-09-11
导读: 1. ARM处理器的工作状态?如何进入工作状态? 答:有两种,ARM(32位字对齐)和Thumb(16位半字对齐)。 当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。 进入ARM:当操作数状态位(位0)为0,

1. ARM处理器的工作状态?如何进入工作状态?

答:有两种,ARM(32位字对齐)和Thumb(16位半字对齐)。 当ARM微处理器执行32位的ARM指令集时,工作在ARM状态;当ARM微处理器执行16位的Thumb指令集时,工作在Thumb状态。 进入ARM:当操作数状态位(位0)为0,执行BX指令可以从Thumb到ARM切换;进入Thumb:当操作数状态位(位0)为1,执行BX指令可以从ARM到Thumb切换。 2. ARM处理器支持的7种运行模式?

答:7种模式:用户模式usr、快速中断模式fiq、外部中断模式irq、管理模式svc、系统模式sys、数据终止模式abt、未定义指令中止模式und。

3. 大端格式和小端格式

答:大端格式和小端格式是ARM处理器数据存储格式。小端格式是低地址存放低字节数据,高地址存放高字节数据。如十六制数据从高到低11223344,设最低低字节(32位)0x20000000。则在0x20000000存放44,0x200000001存放33,0x200000002存放22,0x20000003存放11。即每8位为一个字节,就是说上面16进制为4个字节。每四个字节存放一字数据。 4. ARM状态下寄存器组织 答:1.通用寄存器R0—R15; 2.状态寄存器; 5. 程序状态寄存器格式。

答:程序状态寄存器有CPSR和SPSR,格式为: N Z C V 保留位

6. Thumb状态下寄存器组织与ARM状态下寄存器组织的异同; 答:1.ARM和Thumb状态下的R0—R7一样的; 2.在Thumb中没有R8—R12; 3.ARM 中的R13对应Thumb中的SP; 4.ARM 中的R14对应Thumb中的LR; 5.ARM 中的R15对应Thumb中的PC; 6.ARM 和Thumb中的CPSR和SPSR是一样的; 7. ARM的异常分类及优先级

答:有七种异常并且优先级从高到低为:1.复位;2.数据中止;3.fiq;4.irq;5.指令预取;6.未定义指令;7.软件中断。 8. ARM异常的响应(四步)

答:1.将下一条指令的地址赋给LR,以便程序从异常返回时能从正确的位置执行;

2.将CPSR 的值复制给SPSR; 3.对CPSR进行位操作;

具体为:3.1设置模式位M[4:0],使处理器进入相应的模式; 3.2设置中断标志位M[6],禁止fiq中断;

I F T M4 M3 M2 M1 M0 3.3当进入Reset或者fiq时,还要设置中断标志位M[7],禁止irq中断。

4.PC强制赋值,使程序从相应的异常向量地址开始执行中断处理程序。

9. ARM异常返回(四步)

答:1.将那些被修改过的寄存器出栈; 2.将LR的值减去偏移量赋给PC;

3.恢复程序状态寄存器的状态,即SPSR_mode复制给CPSR; 4.清除那些被修改过的中断禁止位。 10. ARM指令的寻址方式(7种);

答:1.立即寻址;2.寄存器寻址;3.间接寻址;4.基址变址寻址;5.多寄存器寻址;6.堆栈寻址;7.相对寻址。 11. 能够说明寻址指令的含义; 12. MOV与LDR/STR的区别;

答: MOV经常用于在ARM内核中寄存器和寄存器之间或者与立即数之间传递;

LDR把存储器中的数据加载到内核中; STR把内核中的数据存储到存储器中。 13. MRS和MSR指令的用法;

答:MRS R,CPSR/SPSR状态寄存器到通用寄存器的数据传送指令; 用法:1.异常或者进程切换时需要保存C/SPSR的值,读出程序状态寄存器的值然后保存;

2.需要改变C/SPSR的值时,将值给通用寄存器,修改后再写回状态寄存器。

MSR CPSR/SPSR,R通用寄存器到状态寄存器的数据传送指令; 用于恢复或者改变程序状态寄存器的内容。

14. 加法、减法、乘法指令、跳转指令、数据交换指令、移位指令; 答:ADDS,ADC(带进位),SUBS,SBC(带进位),MUL R0,R1,R2;R0=R1*R2 SMULL R0,R1,R2,R3 ;R0=R2*R3的低32位;

R1=R2*R3的高32位;

SWAP R0,R1,[R2] ;将R2所指存储器中的内容给R0。同时,将R1的字数据给了R2所指存储器的单元。还有SWAPB字节交换。 1.有符号加法运算结束后CPSR寄存器值为0x60000013,分析CPSR状态。

答:CPSR寄存器的值化为二进制:0110 0000 0000 0000 0000 0000 0001 0011,故N=0;Z=1;C=1;V=0;I=F=T=0;M[4:0]=10011。 所以结果为零,允许irq和fiq中断,并且为执行了ARM指令,C=0运算结果没有产生进位,V=0计算结果未溢出,处理器模式为管理模式。

2.用ARM汇编指令写出实现64位加法和64位减法的代码段,使用的寄存器请自行分配。

答:R1,R2存放一个数的高32和低32;R6,R7存放另一个高32和低32的数。则加法:

ADDS R7,R7,R2;加S是因为要让这个操作影响标志位

ADC R6,R1,R6;高32位的加法。 减法:

SUBS R2,R2,R7;低位减法 SBC R1,R1,R6

3、编写一程序,查找存储器从0x30000000开始的100个字节中为0的数目,将其结果存到0x30000012中。 答: MOV R0,#0x3000 0000;将地址赋给R0 MOV R5,#0 MOV R3,0X30000012

START: LDR R1,[R0],#1;将字节数据存入R1中

CMP R1,#0;看R1和0是否相等 ADDEQ R5,R5,#1 CMP R0,#0x3000 0064 BNE START STR R5,[R3] END

4:仅置位C标志,保留N、Z、V标志,其他位不变。 答:

MRS R0,CPSR;将CPSR中的内容传给R0

ORR R0,R0,#0x20000000;将C位置一,其他位不变

MSR CPSR_f,R0;将值在传送给CPSR,其中的f为被修改的位,[31:24]为条件标志位,用f表示。

…… 此处隐藏:759字,全部文档内容请下载后查看。喜欢就下载吧 ……
第四章复习(修改).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/445471.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)