一.嵌入式系统基础

二.ARM处理器

1. 在每条指令后,用;//注释这条指令的寻址方式,以及实现的功能(25分)

注:变址寻址需要标注是基址加偏移、还是基址加索引,是前变址还是后变址。
SUB SP,SP,#4 ;//立即寻址,将sp寄存器的值减去4
ADD R8,R8,R9,LSL #2 ;//移位寻址,将r9寄存器的值逻辑左移2位,再加上r8寄存器的值,将结果放入r8寄存器
LDR R8,[R8] ;//间接寻址,r8寄存器值指向的存储地址上的值加载到r8寄存器上
STR R8,[SP,#8] ;//前变址寻址中的基址加偏移寻址,将r8的值存至sp寄存器值加上8指向的存储地址上
LDMFD SP!,{R8-R9,PC} ;//满递减堆栈寻址,将sp指向的存储地址上连续3个字的值分别方式r8、r9和pc寄存器,sp寄存器的值+8

2. 按照注释的功能写出实现该功能的指令(25分)
MOV R0, #0X0A ;//R0赋值为0X0A
MOV R1, #0X10 ;//R1赋值为0X10
SUBS R1, R1, [R0] ;//将R1的值减去R0指向的存储器空间的值,影响CPSR
BNE LOOP ;//在非零条件下,跳转至LOOP标记处执行
STMEA SP! {R0, R1, PC};//将R0,R1和PC存储在SP指向的空递增堆栈,SP的值发生变化

3. 假设R0=0x12345678,并且存储器为大端序存储系统,运行了以下指令后
MOV R1,#0x4000
STR R0,[R1]
LDRB R2,[R1]
寄存器R2的值为多少?并说明原因。
答:执行第1、2句后,大端格式存储结构如图
0x4003 0x4002 0x4001 0x4000
0x78 0x56 0x34 0x12
执行指令后:R2=0x12

4. 寄存器R0中存放着一个正整数N,使用指令将1到N整数累加的结果放到寄存器R1中。
答:
MOV R1,R0
LOOP: SUBS R0,R0,1
MULNE R1,R1,R0 (正确使用UMULL R1,R2,R1,R0亦可)
BNE LOOP

https://bbs.csdn.net/topics/392481661

【嵌入式】ARM9复习的更多相关文章

  1. 嵌入式MCU开发群资源

     STM32CubeMX是一款图形化软件设置工具,允许使用图形化向导来生成C初始化代码.它是未来开发stm32系列产品的主流软件,是ST公司的主动原创,可以减轻开发工作,时间和费用.STM32Cube ...

  2. 服务器watchdog看门狗的理解

    1.什么是watchdog?watchdog,中文名称叫做“看门狗”,全称watchdog timer,从字面上我们可以知道其实它属于一种定时器.然而它与我们平常所接触的定时器在作用上又有所不同.普通 ...

  3. ARM9嵌入式学习笔记(1)-Linux命令

    ARM9嵌入式学习笔记(1)-Linux命令 实验1-1-2 Linux常见命令使用 添加用户useradd smb; 设置账户密码passwd smb; 切换用户su - root 关机命令shut ...

  4. ARM9嵌入式学习笔记(2)-Vi使用

    ARM9嵌入式学习笔记(2) 实验1-1-3 Vi使用 vi创建文件vi hello.c:vi smb.conf-打开文件smb.conf i键-插入模式:esc键-命令行模式::-底行模式: 底行模 ...

  5. 基于ARM9和嵌入式Linux系统的多功能综合通信控制系统的框架

    基于ARM9硬件平台和嵌入式Linux系统的多功能综合通信控制系统的框架设计及各模块的功能.系统采用符合POSIX.1标准的C语言编写,实现了对下位机传送数据帧的采集.分析和存储,并能根据上位机的配置 ...

  6. ARM嵌入式复习

    第一章 1.嵌入式系统 “以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能,可靠性,成本,体积,功耗要求严格的专用计算机系统” 根据应用的要求,沿着“体积小,低功耗,高可靠”方向发 ...

  7. HQYJ嵌入式学习笔记——C语言复习day1

    第一天:Linux命令 vim操作 第二天:数据类型 运算符 顺序语句第三天:分支语句 循环语句第四天:循环语句 数组第五天:数组第六天:指针第七天:函数 数组与指针第八天:数组指针第九天:递归 第十 ...

  8. HQYJ嵌入式学习笔记——C语言复习day2

    1.计算机的数值表示 数值类型和非数值类型 二进制 0,1 (0b1001) 八进制 0~7   (0146) 十进制 0~9 十六进制 0~f (0x3f) 八进制转二进制-->一位八进制数换 ...

  9. ARM9的中断控制器

    简要复习一下ARM9中断控制器的控制过程: 1.首先能识别触发的中断(对应中断源必须打开,然后查询当前中断状态寄存器),硬件会操控PC跳到中断向量入口(IRQ_HANDLE,硬件控制的只要是IRQ中断 ...

随机推荐

  1. 两个map合并

    两个map合并所用函数为:putAll package myProject; import java.util.HashMap; import java.util.Map; public class ...

  2. kuangbin专题 专题九 连通图 HDU 4738 Caocao's Bridges

    题目链接:https://vjudge.net/problem/HDU-4738 题目:tarjan求桥,坑点: 题目说是分岛任务...如果所有岛之间没有完全连通,就不需要执行任务了...答案直接是0 ...

  3. mybatis(六):设计模式 - 装饰器模式

  4. Vue+ElementUI重置表单数据至初始值

    https://blog.csdn.net/linjingke32/article/details/99446403

  5. onkeyup的死循环问题

    如果对一个控件调用的onkeyup事件,那么不能用回车来关闭alert()弹窗,因为按下回车的同时又再次触发了这个onkeyup事件,这样会造成一个死循环,不停按回车,不停的alert(), 所以应该 ...

  6. Iris_MVC

    2. MVC包使用 在Iris框架中,封装了mvc包作为对mvc架构的支持,方便开发者遵循mvc的开发原则进行开发. iris框架支持请求数据.模型.持久数据分层处理,并支持各层级模块代码绑定执行. ...

  7. unittest学习4-跳过用例执行

    unittest支持跳过单个测试方法,甚至整个测试用例,还支持将测试用例标记为“测试失败” 基本跳过如下: import unittestimport requests,sys class MyTes ...

  8. Ad Hoc类问题

    __________________________________ Ad Hoc类问题的方法:(1)机理分析法.分析题目描述,推出算法. (2)统计分析法.追寻最终的数学模型. Problem 1: ...

  9. 解决com.netflix.zuul.FilterProcessor : null异常

    ZuulFilter过滤器的filterType方法返回一个字符串代表过滤器的类型,如果return null就会出现以上错误. 在zuul中有以下四种不同生命周期的过滤器类型 pre:路由之前 ro ...

  10. springboot项目入门解析

                     config:主要用来存储配置文件,以及其他不怎么动用的信息. controller:项目的主要控制文件 dao:           主要用来操作数据库 entit ...