ARM 汇编复习题

一、选择题

1. ARM属于(A)

[A] RISC架构  [B] CISC架构

 

2. ARM指令集是(C )位宽,Thumb指令集是(B )位宽的。

[A] 8位  [B] 16位       [C] 32位        [D] 64位


3. ARM指令集是(D)字节对齐,Thumb指令集是(B)字节对齐的

[A] 1   [B] 2       [C] 3          [D] 4


4.复位后,ARM处理器处于(B)模式,(D) 状态

[A] User  [B] SVC         [C] System         [D] ARM         [E] Thumb


5. ARM处理器总共(E)个寄存器,System模式下使用(A)个寄存器,SVC模式下使用(B)个寄存器。

[A] 17个 [B] 18个     [C] 32个       [D] 36个        [E] 37个


6. ARM处理器中优先级别最高的异常为(E),( AC)异常可以用来相应中断

[A] FIQ  [B] SWI        [C] IRQ        [D] SVC       [E] RESET


7. ARM数据处理指令中有效的立即数是(ACEGH)

[A] 0X00AB0000  [B] 0X0000FFFF        [C ] 0XF000000F       [D ] 0X08000012
[E] 0X00001F80        [F] 0XFFFFFFFF        [G] 0 [H] 0XFF000000


8. ATPCS规定中,推荐子函数参数最大为(D) 个

[A] 1  [B] 2       [C ] 3        [D ] 4


9. ATPCS规定中,栈是(B)

[A] 满加  [B] 满减       [C] 空加       [D] 空减


10.在用ARM汇编编程是,其寄存器有多个别名,通常PC是指(D),LR是指(C ),SP是指(B)

[A] R12  [B] R13        [C] R14          [D] R15


11. CPSR寄存器中反映处理器状态的位是(D)

[A] J位  [B] I位        [C] F位          [D] T位


12.下面属于ARM子程序调用指令的是(C)

[A] B  [B] BX        [C ] BL        [D ] MOV


13. ARM7属于(A)结构,ARM9属于(B)结构。

[A] 冯.诺依曼          [B] 哈佛


14. ARM7是(B)级流水线,ARM9是(C)级流水线。

[A] 1 [B] 3       [C] 5         [D] 7


15. ARM中可以访问状态寄存器的指令是(D),能够访问内存的指令是(B)

[A] MOV [B] LDR       [C] MCR         [D] MRS


16.异步串口中数据位可以是(ABCD)

[A] 5   [B] 6      [C] 7       [D] 8


17. I2C协议中有几根线(B)

[A] 1  [B] 2         [C] 3         [D] 4


18. I2C协议中设备地址模式有(AC)

[A] 7位地址模式  [B] 8位地址模式          [C] 10位地址模式         [D] 4地址模式


19. S3C2410采用的是(D)核心

[A] ARM7TDMI  [B] ARM9TDMI        [C] ARM926EJ-S           [D] ARM920T


20.在串行异步通讯中,发送端串口的TxD要和接收端串口的(B)相连接

[A] TxD  [B] RxD        [C] nCTS        [D] nRTS


21.在嵌入式系统设计中可以通过(B)来测量电池电压,可以用(C)来驱动喇叭发声

[A] DAC  [B] ADC         [C] PWM          [D] Timer         [E] RTC


22. MMU的作用有(AB)

[A] 内存保护  [B] 地址转换      [C] 加快存取速度         [D] 安全保密           [E] 内存分配


23.以下属于DMA特点的有(BC)

[A]占用CPU  [B]占用总线        [C]不占用CPU       [D]不占用总线


24.下面的设备中属于闪存的设备有(AD)

[A] K9F1208U0M        [B] MAX3232         [C] HY57V561620        [D] Am29LV160D


25. I2C传输是(B)方式传输

[A] 单工  [B] 半双工     [C] 全双工 

 

二、简答题

1.简述ARM发生异常时,ARM核心会自动做哪些事情?从异常返回时,我们要做哪些事情?

1)-- 当异常产生时, ARM core:

拷贝CPSR到SPSR_<mode>
设置适当的CPSR位: 
改变处理器状态进入ARM状态 
改变处理器模式进入相应的异常模式 
设置中断禁止位禁止相应中断(如果需要)
保存返回地址到LR_<mode>
设置PC为相应的异常向量

2)-- 返回时,异常处理需要:

从SPSR_<mode>恢复CPSR
从LR_<mode>恢复PC
Note:这些操作只能在ARM态执行.


2.用ARM汇编指令写出实现64位加法和64位减法的代码段,使用的寄存器请自行分配。

假定低32位数存放在r0和r1里面,高32位数存放在r2和r3里面。 
加法: 
ADDS r0, r0, r1 //加S是因为要让这个操作影响标志位 
ADC r2, r2, r3 //ADC是带进位的加法,如果上一条指令产生进位则一起加进来 
减法: 
SUBS r0, r0, r1 //加S是因为要让这个操作影响标志位 
SBC r2, r2, r3 // SBC是带进位的减法指令


