一、填空题30分
1、ARM(Advanced RISC Machine)译为(高级精简指令集机器),既可以认为是一个公司的字,或一类未处理器的通称,还可以认为是一种技术的统称。
2、ARM处理器的中断有(IRQ中断请求),(FIQ快速中断请求)两种形式。
3.S3C2410A是(16/32)位的微处理器,它是属于ARM(RISC)系列。
4、S32410A中的ADDR[26:0]是(地址总线)引脚,DA TA[31:0]是(数据总线)引脚。nGCS[7:0]是(通用片选信号)引脚,nWE是(写使能),nOE是(输出使能)引脚。
5、存储空间的格式有(小端格式)、(大端格式)两种格式,8086系统采用的是(小端格式)。30
6、USB从接口类型上可分为(),()两种类型。第一种类型可以接U盘,第二种类型将自身作为设备接口。
7、从程序员的角度上看,ARM920T可以作为工作在下面两种工作状态下,它们分别是(ARM 状态)、(Thumb状态)。
8、S3C2410A共有(8)个bank,每个bank有(128)MB空间,总共(1GB)字节空间。
9、关于电源控制逻辑,S3C2510A有多种电源配置方案来保证对假定认为的最佳功耗。电源控制块在S3C2410A中有能被激活成四种模式:(工作模式)、(低速模式)、(空闲模式)、(休眠模式)。
10、S3C2410A有(5)个(16)位定时器,其中定时器0、1、2、3有脉宽调制(PWM)功能。定时器4有只有一个内部定时器而没有输出管脚。
11、液晶显示器可分为(超扭曲向列型STN/DSTN)、(薄模式晶体管型TFT)两种。
12、RSIC中文名称是(精简指令集计算机),CISC中文名称是(复杂指令集计算机)。
二、问答题30分
1、ARM系统微处理器能够代替X86处理器吗?请说明理由。
能。
①ARM主板的功耗极低。
②ARM主板不会发热,主板温度一般是常温,因此可以一直常年累月开机在线工作,不会出现任何问题。而X86主板CPU必须配风扇而且不能长期工作,否则主板产生的温度会让主板整体性能寿命降低。
③ARM主板的开机速度非常快,一般只有几秒就可以了,而X86需要开机一段时间,Windows系统才会起来。
④目前来看,ARM主板的性能已经越来越接近X86主板,甚至在某些方面超过了它。从视频多媒体、数据通信等几个方面,基本和X86类似。
⑤ARM主板不受时间限制,可以一直开机工作,无须人员去维护,而且在调电情况下,只要来电,那么就会自动启动,无须人员去开机或者关机,而X86主板却要人员维护,而且不能长期工作,否则会让主板寿命大大降低。
⑥ARM主板一般都是工业极,不受环境影响,最低温度可以在-20摄氏度左右,最高温度可以在70摄氏度左右而X86一般都不行。
⑦ARM主板都采用高度集成方式,数据一般都放在Flash内部,都是二进制格式,外部无法直接拷贝内部数据。而且最大的优点是:目前ARM主板的系统都是WinCE系统或者Linux 系统,不会受病毒感染,客户无须担心病毒感染而导致数据泄漏,尤其是一些对于数据安全性要求很高的场所。ARM主板非常适合而X86刚好相反,由于都采用了Windows XP、2000等常用系统,而且采用了DOM盘或者硬盘,因此数据很容易被病毒感染或者被人偷取,因此安全性无法相比。
⑧ARM主板目前价格都非常低,而且ARM主板已经包含了内存和存储介质,无须外部购买配件,因此整体系统成本比X86价格要低很多。
2、伪指令的作用是什么?它和指令有何区别?
作用:伪指令是ARM处理器支持的汇编语言程序里的特殊助记符,它不在处理器运行期间由机器执行,只是在汇编是将被合适的机器指令代替成ARM或Thumb指令,从而实现真正的指令操作。
区别:每一条指令必须生成机器代码,然后在程序运行期间由CPU来执行其操作;而伪指令是在汇编期间由汇编程序执行的操作命令,除了数据定义及存储器分配伪指令分配存储器空间外,其它伪指令不生成目标码。和各种指令一样,伪指令也是程序设计不可缺少的工具。
3、什么是直接存储器访问DMA?它有什么作用?
DMA是计算机科学中的一种内存访问技术。它允许某些电脑内部的硬件子系统(电脑外设),可以独立地直接读写系统存储器,而不需绕道中央处理器(CPU)。在同等程度的处理器负担下,DMA是一种快速的数据传送方式。DMA是在专门的硬件(DMA)控制下,实现高速外设和主存储器之间自动成批交换数据尽量减少CPU干预的输入/输出操作方式。
作用:是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据,既不通过CPU,也
不需要CPU干预。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外,在传输过程中CPU可以进行其他的工作。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此,使整个计算机系统的效率大大提高。
4、叙述ARM输入/输出引脚功能。
书34页
5、串行通信协议中:一个起始位。8个数据位。无校验位,一个停止位组成。画出传送字符A的波形。
6、简述ARM硬件平台的组成。
ARM核,时钟和电源模块,DMA通道,通用I/O端口,PWM脉宽调制,通用异步收发器,USB主机接口和USB设备接口,中断控制器,LCD控制器,数模转换和触摸屏接口等。三。分析下面指令的源操作数寻址方式10分
1、STR R4,[R2,#-4] 基地址寻址
2、SUBS R1,R2,#3 立即寻址
3.MOV R0,R1 寄存器寻址
4.ANDS R1,R1,R2,LSL R3 寄存器偏移寻址
5.LDR R1,=0X12345678 寄存器间接寻址
6.LDR R2,[R3,#0X0F] 基地址寻址
7.MOV R1,#0X12 立即寻址
8.STMFD SP!,{R1-R7,LR} 堆栈寻址
9.LDMFD SP!,{R1-R7,LR} 堆栈寻址
10.BL LOOP1 相对寻址
四、为下面程序添上注释,只要注释5条。10分
AREA JUMP,CODE,READONLY声明代码段Examplel
CODE32 声明32位ARM指令
num EQU    2 跳转表中的子程序个数
ENTRY程序执行的入口点
start MOV R0,#0 设置3个参数,R0选择调用哪个子程序R0=0 MOV R1,#3 R1为子程序要用的参数R1=3
MOV R2,#2 R2为子程序要用的参数R2=2
BL arithfunc 调用子程序arithfunc,进行算术运算stop
MOV R0,#num 本条与下条指令的作用是参数传递
LDR R1,=0X20026
SWI 0X123456 将CPU的控制权交给调试器Arithfunc
CMP R0,#num 判断R0是否在有效范围之内
MOVHS PC,LP 如果超出范围则程序返回
ADR R3,JumpTable 读取跳转表的基地址
LDR PC,[R3,R0,LSL #2] 第三条根据参数R0的值跳转到相应的子程序JumpTable
DCD DoAdd
DCD DoSub
DoAdd
ADD R0,R1,R2 第四条子程序DoAdd执行加法操作R0=R1+R2
MOV PC,LR
DoSub
SUB R0,R1,R2
DoSub
SUB R0,R1,R2
MOV PC,LR 第五条子程序返回
END
五、程序设计20分
1.编写程序,将字符串1复制到字符串2。数据段定义如下:
SREA DA TA1,DA TA,READWRITE
STRING1 DCB “The university is heaven,or hell?”
STRING2 SPACE 100
STACK_TOP EQU 0x40002000
PRESERVE8
AREA SCopy, CODE, READONLY
EXPORT START
EXPORT strcopy
import main
ENTRY
START
LDR R13,=STACK_TOP
B main
strcopy
LDRB r2, [r1],#1
STRB r2, [r0],#1
CMP r2, #0
BNE strcopy
MOV pc,lr
END
2.编程实现a+b+c+d,可以汇编,也可以用C和汇编混合编程,但是不能全用C,因为实现不了。
data segment
a d
b ?
b db ?
c db ?
d db ?
sum dw 0
data ends
code segment
start:
mov ax, data
mov ds, ax
mov dx, 0
mov si, offset a
mov cx, 4
l:
mov ah, 0
mov al, si
add dx, ax
inc si
loop l
mov si, offset sum
mov [si], dx
mov ah, 4ch
int 21h
code ends
end start