【嵌入式】ARM9复习
一.嵌入式系统基础




二.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复习的更多相关文章
- 嵌入式MCU开发群资源
STM32CubeMX是一款图形化软件设置工具,允许使用图形化向导来生成C初始化代码.它是未来开发stm32系列产品的主流软件,是ST公司的主动原创,可以减轻开发工作,时间和费用.STM32Cube ...
- 服务器watchdog看门狗的理解
1.什么是watchdog?watchdog,中文名称叫做“看门狗”,全称watchdog timer,从字面上我们可以知道其实它属于一种定时器.然而它与我们平常所接触的定时器在作用上又有所不同.普通 ...
- ARM9嵌入式学习笔记(1)-Linux命令
ARM9嵌入式学习笔记(1)-Linux命令 实验1-1-2 Linux常见命令使用 添加用户useradd smb; 设置账户密码passwd smb; 切换用户su - root 关机命令shut ...
- ARM9嵌入式学习笔记(2)-Vi使用
ARM9嵌入式学习笔记(2) 实验1-1-3 Vi使用 vi创建文件vi hello.c:vi smb.conf-打开文件smb.conf i键-插入模式:esc键-命令行模式::-底行模式: 底行模 ...
- 基于ARM9和嵌入式Linux系统的多功能综合通信控制系统的框架
基于ARM9硬件平台和嵌入式Linux系统的多功能综合通信控制系统的框架设计及各模块的功能.系统采用符合POSIX.1标准的C语言编写,实现了对下位机传送数据帧的采集.分析和存储,并能根据上位机的配置 ...
- ARM嵌入式复习
第一章 1.嵌入式系统 “以应用为中心,以计算机技术为基础,软硬件可裁剪,适用于应用系统对功能,可靠性,成本,体积,功耗要求严格的专用计算机系统” 根据应用的要求,沿着“体积小,低功耗,高可靠”方向发 ...
- HQYJ嵌入式学习笔记——C语言复习day1
第一天:Linux命令 vim操作 第二天:数据类型 运算符 顺序语句第三天:分支语句 循环语句第四天:循环语句 数组第五天:数组第六天:指针第七天:函数 数组与指针第八天:数组指针第九天:递归 第十 ...
- HQYJ嵌入式学习笔记——C语言复习day2
1.计算机的数值表示 数值类型和非数值类型 二进制 0,1 (0b1001) 八进制 0~7 (0146) 十进制 0~9 十六进制 0~f (0x3f) 八进制转二进制-->一位八进制数换 ...
- ARM9的中断控制器
简要复习一下ARM9中断控制器的控制过程: 1.首先能识别触发的中断(对应中断源必须打开,然后查询当前中断状态寄存器),硬件会操控PC跳到中断向量入口(IRQ_HANDLE,硬件控制的只要是IRQ中断 ...
随机推荐
- java 多线程实现四种方式解析Thread,Runnable,Callable,ServiceExcutor,Synchronized ,ReentrantLock
1.Thread实现: import java.util.Date; import java.text.SimpleDateFormat; public class MyThread extends ...
- java下载和环境变量配置
初学java,以前没有接触过这方面内容,所以简要记录一下我2个月的学习流程. 首先,我在慕课上学习java的基础,浙江大学翁恺老师的课程. 下载ECLIPSE-java 进入官网:https://ww ...
- 图像变换 - 霍夫线变换(cvHoughLines2)
霍夫变换是一种在图像中寻找直线.圆及其他简单形状的方法,霍夫线变换是利用Hough变换在二值图像中找到直线. 利用CV_HOUGH_PROBABILISTIC,对应PPHT(累计概率霍夫变换)?这个算 ...
- 题解【洛谷P1315】[NOIP2011]观光公交
题目描述 风景迷人的小城 Y 市,拥有 \(n\) 个美丽的景点.由于慕名而来的游客越来越多,Y 市特意安排了一辆观光公交车,为游客提供更便捷的交通服务. 观光公交车在第 \(0\) 分钟出现在 \( ...
- 素问 - IC跨期套利
摘自<小韭的学习圈> Q 我现在是长持ic.我观察到IC1907和IC1909的贴水差会有波动.有时候,IC 1907涨的多,有时候IC1909涨的多.而在某一天这个趋势相对是稳定的. 那 ...
- night of 2019.8.14
饭后一个小时,坐下来看了一会书,是原来的同事推荐的. 最近一段时间,心一点一点平静.能平下心来去做一些事.偶尔也常常对着窗户发呆,想一些人生感悟.想到一些感悟时,常常感到没有人可以说说心里话. 丰子恺 ...
- selenium chromedriver退出报错
记录使用python调用chromedriver时遇到的问题 代码: #!/usr/bin/env python #-*- coding:utf-8 -*- # author : fy # versi ...
- C#中使用IndexOf()判断字符串在字符串数组中第一次出现的索引位置
] {"}; "; //判断字符串的前几位在另一个字符串数组中第一次出现的索引位置 index = Array.IndexOf(s, s1.Substring(, ));
- 高斯消元-bzoj1013-球形空间产生器
This article is made by Jason-Cow.Welcome to reprint.But please post the writer's address. http://ww ...
- ACM-ICPC实验室20.2.22测试-动态规划
C.田忌赛马 直接贪心做就可以~ #include<bits/stdc++.h> using namespace std; ; int a[maxn],b[maxn]; int main( ...