第9章软件设计师上午试题分析与解答(1)计算机内存一般分为静态数据区、代码区、栈区和堆区,若某指令的操作数之一采用立即数寻址方式,则该操作数位于(1)
A.静态数据区B.代码区C
栈区D.堆区参考答案B[分析]本题考查运行过程中计算机内存布局及指令寻址方式
计算机运行时的内存空间划分情况如下图所示
可执行代码静态数据区栈↓ﻫ↑堆运行时为名字分配存储空间的过程称为绑定
静态数据区用于存放一对一的绑定且编译时就可确定存储空间大小的数据,栈用于存放一对多的绑定且与活动同生存期的绑定;堆用于存储由程序语句动态生成和撤销的数据
程序运行时,需要将程序代码(机器指令序列)和代码所操作的数据加载至内存
指令代码加载至代码区,数据则根据绑定关系可能位于静态数据区、栈或堆区
立即数寻址方式是指指令所需的操作数由指令的地址码部分直接给出,其特点是取指令时同时取出操作数,以提高指令的执行速度
(2)计算机在进行浮点数的相加(减)运算之前先进行对阶操作,若x的阶码大于y的阶码,则应将(2)
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
②求尾数和(差)
③结果规格化并判溢出:若运算结果所得的尾数不是规格化的数,则需要进行规格化处理
当尾数溢出时,需要调整阶码