3.请列举ARM处理器的模式和异常,并说明各个发生异常时ARM处理器所处的模式

异常: 
Reset 
Data Abort
FIQ
IRQ
Prefetch Abort
SWI
Undefined instruction

处理器模式

User :非特权模式,大部分任务执行在这种模式} 
FIQ : 当一个高优先级(fast)}中断产生时将会进入这种模式 
IRQ : 当一个低优先级(normal)中断产生时将会进入这种模式} 
Supervisor}:当复位或软中断指令执行时将会进入这种模式 
Abort :当存取异常时将会进入这种模式} 
Undef :}当执行未定义指令时会进入这种模式 
System :使用和User模式相同寄存器集的特权模式}


4. FIQ的什么特点使得它处理的速度比IRQ快?

1)FIQ优先级比IRQ高,不会被中断 
2)FIQ有自己的专属寄存器:r8~r12,不用对通用寄存器入栈保护,可以加快速度 
3)FIQ位于异常向量表的末尾0x1c,故无需跳转,可以在这里直接放置异常处理函数


5.什么指令可以放在中断向量表?

跳转指令,给PC赋值的指令 
B,LDR,MOV


6. ARM处理器 中断向量表位于存储器的什么位置?

默认:0x0
也可以配置成:0Xffff0000


7.下列ARM指令将做什么?

a) LDRH r0,[r1,#6]
b) LDR r0, =0x999
a:将r1寄存器的值加上6,然后把以这个值为地址的内存单元里的值取半字(低16位)赋给r0
b:将立即数0x999赋给r0,注意这是一个伪指令


8. SWP指令的优势是什么?用来实现什么功能?

功能:在寄存器和存储器之间,由一次存储器读和一次存储器写组成的原子操作。完成一个字节或字的交换。 
可以用来实现信号量


9. S3C2410支持几种引导方式(或者说是内存映射方式)?简述Nand引导方式S3C2410硬件做的事情。

1)nor flash启动方式。 
2)nand flash启动方式。 
从Nand flash启动时,S3C2410首先会执行固化在片上ROM中的一段小程序,这段程序负责将nand flash前2K的代码搬移到片上RAM,然后将PC指针指向0x0地址(注意这个时候片上RAM被映射到0x0的起始地址)


10.简述static和volatile关键字的含义和作用

C语言中static关键字有两个作用,一是文件作用域,二是函数作用域。 
文件作用域关键字static的作用是,以static申明的全局变量、函数不得被其他文件所引用 
static另外一个用途是函数内部静态变量,只会被初始化一次,而且变量存储在全局数据段中而不是函数栈中,所以其生命期会一直持续到程序退出 
一个定义为volatile的变量是说这变量可能会被意想不到地改变,这样,编译器就不会去假设这个变量的值了。精确地说就是,优化器在用到这个变量时必须每次都小心地重新读取这个变量的值,而不是使用保存在寄存器里的备份

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM处理器工作模式

一、ARM体系的CPU有以下7种工作模式&#xff1a; 1、用户模式&#xff08;usr&#xff09;&#xff1a;正常的程序执行状态 2、快速中断模式&#xff08;fiq&#xff09;&#xff1a;用于支持高速数据传输或通道处理 3、中断模式&#xff08;irq&#xff09;&#xff1a;用于普…

sphinx

2019独角兽企业重金招聘Python工程师标准>>> ./configure --prefix/usr/local/sphinx --with-mysql/usr/local/mysql make && make install cd /usr/local/sphinx/etc cp sphinx.conf.dist sphinx.conf vim sphinx.conf mysql -u test < /usr/local/sphi…

Exynos4412裸机开发综合练习

下面是一个案例需求&#xff1a; 1、编写一段程序,该程序的主要功能是监控电路板上的电压值,若电压值超过当前的电压限制则通过蜂鸣器报警,通过按键解除报警; 2、其具体要求如下; a) 程序下载20s后,进入电压采集状态(使用RTC ALARM功能完成), 要求1s采集1次电路板电压值;(采用…

Exynos4412 裸机开发 —— IIC总线

前言&#xff1a; I2C(Inter-Integrated Circuit)总线(也称 IIC 或 I2C) 是有PHILIPS公司开发的两线式串行总线&#xff0c;用于连接微控制器及外围设备&#xff0c;是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式&#xff0c;具有接口线少、控制方式…

Exynos4412裸机开发 —— A/D转换器

一、Exynos4412 A/D转换器概述 1、简述 10位或12位CMOS再循环式模拟数字转换器&#xff0c;它具有10通道输入&#xff0c;并可将模拟量转换至10位或12位二进制数。5Mhz A/D 转换时钟时&#xff0c;最大1Msps的转换速度。A/D转换具备片上采样保持功能&#xff0c;同时也支持待机…

Exynos4412裸机开发 —— UART

