版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第1章 练习题1、 简述冯诺依曼体系结构计算机的要点和工作过程。答:冯诺依曼体系结构计算机的要点: 计算机中的信息(程序和数据)以二进制方式表示。 程序预存储,机器自动执行。 计算机由运算器、控制器、存储器、输入设备和输出设备五大部分组成。计算机通过执行预存储在存储器中的程序来完成预定的运算。程序由计算机的指令序列构成,计算机在处理器的控制下,首先从存储器读取一条待执行的指令到处理器中,接下来分析这条指令,而后发出该指令对应的电平脉码序列,即执行该指令。并以此递归运行程序。2、 简述计算机各组成部分的功能。答: 中央处理单元(CPU):主要由运算器、控制器构成。其中运算器主要用于完成诸如加、减
2、、乘、除等算术运算和左右移位、与、或、非等逻辑运算;控制器主要用于完成机器指令的解析和执行,控制运算器进行相应的运算,控制数据在计算机各组成部分之间传送,控制计算机各组成部分有条不紊地协调工作等。 存储器(Memory)是计算机系统中用来存储程序和数据的信息记忆部件。 输入/输出设备:信息进出计算机的数据通道。3、 何谓总线?计算机中有哪几类总线?简述其用途。答:计算机的总线(Bus)就是连接计算机硬件各部件,用于计算机硬件各部件之间信息传输的公共通道。按照其传送信号的用途属性,总线可细分为:地址总线(Address Bus)、数据总线(Data Bus)和控制总线(Control Bus)三
3、类。 地址总线(A_Bus):专用于在CPU、存储器和I/O端口间传送地址信息的信号线。此类信号线传送的信息总是从CPU到存储器或I/O端口,它是单向信号线。 数据总线(D_Bus):专用于在CPU、存储器和I/O端口间传送数据信息的信号线。此类信号线传送的信息可以是从CPU到存储器或I/O端口(“写”操作),也可能是从存储器或I/O端口到CPU(“读”操作),它是双向信号线。 控制总线(C_Bus):专用于CPU与其它部件之间传送控制信息和状态信息的信号线。此类信号线的构成比较复杂,传送的控制、状态信息可以是从CPU到其它部件,也可能是从其它部件到CPU。此类总线中的某些具体的线是单向的(或
4、从CPU到其它部件,或反之),但作为总线来说,它是双向信号线。4、 简述计算机真值和机器数的概念。答:各个信息在计算机中的二进制表示形式称之为“机器数”,机器数所代表的值含义称为该机器数的“真值”。“真值”可以是数值,也可以是字符,甚至是语音或图象等。5、 什么是处理器的主频?什么是处理器的字长?答:所谓的“处理器的主频”指的是CPU的工作频率,单位是MHz(或GHz),用来表示处理器的工作频率。CPU字长是指运算器的位宽,单位是比特(bit),用于表示CPU一次运算可处理的二进制数据的位度。6、 简述计算机接口在计算机系统中的作用。答:“输入/输出接口”是用于外设与计算机之间桥接和匹配的专用
5、部件,通常以集成电路或板卡的形式存在。应用于计算机主机与外界的信息交互。7、 将下列十进制数分别转换为十六进制数和二进制数: 123.85 ; 93.125 ; 23.625 ; 65535答:123.85 = 0x7B.D99 = 01111011.110110011001b 93.125 = 0x5D.2 = 01011101.001b 23.625 = 0x17.A = 00010111.101b 65535 = 0xFFFF =1111 1111 1111 1111b8、 将下列二进制数分别转换为十六进制数和十进制数: 1100 1101.1b ; 1000 1101.01b ; 11
6、010.011b ; 101 1001 0111 0001b答:1100 1101.1b = 0xCD.8 = 205.51000 1101.01b = 0x8D.4 = 141.25 11010.011b = 0x1A.6 = 26.375101 1001 0111 0001b = 0x5971 = 228979、 完成下列二进制数的运算:答: 1010 0101b + 0011 1010 b = 11011111b 1100 1011b 0010 0100 b = 10100111b 1000 0101.1b + 0001 1110.11 b = 10100100.01b 1010 110
7、1.01b 0100 1001.10b = 1100011.11b10、 完成下列十六进制数的运算:答: 0x39 + 0x56 = 0x80 0x7B 0x3C = 0x3F 0x5D.A1 + 15.75 = 0x48.2C 0x83.02 1E.B3 = 0x64.4E11、 分别假设字长n=8,n=16,计算下列十进制数的补码:答:序号真值补码(n=8)补码(n=16)1560011 1000 (0x38)0000 0000 0011 1000 (0x0038)21150111 0011 (0x73)0000 0000 0111 0011 (0x0073)3-561100 1000 (
8、0xC8)1111 1111 1100 1000 (0xFFC8)4-1151000 1101 (0x8D)1111 1111 1000 1101 (0xFFC8)12、 假设字长n=16,写出下列补码的真值:答: 0000 0100 0010 1001真 = 0x0429真 = 1065 1000 0100 0010 1001真= 0x8429真 = -31703 1111 1111 1111 1111真 = 0xffff 真 = -1 0111 1111 1111 1111真 = 0x7FFF真 = 3276713、 假设运算器的长度n=16,完成下列补码运算,观察运算器内的结果值,观察C
9、F、DF和OF位的情况;再分别用真值运算验证,说明补码结果原因,总结OF位于与补码运算溢出的关系。答:补码运算结果码真值比对CFDFOF说明0000 0100 0010 1001 + 1000 0100 0010 10011000 1000 0101 0010(0x8852)1065+(-31703)= -30638-30638补=0x8852000运算无溢出1000 0100 0010 1001 + 1111 1111 1111 11111000 0100 0010 1000(0x8428)(-31703)+(-1)= -31704-31704补=0x8428110运算无溢出1111 111
10、1 1111 1111 +0111 1111 1111 11110111 1111 1111 1110(0x7FFE)(-1)+32767=3276632766补=0x7FFE110运算无溢出0111 1111 1111 1111 +0000 0000 0000 00011000 0000 0000 0000(0x8000)32767+1=32768(超出值域)-32768补=0x8000011运算有溢出14、 什么是ASCII编码?写出引号内各字符的ASCII编码“I Am a Student!”。答:ASCII编码-美国标准信息交换标准码( American Standard Code f
11、or Information Interchange, ASCII ),统一规定了常用符号的二进制数表示方式。计算机中常用ASCII编码表示字符信息。I Am a Student! 的 ASCII编码-略。15、 什么是嵌入式系统?有何特点?答:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。其特点是:它是嵌入到目标对象中的、软硬件定制的专用计算机系统。16、 举例在你的身边常见到的嵌入式系统产品,谈一谈你对“嵌入式系统”的初步理解。答:略。17、 简述嵌入式操作系统的特点。答:微内核、高可靠性、可裁减定
12、制、满足实时性。18、 简述你对嵌入式操作系统的基本认识,嵌入式操作系统在嵌入式系统开发中的必要性。答:略。第2章 练习题1、 何谓计算机体系结构?答:计算机体系结构是对计算机较高层次的抽象,是摆脱具体电路的实现而主要着眼于计算机系统的逻辑特征、原理特征、结构特征和功能特征的抽象。2、 什么是处理器的指令?什么是处理器的指令系统?答:计算机中的“指令”就是CPU执行某种操作的命令,它也是以二进制编码方式存在,每一条指令都对应着CPU要完成的特定操作。一台计算机中所有机器指令的集合称为该CPU的“指令系统”。3、 术语指令和语句有何差别?答:指令一般针对处理器而言,它在物理操作级仅指示处理器完成
13、一个具体操作,是计算机(处理器)编程的最细小的编程描述粒子。语句一般针对高级语言,一般是在算法级、逻辑级描述一个算逻运算;他们在描述程序时具有不同的描述级别。4、 什么是RISC?什么是CISC?简述他们的特点与差别。答:RISC是Reduced Instruction Set Computer,精简指令集计算机的缩写。它的特点是指令系统精炼,处理器电路逻辑相对简单,且能够以更快的速度执行操作。对于负载的功能需要编程实现。CISC是Complex Instruction Set Computer,复杂指令集计算机的缩写。它的特点是指令系统中含有大量的类似于高级程序设计语言结构的复合功能指令。指
14、令系统庞大,处理器硬件电路的复杂度。5、 (4)ARM7处理器是几级流水线?在ARM7处理器中,“PC指向的是下一条要执行的指令”,这句话对吗?为什么?答:ARM7处理器是三级流水线。在ARM7处理器中,“PC指向的是下一条要执行的指令”,这句话不对,因为流水线的存在,指令码即使取送到处理器中也未必被执行;应该说“PC指向的是下一条要取指的指令”。6、 ARM7中的状态、模式分别要说明什么问题?答:两种处理器“状态” -分别用于支持两种指令系统。 ARM指令系统 Thumbe指令系统7种处理器“模式”-分别应用于7种场合,具有不同的寄存器资源、权限。7、 (5)ARM处理器的工作状态分为哪二种
15、?ARM处理器又是怎么定义和标志的?答:ARM处理器的工作状态分为“ARM状态”和“Thumbe”状态。在“ARM状态”下,处理器执行32位的指令码,在“Thumbe状态”下,处理器执行16位的指令码。“ARM状态”和“Thumbe”状态下,处理器都是32位的处理器。ARM处理器中的CPSR寄存器的T_bit(CPSR5)为1时,ARM处理器的当前状态为“ARM状态”;ARM处理器中的CPSR寄存器的T_bit(CPSR5)为0时,ARM处理器的当前状态为“Thumbe状态”。8、 ARM7TDMI支持哪几种指令集,各有什么特点?答:ARM7处理器分别在“ARM状态”下执行ARM指令集指令码,
16、在“Thumbe状态”下执行Thumbe指令集指令码。 ARM指令集指令丰富、功能强大,Thumbe指令集指令精简、功能紧凑; ARM指令集指令码长都是32位,Thumbe指令集指令码长都是16位; ARM指令集、Thumbe指令集支持的都是32位运算指令。9、 (7)ARM7处理器有哪些工作模式?不同工作模式下CPSR寄存器的模式位如何设定?列表说明。答:ARM7处理器有用户模式(usr)、系统模式(sys)、管理模式(svc)、终止模式(abt)、未定义指令模式(und)、中断模式(irq)和快速中断模式(fiq)共7种模式。ARM处理器使用CPSR寄存器的CPSR 5:0来标示当前当前所
17、处的工作模式,具体对应如下:序号M4:0处理器工作模式10b10000(0x10)用户模式(usr)20b10001(0x11)FIQ模式(fiq)30b10010(0x12)IRQ模式(irq)40b10011(0x13)管理模式(svc)50b10111(0x17)中止模式(abt)60b11011(0x1b)未定义模式(und)70b11111(0x1f)系统模式(sys)10、 (8)描述ARM7处理器的内部寄存器结构,并分别说明R13、R14、R15寄存器的作用。答:ARM7处理器的内部寄存器寄存器类别寄存器名各种模式下可见的寄存器用户系统管理终止未定义irqfiq通用寄存器R0R0
18、R1R1R2R2R3R3R4R4R5R5R6R6R7R7R8R8R8_fiqR9R9R9_fiqR10R10R10_fiqR11R11R11_fiqR12R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_undR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR-SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiq其中:R13被处理器用作处理器堆栈指针SP;ARM处理器中共有6个R13,分别隶属于对应的处理器模式。如此,处
19、理器可以同时开辟6个处理器堆栈,分别服务于对应的处理器模式。R14被处理器用作连接寄存器LR;LR寄存器用于备份PC,即用于记录程序的断点或调用点。ARM处理器中共有6个R14,分别隶属于对应的处理器模式。R15被处理器用作指令计数器PC。ARM处理器中只有一个PC,PC指向的是下一条要取指的指令。11、 (9)什么是堆栈?堆栈有几种类型,简述各类型堆栈的进/出栈过程。答:堆栈(Stack)是一种具有“后进先出”(LIFO-Last In First Out)特殊访问属性的存储结构。按照入栈时SP的变化方向和SP指向单元是否含有堆栈数据,堆栈共有满递增、空递增、满递减和空递减四种方式。 满递增
20、堆栈入出栈操作:略! 空递增堆栈入出栈操作:入栈操作过程:SPXX ;将入栈数据写入到堆栈指针SP所指单元SPSP+1 ;递增调整堆栈指针SP出栈操作过程:SPSP-1 ;调整堆栈指针SPXXSP ;将堆栈指针SP所指单元中的数据弹出 满递减堆栈入出栈操作:入栈操作过程:SPSP-1 ;调整堆栈指针SPSPXX ;将入栈数据写入到堆栈指针SP所指单元出栈操作过程:XXSP ;将堆栈指针SP所指单元中的数据弹出SPSP+1 ;调整堆栈指针SP 空递减堆栈入出栈操作:略!12、 什么是“字对齐”和“半字对齐”数据存储?答:“半字”数据必须存放在存储器紧邻的两个字节单元,并且首字节地址必须能被2整除
21、,这样存储的16bit数据称为半字对齐存储数据,16bit数据这样的存储方式称为半字对齐存储。“字”数据必须存放在存储器紧邻的4个字节单元,并且首字节地址必须能被4整除,这样存储的32bit数据称为字对齐存储数据,32bit数据这样的存储方式称为字对齐存储。13、 简述程序计数器(PC)在处理器工作中的作用。答:CPU总是按照PC的指向对指令序列进行取指、译码和执行,也就是说,最终是PC决定了程序运行流向。在计算机运行中,处理器依据当前的情况和程序指令自动地修改PC,以实现程序预存储,计算机自动执行。14、 (12)简述ARM处理器中的返回连接寄存器(LR)在处理器工作中的作用。答:在ARM处
22、理器中使用R14实现对断点和调用点的记录,即使用R14用作返回链接寄存器(Link Register,LR)。在硬件上CPU自动完成相应返回点的记录。需要时,可依据LR寄存器中的值追溯返回点。15、 (13)分别简述ARM处理器中的CPSR、SPSR在处理器工作中的作用。答:ARM处理器中只有一个CPSR寄存器,被各模式共用,它记录了处理器当前的状态、模式、中断屏蔽状态以及处理器的运算状态标志。ARM处理器中含有5个存储程序状态寄存器SPSR(Saved Program Status Register),他们分别为SPSR_svc、SPSR_abt、SPSR_und、SPSR_irq、SPSR
23、_fiq,分别隶属于ARM处理器的5种异常模式。当处理器因某种异常发生而进入到对应的异常模式时,相应模式的SPSR将自动地备份CPSR的原值,将来可使用此SPSR中保存的备份值恢复CPSR。16、 结合CPSR的结构,说明其中的M4:0的作用和T位的作用。答:M4:0位用于标志处理器的当前模式;T位用于标志处理器的当前状态。17、 结合CPSR的结构,说明其中的I位和F位的作用。答:I位用于标志处理器对于IRQ异常的屏蔽状态;I=1时,表示处理器屏蔽了IRQ异常,I=0时,表示处理器可以响应IRQ异常。F位用于标志处理器对于FIQ异常的屏蔽状态;F=1时,表示处理器屏蔽了FIQ异常,F=0时,
24、表示处理器可以响应FIQ异常。18、 简述ARM7TDMI内部有哪些寄存器及特点。答:ARM微处理器内共有37个32位的程序可访问寄存器物理资源,其中31个通用寄存器,6个状态寄存器。寄存器类别寄存器名各种模式下可见的寄存器用户系统管理终止未定义irqfiq通用寄存器R0R0R1R1R2R2R3R3R4R4R5R5R6R6R7R7R8R8R8_fiqR9R9R9_fiqR10R10R10_fiqR11R11R11_fiqR12R12R12_fiqR13(SP)R13R13_svcR13_abtR13_undR13_irqR13_fiqR14(LR)R14R14_svcR14_abtR14_un
25、dR14_irqR14_fiqR15(PC)R15状态寄存器CPSRCPSRSPSR-SPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqR0R7:是7个模式共用的数据寄存器;R8R12:FIQ模式具有私有的R8R12,其他6种模式共用一套R8R12;R13、R14:用户模式和系统模式公用一套R13、R14,其他5种模式各自具有私有的R13、R14。R15:7个模式共用R15,用作为程序计数器寄存器PC;CPSR:7个模式共用CPSR,用作为当前程序状态寄存器;SPSR:5种异常模式各自具有私有的SPSR。19、 (17)什么是ARM处理器的异常?ARM处理器中有哪
26、几种异常?答:在ARM中,异常是一些事件,这些事件能导致正常的程序执行流程被暂时地停止,而进入到该事件对应的处理器异常模式并对该事件进行处理,这个过程称作异常响应。ARM中定义了复位、未定义指令、SWI(软中断)、预取指终止、预取数终止、irq以及fiq等种异常。20、 分别简述ARM7的IRQ、FIQ异常处理过程,说明其异常向量地址。答:发生FIQ异常时,CPU自动转移到0x0000 001C地址单元取指执行,同时处理器会自动转换到快中断模式。发生IRQ异常时,CPU自动转移到0x0000 0018地址单元取指执行,同时处理器会自动转换到IRQ中断模式。IRQ、FIQ异常向量地址分别是:0x
27、0000 0018、0x0000 001CIRQ异常处理过程: 备份PC、CPSR的值到LR_irq、SPSR_irq; CPSR的I位置1, F位无影响,禁止IRQ异常; CPSR的M4:0赋值0b10010,处理器转入到ARM状态的irq模式; PC(R15) 0x0000 0018;FIQ异常处理过程: 备份PC、CPSR的值到LR_fiq、SPSR_fiq; CPSR的I位和F位置1,禁止IRQ、FIQ异常; CPSR的M4:0赋值0b10001,处理器转入到ARM状态的fiq模式; PC(R15) 0x0000 001C;21、 (19)ARM7处理器对哪些异常可以屏蔽控制?如何屏蔽
28、或允许控制?答:ARM7处理器对IRQ、FIQ异常可以屏蔽控制;对CPSR寄存器的I_bit和F_bit置1或清0 可以分别屏蔽或允许响应IRQ、FIQ异常。序号CPSR bit值说明1CPSRI=1,屏蔽IRQ异常响应;=0,允许IRQ异常响应;2CPSRF=1,屏蔽FIQ异常响应;=0,允许FIQ异常响应;22、 说明CPSR中T位的作用,ARM7处理器如何切换状态?答:T - 处理器状态控制位;1- Thumb状态,0- ARM状态。ARM7处理器必须通过 BX 指令进行状态切换。23、 存储器和IO端口统一编址和独立编址各有什么特点?ARM7处理器采用哪种编址方式?答:统一编址方式-存
29、储器单元资源和IO端口资源统一编址在一个地址空间。特点:按地址空间位置约定各分类资源,访问IO端口如同访问存储器单元,无需专用的IO访问指令。芯片上没有专用于IO访问的引脚。独立编址方式-存储器资源和IO端口资源分别编址在两个地址空间,存储器地址空间和IO地址空间。特点:按资源分类的地址空间清晰,使用不同的指令访问存储器和IO端口,处理器指令系统中既有存储器访问指令,又有专用的IO访问指令。芯片上有专用于IO访问的引脚。ARM7处理器的存储结构采用冯诺依曼存储体系结构,程序存储器、数据存储器和I/O统一编址(即使用同一个地址空间),指令和数据共用一条32位的数据总线。24、 (22)大端存储模
30、式和小端存储模式的含义是什么?画出数据0x87654321分别以大端存储模式和小端存储模式存储在0x4000单元的具体存储格式。答:高位数据存储在高地址字节,这种组织数据的存储方式称为小端模式;另一种则反之,高位数据存储在低地址字节,这种组织数据的存储方式称为大端模式;数据0x87654321以小端存储模式存储在0x4000单元的具体存储格式:字节地址单元单元数据0x40030x870x40020x650x40010x430x40000x21数据0x87654321以大端存储模式存储在0x4000单元的具体存储格式:字节地址单元单元数据0x40030x210x40020x430x40010x6
31、50x40000x87第3章 练习题1、 ARM7TDMI支持哪几种指令集,各有什么特点?答:ARM7TDMI支持32位的ARM指令集和16位的Thumb指令集。ARM指令集效率高、功能全,但是代码密度低,所有ARM指令都是可以有条件执行的;Thumb指令集,功能上是ARM指令集的子集,Thumb状态下的ARM7TDMI(-S)仍然是32位的处理器,因此具有更高的代码密度;Thumb指令中仅有B指令具备条件执行功能。2、 ARM指令的寻址方式有几种?并指出下列指令中源操作数的寻址方式。 ADD R0, R1, R2 LDR R0, R2 MVN R0, #0x0F2 LDMIA R0, R1-
32、R5 STR R2, R4, #0x02 LDR R1, R2, R3 MOV R1, R1, ROR #2 LDR R1, R3, #0x04答:ARM处理器寻址方式可以分为两大类:数据处理指令操作数寻址方式和存储器访问指令操作数寻址方式,其中数据处理指令操作数寻址方式又可分为立即数寻址方式、寄存器寻址方式和寄存器移位寻址方式3种类型;存储器访问指令操作数寻址方式又可以分为寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址(块拷贝寻址)和堆栈寻址5种类型。 ADD R0, R1, R2寄存器寻址方式 LDR R0, R2寄存器间接寻址 MVN R0, #0x0F2立即数寻址方式 LDMIA
33、 R0, R1-R5多寄存器寻址(块拷贝寻址) STR R2, R4, #0x02相对寻址 LDR R1, R2, R3基址变址寻址 MOV R1, R1, ROR #2寄存器移位寻址方式 LDR R1, R3, #0x04相对寻址3、 ARM指令的基本格式?答:ARM指令的基本格式如下:S , , S , ,其中,号内的项是必需的,号内的项是可选的。如是指令助记符,是必须含有的,而为指令执行条件,是依据实际需要可选项。若不书写,则使用默认条件AL(无条件执行)。opcode指令助记符,用于指定指令的操作功能。cond执行条件,用于指定指令的执行条件。S用于指定指令的执行是否影响CPSR寄存器
34、的值,书写时影响CPSR。Rd目标寄存器,用于存放运算的结果。Rn第1个操作数的寄存器。用于存放参与运算的操作数1。operand2第2个操作数。用于指定参与运算的操作数2。4、 指出下列指令是否正确,若不正确请说明原因。 MOV R1, #101 MVN R1, #0x10F LDMIA R11, R2-R8 ADD R0, R2, #4! LDR R4, R5! MRS PC, CPSR LDMFD R0!, R2, R5-R8 ADD R3, R3, R7答:(1)对(2)错,MVN指令中的源操作数不是8bit位图数据(3)对(4)错,立即数后不能附加!操作符(5)对(6)对(7)对(8
35、)错,ADD指令中的操作数不能用存储器访问寻址方式5、 何谓ARM指令的条件码?默认的条件码是什么?举例说明ARM指令的条件码对指令执行的影响。答:所谓的ARM指令条件码分别对应了CPSR寄存器标志位(N、Z、C、V)的16个值组合状态,处理器根据CPSR中标志位N、Z、C和V的值来确定该指令是否执行,当CPSR中的条件码标志满足时,处理器执行本条指令,否则本条指令等价于空操作。其中条件(AL) 是缺省条件,可以省略。如果指令不含有条件码时,就默认是该条件。6、 解释“满堆栈”、“空堆栈”、“递增堆栈”和“递减堆栈”? ARM指令系统中是如何支持的?答:满堆栈就是堆栈指针总是指向最后压入堆栈的
36、数据的存储单元的堆栈,堆栈指针所指单元中含有堆栈数据;空堆栈就是堆栈指针总是指向下一个将要放入数据的存储单元的堆栈,堆栈指针所指单元中未含有堆栈数据;递增堆栈就是堆栈底部位于低地址处,入栈操作后堆栈向高地址方向增长的堆栈;递减堆栈就是堆栈底部位于高地址处,入栈操作后堆栈向低地址方向增长的(指针地址递减)的堆栈;ARM指令系统支持的是满递减堆栈,即堆栈底部位于高地址处,堆栈向低地址方向递减,且堆栈指针总是指向最后压入堆栈的数据的存储单元;7、 请说明MOV指令与LDR加载指令的区别和用途。答:MOV指令用于将8位位图立即数或寄存器数据传送到目标寄存器(Rd),也可用于移位运算等操作。LDR指令用
37、于从存储器中加载一个数据到寄存器中。用于访问存储器操作。8、 什么是文字池?它在ARM汇编程序中用和用途?答:文字池是镶嵌在代码中的一段存储空间,可用来存放常量数据;这些常量可以是程序中的立即数,也可以是存储单元地址。ARM汇编语言中使用LDR加载指令附加文字池的方法,以实现对任意32bit立即数的访问。9、 解释B指令、BL指令与BX指令的功能差别?简述它们的应用场合。答:B指令跳转到标号指定的地址执行程序。BL指令先将下一条指令的地址拷贝到R14中,然后跳转到标号指定地址运行程序。BX指令跳转到Rm指定的地址处执行程序,若Rm0为1,则跳转时自动将CPSR中的标志T置位,即把目标地址的代码
38、解释为Thumb代码;若Rm0为0,则跳转时自动将CPSR中的标志T清零,即把目标地址的代码解释为ARM代码。该指令用于处理器状态切换。10、 ARM汇编指令条件码如下表,分析下两段程序片断的功能,写出其等价的类C语言功能描述:条件助记符标志含义EQZ=1相等NEZ=0不相等CS/HSC=1无符号数大于或等于CC/LOC=0无符号数小于MIN=1负数PLN=0正数或零VSV=1溢出VCV=0没有溢出HIC=1,Z=0无符号数大于LSC=0,Z=1无符号数小于或等于GEN=V有符号数大于或等于 LTN!=V有符号数小于 GTZ=0,N=V有符号数大于 LEZ=1,N!=V有符号数小于或等于 AL
39、任何无条件执行 (指令默认条件) NV任何从不执行(不要使用) 程序片断2:CMP R0 , #10 CMPNE R1 , #20 ADDNER0 , R0 , R1程序片断1:CMPR0, R1 ADDHIR0 , R0 , #1 ADDLSR1 , R1 , #1答:(1)if(R0 R1)(2)if( (R0!=10)&(R1!=20) ) R0+; R0 = R0 + R1; else R1+;11、 使用ARM汇编指令的条件执行功能,翻译下面C代码语句。if(x = = y)a = b + c;else a = b c;if(x = = y) & ( a = = b)c = c *
40、2;答:(1)MOVR0,x;(2)MOVR0,x;MOVR1,y;MOVR1,y;MOVR2,a;MOVR2,aMOVR3,b;MOVR3,bMOVR4,c;MOVR4,cCMPR1,R2;CMPR0,R1ADDEQR2,R3,R4;CMPEQR2,R3SUBNER2,R3,R4;MOVR4,R4, LSL #212、 下列代码段是实现开IRQ中断和关IRQ中断功能,试补齐空白处内容。_ R1,CPSRORR R1, _ CPSR_c, R1_ R0,CPSRBIC R1,R0,_ CPSR_c, R1答:(1)MRSR0,CPSR(2)MRSR1,CPSRBICR1,R2,#0x80ORR
41、R1,#0x80MSRCPSR_c,R1MSRCPSR_c,R113、 若ARM CPU中各寄存器及存储单元参数如下图所示,试写出指令执行后,各寄存器及存储单元中内容为多少。 STMIAR13!,R0-R3LDMDBR13, R0-R3 答:14、 使用ARM指令实现2个128bit数的减法的功能段(第一个数由高到低放在寄存器R3R0,第二个数由高到低放在寄存器R7R4,结果差由高到低放在寄存器R11R8中。)答:SUBSR8,R0,R4;低32bit运算,可能产生借位SBCSR9,R1,R5;带借位计算次低32bitSBCSR10,R2,R6;带借位计算次高32bitSBCSR11,R3,R
42、7;带借位计算高32bit第4章 练习题1、 什么是计算机语言?答:机器语言是一种用二进制代码表示指令和数据,能被机器直接识别的计算机语言。2、 相对于高级语言,汇编语言有何特点?答:汇编语言是一种面向物理层操作的计算机语言。不同的处理器类型,具有不同的汇编语言。使用汇编语言编写程序能够直接利用硬件系统的特性(如寄存器、标志、中断系统等),可直接对位、字节、字寄存器或存储单元、I/O端口进行处理,同时也能直接使用CPU指令系统提供的各种寻址方式,编制出高质量的程序,这样的程序不但占用内存空间少,而且执行速度快。当然,由于汇编语言不直接支持复杂的抽象数据类型,在描述目标系统数学模型时,还需要程序
43、员在存储器单元组织各种抽象数据类型的存储方式,使得汇编语言程序设计较高级语言困难得多,需要较多的软件开发时间,也增加了程序设计过程中出错的可能性,程序维护也困难。3、 如何在汇编程序中显示声明文字池?什么情况下需要显示声明文字池?一般应在程序的什么位置显示声明文字池?为什么?答:使用LTORG汇编器伪指令用于显示声明一个文字池(literal pool)。实际应用中,如果ARM需要处理的操作数不符合8bit位图立即数的要求时,那么就需要使用文字池来存放这个常量。在ARM汇编语言中,使用LDR加载指令相对寻址文字池中存放的任意32bit立即数。因为LDR指令的寻址范围是指令位置的前后4KB,所以
44、如果LDR指令所在位置距离文字池超出4KB范围,那么需要在程序中的适当位置,使用LTORG伪指令显式声明文字池。解决方法:一般总可以在LDR伪指令前后4KB的范围内找到分支指令,文字池可声明在分支(B)指令之后的紧邻位置,因为B指令总是会将程序的执行转移到其它地方的,所以这样做不会影响代码的正常执行。4、 简述汇编程序设计的一般流程。答:使用计算机通过编程序解决某一问题时,通常按以下步骤进行:分析问题,建立数学模型;确定算法;设计程序流程图;合理分配寄存器、存储空间和外设资源;编制程序;调试程序;形成文档;5、 实现汇编程序分支的关键语句有哪几条?分别用于什么场合?答:汇编程序分支结构的实现是
45、通过在运行时由机器根据不同的条件自动作出判断,选择执行相应的处理程序段。分支指令主要有BL指令、B指令和BX指令,分别用于调用子程序、直接跳转和带状态的跳转场合。6、 循环控制有哪几种方法?各有什么应用特点?答:循环控制有两种方法。计数控制循环:通过计数循环次数,判断是否已达到预定次数,控制循环。适合已知循环次数的循环控制。条件控制循环:通过判断循环终止条件是否已成立,控制循环。适合仅知道结束条件的循环控制。7、 汇编子程序传递参数有哪几种方式?答:汇编子程序传递参数有三种方式,分别为:寄存器传递参数方式;存储区域传递参数方式;堆栈传递参数方式;8、 用汇编语言编写程序将R0寄存器中的字数据分
46、成4组,每组8位,然后分别存放到R1、R2、R3和R4中。答:AREA decode, CODE, READONLY; 代码段名decodeENTRY; 程序的入口CODE32startLDRR0, =xLDRR0,R0; 将x加载到寄存器R0MOV R1, #0xFFAND R1, R1, R0; 取x的低八位MOV R2,#0xFFANDR2,R2,R0, ROR #8; 取x的次低八位MOV R3, #0xFFAND R3, R3, R0, ROR #16; 取x的次高八位MOV R4, #0xFFAND R4, R4, R0, ROR #24; 取x的高八位stopMOVR0,#0x1
47、8; 这三条指令是ADS调试环境特约LDRR1,=0x20026;程序运行结束返回编译器调试环境SWI0x123456AREA Data, DATA, READWRITE; 数据段的名字DataxDCD123456789END; 结束9、 用汇编语言编写程序统计任意字符串包含的字符个数。(约定:字符串以0为结束标志)答:AREA count, CODE, READONLY; 代码段名 countENTRY; 程序的入口CODE32startLDRR0, =string; R0指向字符串string中第一个字符MOV R2, #0CONTILDRB R1, R0; 将string中的一个字符加载到寄存器R1CMP R1, #0; 是否是字符串结束标志ADDNE R2, R2, #1 ; 如果不是,统计个数增加1ADDNE R0, R0, #1; 如果不是,指针拨
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢琴共鸣盘制作工岗位责任制评优考核试卷含答案
- 苏教版小学语文六年级下册第12单元同步练习题及答案
- 2026下半年小学道法教资面试法律试讲试卷
- 水利岗2026事业单位面试自测卷含答案配套答题思路解析
- 农业岗2026面试模拟练习含解析配套答题思路含答案
- 2026年事业编地质岗专项训练试卷
- 文旅岗2026面试模拟练习含答案
- 【完整版】消防安全知识宣传教育课件
- Unit 5 Humans and Nature Writing Workshop 教案-高一英语新北师大版必修第二册
- 2026年广东省人教版三年级数学下册第7单元乘除法混合运算课件
- 医院智慧管理分级评估标准体系(试行)-全文及附表
- 华兴数控WA-32XTA用户手册
- 科技成果转化贡献证明书(7篇)
- GB/T 34722-2025浸渍胶膜纸饰面胶合板和细木工板
- 鼻腔冲洗考试题及答案
- DJDK-1型电力电子技术及电机控制实验装置实验指导书V34版
- DB14-T 2870-2023 石窟寺预防性保养技术规范
- 老年人扭伤应急预案
- 水产饲料购销合同样式
- 《老年健康照护与促进》课件-模块七 老年人常见疾病照护
- 新生儿转运箱使用
评论
0/150
提交评论