一.嵌入式系统基础

二.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. Spring事物白话文

    脏读:一个事物读到了另外一个事物中尚未提交的数据: 幻读:A事物读到了B事物新增的数据:白话一点就是读到了别人insert的语句: 不可重复读:A事物读取了B事物更改的数据:白话一点就是我两次sele ...

  2. JavaScript——BOM和DOM

    什么是BOM bom:浏览器对象模型 什么是DOM dom:文档对象模型 BOM操作: 调用windows浏览器窗口 windows对象可以通过点调用子对象 windows.navigator对象,可 ...

  3. _mysql_exceptions.OperationalError: (2013, 'Lost connection to MySQL server during query')

    最近写了一个定时脚本,每天凌晨跑,每次跑时间很长. 在测试这个脚本的时候,跑了一个小时,发生一个错误,脚本中断,错误如下: _mysql_exceptions.OperationalError: (2 ...

  4. KMP算法例题

    链接:https://codeforces.com/contest/1200/problem/E 题意:依次合并两个单词,每次合并将删去最长相同前后缀,输出结果. 思路:用kmp跑出每个需要被连接的单 ...

  5. js函数防抖和函数节流

    参考链接:https://juejin.im/post/5b651dc15188251aa30c8669 参考链接:https://www.jb51.net/article/158818.htm 在我 ...

  6. cannot be resolved to a type解决方法!!!

    小楼今天在做一个Java项目的时候遇到一个大家经常遇到的问题:XXX cannot be resolved to a type 看到一百多个errors时的时候,小楼也是被吓得赶紧去找度娘. 归纳一下 ...

  7. WSUS补丁服务器部署详细

    利用WSUS部署更新程序 来源于网络转载  WSUS概述 为了让用户的windows系统与其他microsoft产品能够更安全,更稳定,因此microsoft会不定期在网站上推出最新的更新程序供用户下 ...

  8. 谈谈我对Promise的理解

    一.Promise是什么? Promise是最早由社区提出和实现的一种解决异步编程的方案,比其他传统的解决方案(回调函数和事件)更合理和更强大. ES6 将其写进了语言标准,统一了用法,原生提供了Pr ...

  9. CI框架发送邮件(带附件)

    最近写了一个发送带附件的邮件,发邮件挺简单的,在我这里最重要的是遇到问题,哈哈哈哈 1.主要方法看代码 public function send_mail(){ $this->load-> ...

  10. 分享链接在QQ内总是被多人举报怎么办,域名防红的方案

    背景 相信大家经常会遇到一个头疼的问题就是,自己的推广链接会因多人投诉举报导致链接在QQ内转发分享会被QQ管家拦截,用户无法打开访问的问题. 那么当大家遇到这个问题的时候应该怎么办呢?不用急,下面分享 ...