一、Exynos4412 UART 的特性 Exynos4412 中UART&#xff0c;有4 个独立的通道&#xff0c;每个通道都可以工作于中断模式或DMA 模式&#xff0c;即 UART 可以发出中断或 DMA 请求以便在UART 、CPU 间传输数据。UART 由波特率发生器、发送器、接收器和控制逻辑组成。 使用系统时…

Exynos4412裸机开发 —— 看门狗定时器

一、看门狗定时器概述 看门狗&#xff08;WatchDog Timer) 定时器和PWM的定时功能目的不一样。它的特点是&#xff0c;需要不同的接收信号&#xff08;一些外置看门狗芯片&#xff09;或重新设置计数器&#xff0c;保持计数值不为0。一旦一些时间接收不到信号&#xff0c;或计数…

win10 WSL(1903)安装samba服务器实现文件共享

https://blog.csdn.net/fuyuande/article/details/90368576

Exynos4412裸机开发 —— RTC 实时时钟单元

RTC(Real-Time Clock) 实时时钟。RTC是集成电路&#xff0c;通常称为时钟芯片。在一个嵌入式系统中&#xff0c;通常采用RTC来提供可靠的系统时间&#xff0c;包括时分秒和年月日等&#xff0c;而且要求在系统处于关机状态下它也能正常工作&#xff08;通常采用后备电池供电&am…

配置samba服务器

https://www.cnblogs.com/luosongchao/p/3750546.html

Exynos4412裸机开发——中断处理

以KEY2控制LED3亮灭为例&#xff1a; 一、轮询方式 【0】检测按键k2&#xff0c;按键k2按下一次&#xff0c;灯LED2闪一次。 【1】查看原理图&#xff0c;连接引脚和控制逻辑 &#xff08;1&#xff09;按键k2 连接在GPX1_1引脚 &#xff08;2&#xff09;控制逻辑 k2 按…

2021-04-20

https://www.cnblogs.com/cpw6/p/10364986.html https://www.cnblogs.com/liuyisai/p/5992511.html 一、NFS服务简介  NFS 就是 Network FileSystem 的缩写&#xff0c;最早之前是由sun 这家公司所发展出来的。 它最大的功能就是可以透过网络&#xff0c;让不同的机器、不同的…

ARM 汇编指令集

ARM处理器的指令集可以分为跳转指令、数据处理指令、程序状态寄存器&#xff08;PSR&#xff09;处理指令、加载/存储指令、协处理器指令和异常产生指令6大指令。 一、 跳转指令 跳转指令用于实现程序流程的跳转&#xff0c;在ARM程序中有以下两种方法可以实现程序流程的跳转 Ⅰ…

python创建虚拟串口

Linux 串口编程&#xff08;基于RAW模式&#xff09; Linux串口部分特殊字符易丢失解决方法 linux串口特殊字符不能接收 termios 获取和设置终端属性&#xff0c;行控制&#xff0c;获取和设置波特率 Termios–串口设置 Python修改文件权限 无法从外部进程读取PTY&#xff08;伪…

串口VMIN和VTIME设置

linux 下串口编程VTIME和VMIN的设置 Python termios 模块&#xff0c;tcgetattr() 实例源码 struct termios attr;tcgetattr(fd,&attr);attr.c_cc[VMIN]255;attr.c_cc[VTIME]255;tcflush(fd,TCIFLUSH);tcsetattr(fd,TCSANOW,&attr);VMIN:[0-255] VTIME:[0-255] VMIN 0…

Linux串口编程详解

Linux串口编程详解(阻塞模式、非阻塞模式、select函数) 之前一直觉得串口编程很简单&#xff0c;这两天仔细研究后发现串口里的各种参数还挺复杂&#xff0c;稍不注意就容易出错&#xff0c;这里总结一下网上的各种文章及自己的理解与实践。 open 函数 功能描述&#xff1a;用…

远程WEB控制MP3播放器设计(基于mini2440)

网上有很多 基于mini2440的MP3播放器设计的资料&#xff0c;多是按键控制&#xff0c;这里博主做了些轻微改动&#xff0c;利用远程WEB来控制MP3播放&#xff0c;具体怎么实现&#xff0c;下面会给出&#xff0c;大家先看看效果&#xff1a; WEB界面&#xff1a; 后台运行&…

线程以及pthread库的使用

https://blog.csdn.net/weixin_38102771/article/details/91351126 https://blog.csdn.net/qq_29677867/article/details/108571388?utm_mediumdistribute.pc_relevant.none-task-blog-baidujs_baidulandingword-0&spm1001.2101.3001.4242 一.什么是线程 你可以想象你一边…

嵌入式数据库 SQLite 浅析

SQLite是一个非常轻量级自包含(lightweight and self-contained)的DBMS&#xff0c;它可移植性好&#xff0c;很容易使用&#xff0c;很小&#xff0c;高效而且可靠。SQLite嵌入到使用它的应用程序中&#xff0c;它们共用相同的进程空间&#xff0c;而不是单独的一个进程。从外…

程序会话后继续运行

https://blog.csdn.net/qq_44925149/article/details/89474134