第9章软件设计师上午试题分析与解答(1)计算机内存一般分为静态数据区、代码区、栈区和堆区,若某指令的操作数之一采用立即数寻址方式,则该操作数位于(1)。A.静态数据区B.代码区C.栈区D.堆区参考答案B[分析]本题考查运行过程中计算机内存布局及指令寻址方式。计算机运行时的内存空间划分情况如下图所示。可执行代码静态数据区栈↓ﻫ↑堆运行时为名字分配存储空间的过程称为绑定。静态数据区用于存放一对一的绑定且编译时就可确定存储空间大小的数据,栈用于存放一对多的绑定且与活动同生存期的绑定;堆用于存储由程序语句动态生成和撤销的数据。程序运行时,需要将程序代码(机器指令序列)和代码所操作的数据加载至内存。指令代码加载至代码区,数据则根据绑定关系可能位于静态数据区、栈或堆区。立即数寻址方式是指指令所需的操作数由指令的地址码部分直接给出,其特点是取指令时同时取出操作数,以提高指令的执行速度。(2)计算机在进行浮点数的相加(减)运算之前先进行对阶操作,若x的阶码大于y的阶码,则应将(2)。A.x的阶码缩小至与y的阶码相同,且使x的尾数部分进行算术左移B.x的阶码缩小至与y的阶码相同,且使x的尾数部分进行算术右移C.y的阶码扩大至与x的阶码相同,且使y的尾数部分进行算术左移D.y的阶码扩大至与x的阶码相同,且使y的尾数部分进行算术右移参考答案D[分析]本题考查浮点数的运算特点。浮点数的表示由阶和尾数两部分组成,其一般表示形式如下所示(不同系统的具体安排可能不同),阶码通常为带符号的纯整数,尾数为带符号的纯小数。阶符阶码数符尾数设有浮点数X=M×2i,Y=N×2j,求X±Y的运算过程如下。①对阶:使两个数的阶码相同。令K=|i-j|,将阶码小的数的尾数右移K位,使其阶码加上K。②求尾数和(差)。③结果规格化并判溢出:若运算结果所得的尾数不是规格化的数,则需要进行规格化处理。当尾数溢出时,需要调整阶码。④舍入:在对结果右规时,尾数的最低位将因移出而丢掉。另外,在对阶过程中也会将尾数右移使最低位丢掉。这就需要进行舍入处理,以求得最小的运算误差。(3)在CPU中,(3)可用于传送和暂存用户数据,为ALU执行算术逻辑运算提供工作区。A.程序计数器B.累加寄存器C.程序状态寄存器D.地址寄存器参考答案B[分析]本题考查寄存器的类型和特点。寄存器是CPU中的一个重要组成部分,它是CPU内部的临时存储单元。寄存器既可以用来存放数据和地址,也可以存放控制信息或CPU工作时的状态。在CPU中增加寄存器的数量,可以使CPU把执行程序时所需的数据尽可能地放在寄存器件中,从而减少访问内存的次数,提高其运行速度。但是,寄存器的数目也不能太多,除了增加成本外,由于寄存器地址编码增加也会相对增加指令的长度。CPU中的寄存器通常分为存放数据的寄存器、存放地址的寄存器、存放控制信息的寄存器、存放状态信息的寄存器和其他寄存器等类型。程序计数器用于存放指令的地址。令当程序顺序执行时,每取出一条指令,PC内容自动增加一个值,指向下一条要取的指令。当程序出现转移时,则将转移地址送入PC,然后由PC指向新的程序地址。程序状态寄存器用于记录运算中产生的标志信息,典型的标志为有进位标志位、零标志位、符号标志位、溢出标志位和奇偶标志等。地址寄存器包括程序计数器、堆栈指示器、变址寄存器和段地址寄存器等,用于记录各种内存地址。累加寄存器是一个数据寄存器,在运算过程中暂时存放被操作数和中间运算结果,累加器不能用于长时间地保存一个数据。(4)下面关于在I/O设备与主机间交换数据的叙述,(4)是错误的。A.中断方式下,CPU需要执行程序来实现数据传送任务B.中断方式和DMA方式下,CPU与I/O设备都可同步工作C.中断方式和DMA方式中,快速I/O设备更适合采用中断方式传递数据D.若同时接到DMA请求和中断请求,CPU优先响应DMA请求参考答案C[分析]本题考查I/O设备与主机间交换数据的方式和特点。I/O设备与主机间进行数据输入输出主要有直接程序控制方式、中断方式、DMA方式和通道控制方式。直接程序控制方式的主要特点是:CPU直接通过FO指令对I/0接口进行访问操作,主机与外设之间交换信息的每个步骤均在程序中表示出来,整...