版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
千里之行,始于足下让知识带有温度。第第2页/共2页精品文档推荐嵌入式复习思考题(1)答案嵌入式复习思量题及答案(1)
一、简答题
1、ARM9有哪几种工作模式?其中哪几种属于特权模式?哪几种属于几种异样模式?
答:实用户、系统、管理、中止、未定义、一般中断、迅速中断。系统、管理、中止、未定义、一般中断、迅速中断属于特权模式。管理、中止、未定义、一般中断、迅速中断属于几种异样模式。
2、ARM9有哪2种工作状态?各自特点?实现状态切换指令的是什么?
答:ARM状态与Thumb状态。ARM状态指令是32位;Thumb状态指令是16位。切换指令是BX。
3、简述ARM9在不同工作模式下寄存器分布状况(用图表说明)。R13、R1
4、R15的固定用途;CPRS和SPRS名称及功能。
答:R13常作为堆栈指针SP、R14作为链接寄存器LR、R15作为程序计数器PC。CPRS是当前程序状态寄存器,包含条件代码、中断禁止位、当前处理器模式以及其他状态和控制信息。SPRS是程序状态保存寄存器,异样浮现时用于保存CPRS的状态。
4
5
答:响应过程:1、将引起异样指令的下一条指令的地址保存到新的异样工作模式的R14中;
2、将CPSR的内容保存到将要执行的异样中断对应的SPSR中;
3、按照异样类型CPSR中的运行模式位;
4、将相应的矢量地址赋值给PC,开头执行异样处理程序。还可设中断禁止位。
返回过程:1、将衔接寄存器LR的值减去相应的偏移量后送到PC中;
2、将SPSR内容送回CPSR;
3、若在进入异样处理时设置了中断禁止位,要在此清除。
6、写出ARM9支持的寻址方式,各举一例。
答:略
7、写出指令LDRB/LDRH/LDR的区分。
答:LDRB将内存单元一个字节的数据扩展到32位装载到寄存器;
LDRH将内存单元半字(两个字节)的数据扩展到32位装载到寄存器;
LDR将内存单元一个字的数据装载到寄存器。
8、写出LDM、STM指令用于数据块拷贝时对应的4种后缀以及用于堆栈操作对应的4种后缀。
解释各自的执行过程。
答:数据块拷贝后缀:IA操作后指针增;DA操作后指针减;
IB操作前指针增;DB操作前指针减。
堆栈操作后缀:FD满递减;ED空递减;FA满递增;EA空递增。
9、ARM和Thumb两种状态下各自堆栈的生成方式有何不同?写出各自对应的入栈、出栈指令。答:ARM堆栈有4种生成方式满递增、满递减、空递增、空递减;
入栈指令:STM(FD\ED\FA\EA4种后缀之一)出栈指令:LDM(FD\ED\FA\EA4种后缀之一)Thumb堆栈采纳满递减的生成方式。入栈指令:PUSH.出栈指令:POP
10、写出条件代码NE、EQ的推断条件。
答:NEZ=0(不相等);EQZ=1(相等)
11、B、BL及BX指令有何区分?写出无嵌套的子程序调用及返回指令。
答:B是容易的转移指令,实现向目的地址的容易的跳转;
BL是带链接的转移指令,将转移指令后的下一条指令抵制保存到链接寄存器LR;
BX是带状态切换的转移指令。
子程序调用指令:BLDELAY;无嵌套的子程序返回指令MOVPC,LR
12、举例说明伪指令LDR的2个主要用途。
答:LDRR1,=0X30408020加载32位立刻数到寄存器;
LDRR1,=SRC加载一个地址值到寄存器。
13、什么是ATPCS?它有哪些规章?
答:ATPCS是ARM程序和Thumb程序中子程序调用的基本规章,使单独编译的C程序和汇编程序能互相调用。有数据栈规章、参数传递规章和子程序调用时寄存器使用规章。
二、程序阅读题(重点检测寻址方式及指令)
1、在每条语句后做简要解释,写出程序执行后R0、R1、R2和C的值。
(学问点:算术、规律操作、影响标志位S)
AREASUMM,CODE,READONLY
XEQU8
YEQU16
ENTRY
MOVR0,#X
MOVR1,#Y
ADDR2,R0,R1
ANDR0,R2,#0X0F
MOVR2,#Y
ADDSR2,R0,R1,LSR#1
STOPBSTOP程序执行后R0=8、R1=16、R2=16和C=0。
END
2、分析程序,根据加“//”语句的要求解答。(学问点:堆栈操作)
AREASTK,CODE,READONLY
ENTRY
MOVR1,#0X30
MOVR2,#0X08
MOVSP,#0X400
STMFDSP!,{R1,R2};//①写出语句执行后SP和R2的值SP=0X3F8;R2=0X08
LDMFDSP!,{R5,R6};//②写出语句执行后SP、R5和R6的值SP=0X400;R5=0X30;R6=0X08LOOPBLOOP
END
3、写出程序实现的功能,并在每条语句后做简要解释。
(学问点:寻址方式[Rn],#immediate、循环体、数据拷贝)
AREAarmcopyCODE,READONLY
numEQU16
ENTRY
ADRr1,src
ADRr3,dst
MOVr2,#num程序实现了将内存src处的16个字拷贝到dst处。
copyLDRR0,[r1],#4
STRR0,[r3],#4
SUBSr2,r2,#1
BNEcopy
stopBstop
srcDCD1,2,3,4,1,2,3,4,5,6,1,2,3,4,1,2
dstDCD0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
END
4、分析程序功能,并写出加序号语句的作用。(学问点:状态切换)
程序实现了从ARM状态切换到Thumb状态实现4个字节数据的拷贝。
AREAthcopy,CODE,READONLY
ENTRY
CODE32;伪操作,指示以下指令是32位的ARM指令LDRr1,=src
LDRr3,=dst
MOVr2,#4
LDRr4,=copy+1;①;伪指令,装载跳转地址以及最后的状态切换位
BXr4;②;从ARM状态跳转到Thumb状态
CODE16;③;伪操作,指示以下指令是16位的Thumb指令
copy
LDRBr0,[r1]
ADDr1,#1
STRBr0,[r3]
ADDr3,#1
SUBr2,r2,#1
BNEcopy
stopBstop
srcDCB1,2,3,4
dstDCB0,0,0,0
END
5、写出下列程序执行后r0的值,并写出加序号语句的作用。(学问点:跳转表、子程序的调用返回)
AREAJump,CODE,READONLY
ENTRY
StartMOVr0,#0
MOVr1,#8
MOVr2,#5
BLcount;①调用子程序
stopBstop
countCMPr0,#2;②r0与2比较
MOVHSpc,lr;③假如r0大于2则子程序返回
LDRr3,=JumpTable;④否则将跳转表首地址送r3
LDRpc,[r3,r0,LSL#2];⑤将r3+r0×4(即跳转地址)送pc
JumpTable
DCDDoAdd
DCDDoSub
DoAdd
ADDr0,r1,r2
MOVpc,lr;⑥子程序返回
DoSub
SUBr0,r1,r2
MOVpc,lr程序执行后r0=13
END
6、分析下面这段混合程序回答:
(1)、程序实现了什么功能?在C中调用汇编函数实现字符串拷贝
(2)C语言程序和汇编代码如何传递参数?dststrR0;srcstrR1
(3)在每条语句后做简要解释。
(学问点:C和汇编混合编程框架、ATPCS规章、字节拷贝)
externvoidstrcpy(char*d,constchar*s);声明外部函数
intmain(void)
{
constchar*srcstr=”abcdefg”;
char*dststr=”jjjjjjjjjj”;
strcopy(dststr,srcstr);调用汇编函数(通过R0和R1实现参数传递)printf(“%s\n%\n”,srcstr,dststr);
return(0);
}
AREASCopy,CODE,READONLY
EXPORTstrcopy;声明一个全局标号,可以在其他文件中引用strcopyLDRBr2,[r1],#1
STRBr2,[r0],#1
CMPr2,#0
BNEstrcpy
MOVpc,lr;子程序返回
END
三、设计题
(把握汇编及C语言容易程序设计。如数据拷贝、跳转表、混合编程。)
1、用汇编语言编写数据块或字符拷贝程序(如阅读程序题)。
2、用汇编语言编写含有2个分支的跳转表实现程序跳转。R2寄存器中存放的是跳转表的基地址。R1中用于挑选不同的子程序,子程序可以随意命名。R1的不同值挑选不同的子程序。并做容易解释。(如阅读程序题)
3、编写一段C语言与汇编语言的混合编程代码,在C语言程序中调用汇编语言代码,完成字符串的拷贝。(如阅读程序题)
4、在汇编子程序中调用一个计算a、b、c三者之和的C语言函数add3(),计算i+2i+3i,
假设i就在R0中。(要求说明汇编程序和C函数之间如何举行参数传递)。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度个人货物运输保险附加服务合同4篇
- 2025年度大型公共设施设备安装维修服务合同范本4篇
- 2025年新型智能商铺租赁合同参考4篇
- 二零二五年度绿色建筑标准钢管采购与技术创新合同3篇
- 二零二五年度电商绿色包装与环保物流服务合同3篇
- 2025年度房产代持及资产配置顾问合同4篇
- 2025年摩托车内燃机零配件进口合同样本4篇
- 个人车位转租合同(2024版)2篇
- 二零二五年度林业碳汇交易承包服务合同范本3篇
- 2025年度美容院美容美发项目组合套餐销售合同3篇
- DB32-T 4444-2023 单位消防安全管理规范
- 临床三基考试题库(附答案)
- 合同签订执行风险管控培训
- DB43-T 3022-2024黄柏栽培技术规程
- 九宫数独200题(附答案全)
- 人员密集场所消防安全管理培训
- 《聚焦客户创造价值》课件
- PTW-UNIDOS-E-放射剂量仪中文说明书
- JCT587-2012 玻璃纤维缠绕增强热固性树脂耐腐蚀立式贮罐
- 典范英语2b课文电子书
- 员工信息登记表(标准版)
评论
0/150
提交评论