一.嵌入式系统基础

二.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. 一键安装各个版本boost库(无需编译)

    1.NuGet 最简单的,用VS自带的NuGet包管理器安装,一般比较常用的上面都有 2.下载exe安装包 在这里https://sourceforge.net/projects/boost/file ...

  2. vue实现隔行换色,下拉菜单控制隔行换色的颜色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Java连载83-单向链表、双向链表、collections常用方法

    一.单向链表 1.单向链表:每个元素都称为节点(Entry),每个节点都由两部分组成 2.单向链表的注意点: (1)单向链表每一个节点在内存中存储上在空间位置上是无规律的: (2)为什么单向链表的查询 ...

  4. can总线中什么是远程帧

    所谓“远程帧”是一个传统翻译上的误区.Remote Frame实际上它的意义是“遥控帧”,发起方发起特定ID的远程帧,并且只发送ID部分,那么与其ID相符的终端设备就有义务在后半段的数据部分接管总线控 ...

  5. 关于python 的 __future__

    经常看到__future__: from __future__ import absolute_importfrom __future__ import print_functionfrom __fu ...

  6. 问题 I: 数字分组2

    问题 I: 数字分组2 时间限制: 1 Sec  内存限制: 128 MB[命题人:admin] 题目描述 已知一堆魔法石的重量,问如何分成两堆,使得它们质量和之差最大,但不能大于(可以等于)这些数中 ...

  7. windows 下安装memcache拓展

    Windows下安装memcached (linux 接下来会继续 学习) 以管理员身份进入CMD 模式,具体方法:C:/windows/system32 管理员身份打开cmd.exe memcach ...

  8. IIR filter design from analog filter

    Analog filter和digital filter的联系: z变换与Laplace从数学上的关系为: 但这种关系在实际应用上不好实现,因此通常使用biliner transform(https: ...

  9. 转载:EQ--biquad filter

    http://www.musicdsp.org/files/Audio-EQ-Cookbook.txt https://arachnoid.com/BiQuadDesigner/index.html ...

  10. jsoup学习待续

    1.Jsoup简介 Jsoup是一个java html解析器.它是一个用于解析HTML文档的java库.Jsoup提供api来从URL或HTML文件中提取和操作数据.它使用DOM,CSS和类似 Jqu ...