1、2011年上半年软件水平考试(中级)嵌入式系统设计师下午(应用技术)试题真题试卷及答案与解析 一、试题一 0 阅读以下关于某嵌入式系统设计方案的叙述,回答问题 1至问题 3,将答案填入对应栏内。 说明 通常计算机按其体系结构分为冯 诺依曼 (Von Neumann)结构和哈佛 (Harvard)结构。冯 诺依曼结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。复杂系统的不同处理器可采用不同类型体系结构。 某嵌入式系统由数据 处理模块、信号处理模块和光纤网络交换模块组成,如图 1-1所示。其中数据处理模块的主
2、处理器选用 PPC7447,内部集成了二级 Cache,并有 SDAM存储器、 FLASH、 NvRAM、实时时钟、 FC(Fabric Channel)通信接口、以太网接口和 RS232接口;信号处理模块采用 DSP TMS320C6000,并有 FC通信接口、RS232接口,用于 SPM与外部数据通信;光纤网络交换模块提供 FC协议交换能力,主要由控制单元和交换单元两部分组成。 本嵌入式系统的数据处理模块主要接收外部命令、控制系统运行、与系统其 他模块通信;信号处理模块主要进行图形图像处理,需要较大的运算量和较高的运算速度。1 回答下列问题,将答案填写在对应的栏目中。 本嵌入式系统的数据处
3、理模块采用 (1)体系结构,信号处理模块采用 (2)体系结构。 在设计中断时,中断触发方式一般分为沿中断和电平中断。沿中断利用 (3)或 (4)作为中断触发信号,电平中断利用 (5)或 (6)作为中断触发信号。 2 在设计数据处理模块 DPM时,假设某桥芯片内部集成一路递增定时器,定时器位宽为 32位,最高位为控制使能位,输入时钟为 25MHz。请回答下面三 个问题,将答案填写在对应的栏目中 (给出表达式即可 )。 (1)该定时器最长定时时间是多少 (单位 ns)? (2)设置 10ms定时时间,则定时器的初值为多少 ? (3)若改为一路递减定时器,设置 10ms定时时间,则定时器的初值为多少
4、 ? 3 嵌入式系统底层 FC通信驱动对大数据采用 DMA数据传输。图 1-2是未完成的DMA数据传输工作流程图,请从下面 中选择正确的答案,完成该图,将答案填写在对应栏中。 备选答案: 字计数器计数 DMA发送中断 DMA响应 DMA接收 4个字节 发送内存地 址 再次修改内存地址 传送结束 继续传送 二、试题二 3 阅读以下关于 AD574(12位的 A/D转换器 )的叙述,回答问题 1至问题 3,将答案填入对应栏内。 说明 AD574可以通过简单的三态门、锁存器接口与微机系统的系统总线相连接,也可以通过可编程接口 (如 8255)与系统总线相连接。由表 2-1可知, AD574可以工作在
5、 8位,也可以工作在 12位。图 2-1为以 8255为接口芯片,将工作于 12位下的 AD574接到 8位 ISA系统总线上。4 在图 2-1中,通过 8255的 A0、 A1口地址选择信号线进行 PA口、 PB口、 PC口的控制。回答下列问题,将答案填写在对应的栏目中。 (1)A0为 0, A1为 0时控制(1)口; (2)A0为 0, A1为 1时控制 (2)口; (3)A0为 1, A1为 0时控制 (3)口。 5 简要回答下列关于 74LS138器件的功能以及作用的问题,将答案填写在对应的栏目中。 (1)74LS138器件在图 2-1中的功能是 (1); (2)在图 2-1中,通过
6、A2 A15来控制 74LS138的输出端 ,要使得 74LS138输出 有效, A2、 A3、 A4必须为 (2)电平, A5、 A6必须为 (3)电平。 6 图 2-1中的连接可以简化,将 AD574的 CE和 12/ 管脚接为高电平,而使 和A0接地。此时只需要用 来启动 AD574的变换,然后通过查询 STS状态来判断变换是否完成 (AD574的 STS管脚由高变低表明 AD574变换完成 )。对应的采集变换程序如下,最终结果是将变换好的数据放在 BX中。请补全下面程序中的空(1) (4),将答案填写在对应的栏目中。 ; 对 8255初始化 , 此段程序放在应用程序开始的位置上 INT
7、I55: MOV DX, 0063H MOV AL, 1001101OB; 8255的 A口 8位、B口 8位,以及 C口的高 4位均设置为输入, C口的低 4位设置为输出 OUT DX, AL ; 控制字写入 8255的控制寄存器 MOV AL, 00000001B OUT DX, AL ; 使用位控方式将 PC0置位 ; 以下是对输入信号进行一次变换的程序 ACQUQ: MOV DX, 0062H MOV AL, 00000000B OUT DX, AL MOV AL, (1) B; 二进制表示 OUT DX, AL ; 由 PC0输出低电平到高电平启动变换 NOP NOP WAITS:
8、IN AL, DX ; 取出AD574的 STS状态 AND AL, (2) H ; 判断变换是否结束,十六进制表示 JNZ WAITS MOV DX, 0060H IN AL, DX ; 读取 A口取得 A/D变换的低 8位 MOV BL, (3) ; 将 A口获取的低 8位放在 BL中 MOV DX, 0061H IN AL, DX ; 读取 B口数据 AND AL, (4) H ; 取 AD574数据的高 4位,十六进制表示 MOV BH, AL RET 三、试题三 6 下面是关于嵌入式软件测试方面的叙述,回答问题 1至问题 3,将解答填入的对应栏内 。 说明 某公司是一个有资质的专业嵌
9、入式软件测评中心,承担了一项嵌入式软件的测试任务。按用户要求,需要对被测软件进行单元测试、部件 (集成 )测试和系统测试。 7 软件测试中的单元测试、部件 (集成 )测试和系统测试都有各自的测试目标。以下描述中属于单元测试的是 (1),属于部件 (集成 )测试的是 (2),属于系统测试的是(3),请把以下 8个选项的序号分别填入上述空白处,且不能重复。将答案填写在对应的栏目中。 测试对象为单个模块或者函数 测试对象包括整个软件系统,以及软件所依赖的硬件、外设 等 测试对象为多个模块或多个单元 整个测试必须在系统实际运行环境中进行 主要测试模块内部逻辑结构的正确性 测试各个模块间的调用接口 包括
10、测试部分全局数据结构及变量 主要测试局部数据结构及变量 8 被测软件研制方提出,为节约成本,由软件开发人员对所开发的软件进行测试,测评中心仅仅进行测试结果确认,并按测评中心规定编写各种测试文档并出具证明。此提议遭到测评中心的反对。软件研制方认为: (1)自己编写的程序,结构熟悉,需求清楚,易发现问题; (2)自 己测试后,又经过第三方的确认,是可行的; (3)知识产权可受保护。 测评中心反驳: (1)程序不能由编写者自己测试,就像不能既当运动员又当裁判员一样; (2)自己测试,有弄虚作假的嫌疑; (3)软件测试不能丧失独立性,仅由测评中心确认,损害测评中心声誉,不行。 针对上述情况,应该由 (
11、1)进行测试。软件研制方的 3条理由正确的有 (2)条,错误的有 (3)条;测评中心所说的正确的有 (4)条,错误的有 (5)条。 9 判断以下关于软件测试叙述的正确性,回答 “错 ”或 “对 ”, 并将 其填入在对应栏内。 (1)判定 /条件覆盖使每个分支至少被执行一次,且判定中的每个条件都获得所有可能的逻辑值。 (2)在没有需求文档的条件下能够进行黑盒测试。 (3)在进行压力测试的同时可以进行单元测试。 (4)软件测试中设计的测试实例 (test case)主要由输入数据和预期输出结果两部分组成。 四、试题四 9 阅读以下关于汇编语言方面的叙述,回答问题 1至问题 3,将答案填入对应栏内。
12、 说明 汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替机器码,用地址 符号或标号代替地址码,直接同计算机的底层软件甚至硬件进行交互,具有代码优化、运行效率高等特点。本题针对的是 x86平台下 Microsoft公司的 MASM 6.x汇编语言。 10 汇编语言中的数值表达式一般是指由运算符连接的各种常数所构成的表达式。汇编程序在汇编过程中计算表达式,由于在程序运行之前就已经计算出了表达式,所以运行速度没有变慢,而程序的可读性却增强了。表 4-1列出了 MASM常见的一些运算符及其含义,请将表 4-1中 处运算符的含义写在答题纸的对应栏中。11 运算符具有优先级。表 4-2按照优
13、先级从高到低排列常见的一些运算符,请从以下备选的运算符中按照优先级选择 (1) (5)处的运算符,将其写在对应栏中。 备选的运算符: XOR MOD HIGH AND GT12 BIOS软件开发接口由一批子程序组成,负责管理系统内的输入输出设备,直接为操作系统和应用程序提供底层设备驱动服务。常用的 BIOS服务及功能见表 4-3所示。若调用视频服务功能 (10H)中的光标设置子功能 (02H),将视频页上的光标移到 3行14列,用如下汇编语言实现,请补充完整下面程序中的 (1) (4)处,将答案填写在对应栏中。 MOV AH, (1)H ; 十六进制表示 MOV DH, (2)H MOV DL
14、, (3)H INT(4)H 五、试题五 12 阅读以下关于嵌入式 C语言编程方面的问题,回答问题 1至问题 3,将答案填入对应栏内。 说明 嵌入式 C语言编程中常涉及位运算、宏定义的问题,以及大端方式 (Big-endian)、小端方式 (Little-endian)的访问问题。 13 嵌入式系统中常要求用户对变量或寄存器进行位操作。下面的两个函数分别为设置和清除变量 a的第 5位。请使用下面的宏定义 BIT5按要求对变量 a进行相应的处理。在函数 set_bit5中,用位或赋值操作 (|=)设置变量 a的第 5位,在函数clear_bit5中,用位与赋值操作 ( =)清除变量 a的第 5位
15、。 #define BIT5 (0x01 5) static int a; void set_bit5(void) ; /*设置变量 a的第 5位 */ void clear_bit5(void) ; /*清除变量 a的第 5位 */ 14 图 5-1所 示代码的设计意图是计算 1 100各数的平方。该段代码运行后,没有得到应有的结果,请说明出错原因,将答案填入对应栏内。图 5-2是在不改变宏定义的情况下,对程序进行修改。请完成该段代码,将答案填入对应栏内。15 某嵌入式处理器工作在大端方式 (Big-endian)下,其中 unsigned int为 32位,unsigned short为
16、16位, unsigned char为 8位。仔细阅读并分析下面的 C语言代码,写出其打印输出的结果,将答案填入对应栏内。 #include “stdio.h“ #include “stdlib.h“ void *MEM_ADDR; void mem_test(void) unsigned int *pint_addr=NULL; unsigned short *pshort_addr=NULL; unsigned char *pchar_addr=NULL; MEM_ADDR=(void *)malloc(sizeof(int); pint_addr=(unsigned int *)MEM_
17、ADDR; pshort_addr=(unsigned short *)MEM_ADDR; pchar_addr=(unsigned char *)MEM_ADDR; *pint_addr=0x12345678; printf(“0x%x, 0x%xn“, *pshort_addr, *pchar_addr); /*第一次输出 */ pshort_addr+; *pshort_addr=0x5555; printf(“0x%x, 0x%xn“, *pint_addr, *pchar_addr); /*第二次输出 */ pchar_addr+; *pchar_addr=0xAA; printf(
18、“0x%x, 0x%xn“, *pint_addr, *pshort_addr); /*第三次输出 */ 2011年上半年软件水平考试(中级)嵌入式系统设 计师下午(应用技术)试题真题试卷答案与解析 一、试题一 1 【正确答案】 (1)冯 .诺依曼或 Von Neumann (2)哈佛或 Harvard (3)、 (4):答案次序无关。答案为:上升沿、下降沿 (5)、 (6):答案次序无关。答案为:高电平、低电平 【试题解析】 本题主要考查对嵌入式系统结构的认识。 哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令是分开组织和存储的,执行时可以预先读取下一条指令。在 DSP算法中,
19、最大量的工作之一是与存储器交换信息,这其中包括作为输入信号的采样 数据、滤波器系数和程序指令。由于哈佛结构的总线操作是独立的,能同时取指令和数据,提高了速度。目前 DSP内部一般采用的是哈佛结构,它在片内至少有 4套总线:程序的数据总线、程序的地址总线、数据的数据总线和数据的地址总线。 TMS320C6000作为一款典型的数字信号处理芯片,采用的是哈佛结构,而作为本系统中数据处理模块的主控设备 PPC7447,由于面向的是控制及数据处理领域,无需独立的数据与指令总线,因此采用的是冯 诺依曼结构。 系统中断的触发方式一般分为两种模式:边沿触发与电平触发。边沿触发又分为上升沿触发和下降沿触发两种方
20、式,电平触发分为高电平触发和低电平触发两种方式,中断控制器检测到中断触发沿到来时会给处理器一个中断信号,处理器完成相应处理后进入中断处理程序。有时边沿触发很容易产生毛刺并导致误中断,这时候就要使用电平触发,以期获得一个确定的中断触发。 2 【正确答案】 (1)40231或 85899345920 (2)231-10106/40或 2147233648 (3)10106/40或 250000 【试题解析 】 计时器位宽为 32位,而最高位为控制位,所以用于计数的位宽为31位,计数个数为 231,所以最大计时长度为 231个时钟周期。在 25MHz的时钟周期下,单个时钟周期的长度为 40ns,因此
21、计时器的最大计时长度为 40231ns(或 85 899 345 920ns)。 在递增计时的情况下,需要从初值开始递增到 0x7fffffff结束,10ms的时长需要 10106/40个时钟周期,亦即 250000个时钟周期。但由于是从初值开始递增到 0x7fffffff,所以定时器的初值应该为最大计数值减去 10ms时长对应的计数值 ,即 231-10106/40或 2147233648。 在递减计时的情况下,从 0x7fffffff开始进行递减。 10ms的时长同样需要 10106/40(或 250000)个时钟周期,因此定时器的初值应该设为 10106/40或 250000。 3 【正
22、确答案】 (1)DMA响应,或 (2)发送内存地址,或 (3)字计数器计数,或 (4)传送结束,或 【试题解析】 DMA是所有现代计算机系统中的重要特色,该工作方式允许不同速度的硬件装置来沟通,而不需要依赖于 CPU的大量中断负载。否则, CPU需 要从来源把每一片段的资料复制到暂存器,然后将这新信息再次写回到新的地方。在这个时间中, CPU对于其他的工作来说就无法使用。 DMA传输将一个内存区从一个装置复制到另外一个。 CPU初始化这个传输动作,传输动作本身是由 DMA控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更快的内存去。像是这样的操作并没有让处理器工作拖延,反而可
23、以被重新安排去处理其他的工作。 DMA传输对于高效能嵌入式系统算法和网络是很重要的。 一个完整的 DMA传输过程必须经过下面的 4个步骤: 第 1步是 DMA请求。 CPU对 DMA控制器进行初始化,并向 I/O接口发出操作命令, I/O接口提出 DMA请求。 第 2步是 DMA响应。 DMA控制器对 DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当 CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示 DMA已经响应,通过 DMA控制器通知 I/O接口开始 DMA传输。 第 3步是 DMA传输。 DMA控制器获得总线控制权后, CPU即刻挂起或只执行内部
24、操作,由 DMA控制器输出读写命令,直接控制 RAM与 I/O接口进行 DMA传输。在 DMA控制器的控制下,在存 储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。 第 4步是 DMA结束。当完成规定的成批数据传送后, DMA控制器即释放总线控制权,并向 I/O接口发出结束信号。当 I/O接口收到结束信号后,一方面停止I/O设备的工作,另一方面向 CPU提出中断请求,使 CPU从不介入的状态解脱,并执行一段检查本次 DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。 二、试题二 4 【正确答案】 (
25、1)PA (2)PB (3)PC 【试题解析】 通过 8255的 A0、 A1口地址选择信号线进行 PA口、 PB口、 PC口的控制。当 A0为 0、 A1为 0时控制 PA口;当 A0为 0、 A0为 1时控制 PB口;当A0为 1、 A1为 0时控制 PC口。 5 【正确答案】 (1)控制 8255的片选,或者产生 8255的片选 (2)低 (3)高 【试题解析】 空 (1):从图 2-1中可以看出, 74LS138与 8255的 CS引脚相连,而8255的 CS为芯片选择信号线,当这个输入引脚为低电平时,即 =0时,表示芯片被选中,允许 8255与 CPU进行通信; =1时, 8255无
26、法与 CPU进行数据传输。因此, 74LS138器件在图 2-1中的功能是进行片选。 空 (2)和空 (3):在图 2-1中,通过 A2 A15来控制 74LS138的输出端,要使得 74LS138输出有效, A2、 A3、 A4必须为低电平, A5、 A6必须为高电平。 6 【正确答案】 (1)00000001(注:只要答案中的最低位为 1,均可按正确对待 ) (2)80 (3)AL (4)0F 【试题解析】 从试题程序中可见,语句 “MOV AL, (1)B”的空 (1)处应填写“00000001”,因为只有这样才能完成下一 条语句 “OUT DX, AL”由 PC0输出低电平到高电平启动
27、变换的目的。 由于语句 “IN AL, DX”是取出 AD574的 STS状态至 AL寄存器中,用语句 “AND AL, (2)H”来判断变换是否结束。依据题意,AD574的 STS管脚由高变低表明 AD574变换完成,所以空 (2)处应填写 “80” 语句“MOV BL, (3)”的作用是将 A口获取的低 8位放在 BL中,因此空 (3)处应填写“AL”。 语句 “AND AL, (4)H”的作用是取 AD574数据的高 4位,即取 B口的PB0 PB3,故用十六进制表示,空 (4)处应填写 “0F”。 三、试题三 7 【正确答案】 每空答案中的序号不计次序 (1) , , (2) , ,
28、(3) , 【试题解析】 本题考查软件测试方面的基础知识。 在底层 (如在 C语言中为函数 )进行的测试称为单元测试,或者模块测试。单元经过测试,底层软件缺陷被找出并修复之后,就集成在一起,对模块的组合进行集成测试,或者叫部件测试。这个不断增加的测试过程继续进行,加入越来越多的软件片段,直至整个产品 至少是产品的主要部分 在称为系统测试的过程中一起测试。 由此可知 , 、 、 为单元测试; 、 、 为部件 (集成 )测试; 、 为系统测试。 8 【正确答案】 (1)测评中心 (2)0 (3)3 (4)3 (5)0 【试题解析】 为了保证被测软件的质量,最好由独立的测试部门进行软件的测试,在此题
29、中为独立的机构 软件测评中心,由第三方进行测试更容易发现开发人员的习惯性错误,更可靠,且开发方的知识产权受合同或委托的约束也得到了很好的保护。 所以开发方所说的 3条理由均不成立,测评中心反驳的 3条理由全部正确。 9 【正确答案】 (1)对 (2)错 (3)错 (4)对 【试题解析】 (1)“判定 /条件覆盖使每个分支至少被执行一次,且判定中的每个条件都获得所有可能的逻辑值 ”是条件覆盖的准则。正确。 (2)需求文档为测试开始之前必须具备的条件之一,没有需求文档是无法开展测试活动的。错误。 (3)压力测试是在部件测试、配置项测试和系统测试阶段进行的测试,且各个阶段的测试是串行的,所以在压力测
30、试的同时是不能进行单元测试的。错误。 (4)测试实例主要包括输入数据和预期输出结果两部分数据,其次还包括许多其他数据共同组成测试程序。 正确。 四、试题四 10 【正确答案】 取余 异或 逻辑右移 不相等或者不等 小于等于或者不大于 低字节 【试题解析】 本题考查汇编语言的基本语法和应用,是比较传统的题目,要求考生仔细阅读题目中所描述的内容。 汇编语言 (Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符 (Mnemonic)代替操作码,用地址符号 (Symbol)或标号 (Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。
31、使用汇编语言编写的程序,机 器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。汇编程序是系统软件中用于进行语言处理的系统软件。汇编程序把汇编语言翻译成机器语言的过程称为汇编。 本题考察汇编语言的运算符的含义。汇编语言常用的运算符有以下几种: (1)实现 +(加 )、 -(减 )、 *(乘 )、 /(除 )、 MOD(取余 )的算术运算符,其中 MOD也称为取模,它产生除法之后的余数,如 19 MOD 7=5。 (2)实现按位 AND(与 )、 OR(或 )、 XOR(异或 )、 NOT(非 /求反 )的逻辑运算符。 (3)实现对数值的 SHL(逻辑左移 )、
32、 SHR(逻辑右移 )的移位运算符,移入高位或低位的是 0。 (4)实现比较和测试符号数值的关系运算符,如 EQ(相等 )、 NE(不相等 )、 GT(大于 )、 LT(小于 )、 GE(大于等于 )、 LE(小于等于 )。 (5)实现取数值的高半部分或低半部分的高低运算符,如 HIGH(高字节 )、LOW(低字节 )、 HIGHWORD(高字 )、 LOWWORD(低字 )。 11 【正确答案】 (1)HIGH (2)MOD (3)GT (4)AND (5)XOR 【试题解析】 本题考查汇 编语言中运算符的优先级,常用的汇编语言运算符的优先级按照由高到低排列如下: 1. ( ) . LENG
33、TH SIZE WIDTH MASK 2. PTR OFFSET SEG TYPE THIS: 3. HIGH LOW 4. */MOD SHL SHR 5. + - 6. EQ NE GT LT GE LE 7. NOT 8. AND 9. OR XOR 10. SHORT 其中,尖括号 “ ”、 “ ”和圆点 “.”用在结构中,冒号 “:”表示段前缀。当不能确定优先级别时,建议采用圆括号 “(”、 “)”显式表达,它可以极大地提高程序的可读性。 12 【正确答案】 (1)02或 2 (2)03或 3 (3)0E或 E (4)10 【试题解析】 本题考查汇编语言在 BIOS软件开发中的应用,
34、 BIOS(基本输入输出系统 )是非常重要的一种软件接口,由一批子程序组成,负责管理系统中的输入输出设备,直接为操作系统 (如 DOS)和应用程序提供底层设备驱动服务,大多数的驱动程序以软件中断方式调用 (称为 BIOS设备服务例程 DSR),每个 BIOS的DSR都与 中断向量表中的一个中断向量有关,如 BIOS视频服务的中断向量为10H。 视频服务由 INT 10H启动,并通过 AH寄存器选择视频服务功能;待写的字符或像素一般在 AL寄存器中传递;功能调用保存 BX、 CX、 DX及段寄存器的值;X坐标 (列号 )在 CX(图形功能 )中或 DL(正文功能 )中传递;显示页在 BH中传递,
35、显示页从 0开始计数。 五、试题五 13 【正确答案】 a|=BIT5 a = BIT5 【试题解析】 在 32位机中,宏 BIT5所定义的数值的二进制形式为 00000000 00000000 00000000 00100000, BIT5的二进制形式为 11111111 11111111 11111111 11011111。在位运算中,任何值与 1进行或操作之后结果都为 1,与 0进行或操作之后结果还是原数。同样,任何值与 0进行与操作之后结果都为 0,与1进行与操作之后结果还是原数,所以通过位的或操作可以将一个数值中的某位设置为 1,通过与操作方式可以将一个数值中的某位设置为 0。 a|
36、=BIT5将 a的第 5位置 1,其他位不变, a = BIT5将 a的第 5位置 0,其他位不变。 14 【正确答案】 出错原因: 在宏定义中,参数 a使用两次,而在引用宏时,使用了 i+,从而导致出错。 i i+或 i=i+1或 +i或 i+=1 【试题解析】 对问题 2中的代码进行宏展开之后,计算平方的语句为result=SQUARE(i+)*(i+),这里使用了两次 “i+”表达式,单次循环两次使用i+显然不是该程序的初衷。所以不能得到期望的结果,应该避免两次 i+的使用。 15 【正确答案】 第一次输出: 0x1234, 0x12 第二次输出: 0x12345555, 0x12 第三次输出: 0x12aa5555, 0x5555 【试题解析】 在计算机中,数据是以字节为单位进行存储的。以整型数据0x12345678为例,在小端模式计算机中 (x86),该数据分成 4个字节依次存储在连续的 4个字节的地址空间中,从低到高依次为 0x78、 0x56、 0x34、 0x12;而在大端模式系统中 (PPC通常设置为大端模式 ),该数据从低地址空间到高地址空间的存储顺序为 0x12、 0x34、 0x56、 0x78,根据这种存储方式,可以得出题目中的多种内存访问方式的访问位置及内容。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1