计算机系统基础第三章答案
- 格式:pdf
- 大小:93.77 KB
- 文档页数:11
第3章 部分习题参考答案3.2 (题目略)【解】overlap o i cpu T T T T -+=/,其中T overlap 的最大值为T cup 。
由题意可得当CPU 速度提高4倍后,T =30/4+20-30/4=20(s)。
(注:T overlap 为CPU 和I/O 重叠执行的时间)3.7 (题目略)【解】(1)处理机响应各中断源的中断请求的先后次序与它们的中断优先级一样:D 1D 2D 3D 4D 5;实际的中断处理次序为:D 1D 2D 3D 4D 5。
(2)处理机响应各中断源的中断请求的先后次序与它们的中断优先级一样:D 1D 2D 3D 4D 5;实际的中断处理次序为: D 4D 5 D 3 D 2D 1。
(3)处理机响应各中断源的中断服务请求和实际运行中断服务程序过程的示意图如下:(4)处理机响应各中断源的中断服务请求和实际运行中断服务程序过程的示意图如下:3.9 (题目略)【解】字节多路通道适用于连接大量像光电机等字符类低速设备。
这些设备传送一个字中断请求D 3,D 4,D 5时间tD 1, D 2 中断请求主程序中断服务程序 D 1,D 2,D 3,D 4,D 5 时间t符(字节)的时间很短,但字符(字节)间的等待时间很长。
通道“数据宽度”为单字节,以字节交叉方式轮流为多台设备服务,使效率提高。
字节多路通道可有多个子通道,同时执行多个通道程序。
数组多路通道适合于连接多台像磁盘等高速设备。
这些设备的传送速率很高,但传送开始前的寻址辅助操作时间很长。
通道“数据宽度”为定长块,多台设备以成组交叉方式工作,以充分利用并尽量重叠各台高速设备的辅助操作时间。
传送完K个字节数据,就重新选择下个设备。
数组多路通道可有多个子通道,同时执行多个通道程序。
选择通道适合于连接像磁盘等优先级高的高速设备,让它独占通道,只能执行一道通道程序。
通道“数据宽度”为可变长块,一次将N个字节全部传送完,在数据传送期只选择一次设备。
第三章习题答案1、局域网规划原则:网络设计者对整个网络的轮廓有了大致了解,规划人员应该从尽量降低成本、尽可能提高资源利用率等因素出发,本着先进性、安全性、可靠性、开放性、可扩充性和最大限度资源共享的原则,进行网络规划。
2、星型结构和总线-星型结构的区别在于服务器与接线器之间的连接方式不同。
星型结构是第1级集线器连接多个集线器和服务器。
第2级集线器连接客户机。
总线-星型结构是第1级总线连接多个集线器和服务器。
第2级集线器连接客户机。
星型拓扑结构的优点是:网络结构简单,管理和集中控制方便,组网容易;网络延迟短,误码率低;缺点是:网络共享能力较差,通信线路利用率不高,中央节点负担过重;可同时使用双绞线、同轴电缆及光纤等多种物理介质。
总线布局的优点是:结构简单灵活,非常便于扩充;可靠性高,网络响应速度快;设备量少、价格低、安装使用方便;共享资源能力强,便于广播式工作,即一个节点发送所有节点都可接收。
缺点是:由于总线有一定的负载能力,因此,总线长度有一定限制,一条总线只能连接一定数量的节点。
3、高级网络设计除了包含简单网络设计需要的需求分析、设备选择和结构设计等问题外,还包含如何选择新型硬件和技术组建高速和大规模网络等内容。
4、场地规划,网络设备规划,操作系统和应用软件的规划,网络管理的规划,资金规划5、答案略6、需求分析对项目的成功与否有关当局整个网络设计的成功与否起着重要的作用。
因此,分析人员应该注意下面的内容。
分析人员要使用符合客户语言习惯的表达,需求讨论集中于业务需求和任务,因此要使用术语。
分析人员应将业务术语讲述给客户,而客户不一定要懂得计算机专业术语。
分析人员要了解客户的业务及目标,只有分析人员更好地了解客户的业务,才能使产品更好地满足需要。
如果是更新网络,那么分析人员应使用一下目前的旧网络,有利于他们明白目前网络是怎样工作的,其流程情况以及可改进之处。
网络分析人员必须编写需求分析报告,应将从客户那里获得的所有信息进行整理,以区分业务需求及规范、功能需求、质量目标、解决方法和其他信息。
习题三一、选择题1. 计算机操作系统属于。
A. 应用软件B. 系统软件C. 工具软件D. 文字处理软件2. 操作系统负责管理计算机的。
A. 程序B. 作业C. 资源D. 进程3. 在计算机系统中配置操作系统的主要目的是。
A. 增强计算机系统的功能B. 提高系统资源的利用率C. 提高系统的运行速度D. 合理组织系统的工作流程,以提高系统吞吐量4. 操作系统对处理机的管理实际上是对。
A. 存储器管理B. 虚拟存储器管理C. 运算器管理D. 进程管理5. 允许多个用户以交互方式使用计算机的操作系统称为。
A. 批处理操作系统B. 分时操作系统C. DOS操作系统D. 个人计算机操作系统6. 允许多个用户将若干个作业提交给计算机系统集中处理的操作系统称为。
A. 批处理操作系统B. 分时操作系统C. 多处理器操作系统D. 微机操作系统7. 以下不属于操作系统关心的主要问题是。
A. 管理计算机裸机B. 设计、提供用户程序与计算机硬件系统的接口C. 管理计算机中的信息资源D. 高级程序设计语言的编译8. 在设计实时操作系统时,首先要考虑的是。
A. 灵活性和可适应性B. 交互性和响应时间C. 周转时间和系统吞吐量D. 实时性和可靠性9. 操作系统通过对进程进行管理。
A. 进程B. 进程控制块C. 进程启动程序D. 进程控制区10. 在下列系统中属于实时信息系统是。
A. 计算机激光照排系统B. 民航售票系统C. 办公自动化系统D. 火箭飞行控制系统11. 下面关于并发性的正确论述是。
A. 并发性是指若干事件在同一时刻发生B. 并发性是指若干事件在不同时刻发生C. 并发性是指若干事件在同一时间间隔内发生D. 并发性是指若干事件在不同时间间隔内发生12. 在3.x版本以前的MS-DOS是操作系统。
第3章操作系统基础·2·A. 单用户单任务B. 单用户多任务C. 多用户单任务D. 多用户多任务13. MS-DOS和Windows XP都是由开发的。
、题目1正确获得分中的分标记题目~题干CPU主要由运算器和控制器组成,下列说法正确的是()…选择一项:a. 控制器直接控制计算机系统的输入与输出操作b. 运算器主要负责分析指令,并根据指令要求作相应的运算—c. 控制器主要负责分析指令,并根据指令要求作相应的运算d. 运算器主要负责完成对数据的运算,包括算术运算和逻辑运算正确反馈|正确答案是:运算器主要负责完成对数据的运算,包括算术运算和逻辑运算题目2正确[获得分中的分标记题目题干?下列存储器中,访问速度最慢的是()选择一项:a. ROM¥b. RAMc. Cached. 硬盘正确>反馈正确答案是:硬盘题目3~正确获得分中的分标记题目…题干计算机的内存储器相比外储存器()选择一项:(a. 读/写速度快正确b. 存储容量大c. 价格便宜%d. 读/写速度慢反馈正确答案是:读/写速度快~题目4正确获得分中的分@标记题目题干下列叙述正确的是()|选择一项:a. 指令由操作数和操作码两部分组成正确b. 计算机语言是完成某一任务的指令集¥c. 计算机的一个字长总等于两个字节d. 常用xxMB表示计算机的速度反馈)正确答案是:指令由操作数和操作码两部分组成题目5正确~获得分中的分标记题目题干/目前微型计算机中采用的逻辑元件是()选择一项:&a. 大规模和超大规模集成电路正确b. 中规模集成电路c. 小规模集成电路d. 分立元件》反馈正确答案是:大规模和超大规模集成电路~题目6正确获得分中的分标记题目}题干微型计算机中,运算器的主要功能是进行()&选择一项:a. 逻辑运算和算术运算正确b. 复杂方程的求解c. 算术运算·d. 逻辑运算反馈正确答案是:逻辑运算和算术运算<题目7正确获得分中的分:标记题目题干。
下列存储器中,存取速度最快的是()选择一项:a. 光盘存储器]b. 内存储器正确c. 硬磁盘存储器d. 软磁盘存储器反馈[正确答案是:内存储器题目8|正确获得分中的分标记题目"题干下列打印机中,打印效果最佳的一种是()选择一项:}a. 喷墨打印机b. 激光打印机正确c. 点阵打印机d. 热敏打印机<反馈正确答案是:激光打印机.题目9正确获得分中的分标记题目~题干微型计算机中,不属于控制器功能的是()】选择一项:a. 传输各种控制信号b. 产生各种控制信息]c. 存储各种控制信息d. 输出各种信息正确反馈-正确答案是:输出各种信息题目10正确.获得分中的分标记题目题干>微型计算机配置高速缓存是为了解决()之间的速度不匹配问题。
第三章处理机调度与死锁一、单项选择题K操作系统中的作业管理是一种(A )oA.宏观的高级管理B.宏观的低级管理C.系统刚开始加电D.初始化引导完成2、作业调度又称为[1A],它决定将哪些在外存储器上的处于[2D]状态的作业调入主机内存。
系统经作业调度程序选中一个或多个作业后,就为它们分配必要的内存、设备及软资源。
然后控制权就交给了 [3B],由 [3]将它们变为一个或一组[4C],并[5A]。
供选择的答案:[11: A、高级调度B、低级调度C、中级调度D、进程调度[2]: A、就绪B、阻塞C、提交D、后备[3]: A、存储管理模块B、处理机管理模块C、文件管理模块D、设备管理模块[4]: A、指令B、子程序C、进程D、程序段⑸:A、把它们挂到就绪队列上B、为它们分配处理机C、把它们挂到后备队列上D、为它们分配设备)中。
A、处于后备状态的作业存放在(3.A•外存B.内存和B D.扩展内存4、在操作系统中,JCB是指(A )oA.作业控制块B.进程控制块C.文件控制块D.程序控制块5、作业在系统中存在与否的唯一标志是(C)。
A.源程序B.作业说明书C.作业控制块D.目的程序6、按照作业到达的先后次序调度作业,排队等待时间最长的作业被优先调度,这是指(A)调度算法。
A.先来先服务法B.短作业优先法C.时间片轮转法D.优先级法7、在批处理系统中,周转时间是(B )oA.作业运行时间B.作业等待时间和运行时间之和C.作业的相对等待时间D.作业被调度进入内存到运行完毕的时间8、为了对紧急进程或重要进程进行调度,调度算法应采用(B)oA.先来先服务法B.优先级法C.短作业优先法D.时间片轮转法9、操作系统中,(A)负责对进程进行调度。
A.处理机管理B.作业管理C.高级调度管理D.存储和设备管理.10、如果系统中所有作业是同时到达的,则使作业平均周转时间最短的作业调度算法是短作业优先调度算法。
1K系统出现死锁的原因是(C )oA.计算机系统发生了重大故障B.有多个封锁的进程同时存在C.若干进程因竞争资源而无休止地等待着,不释放已占有的资源D.资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数12、设系统中有n个进程并发,共同竞争资源X,且每个进程都需要m个X资源,为使该系统不会发生死锁,资源x至少要有(C)(A) n*m+1 (B) n*m+n (C) n*m+1 -n (D)无法预计 13、选出不正确的两条叙述(BE)OA、死锁是指因相互竞争资源使得系统中有多个阻塞进程的情况;B、若系统中并发运行的进程和资源之间满足互斥条件、占有且申请、不可抢占和环路条件,则可判定系统中发生了死锁;C、在对付死锁的策略中,解除死锁通常都是和检测死锁配套使用;D、产生死锁的原因可归结为竞争资源和进程推进顺序不当;E、在死锁的解决方法中,由于避免死锁采用静态分配资源所以对资源的利用率不高14、死锁预防是保证系统不进入死锁状态的静态策略,其解决方法是破坏产生死锁的四个必要条件之一。
习题33-1选择题1-5 A C B B A 6-10 C D B A C 11-15 D D C C B 16-20 B C C D D 21 A3-2填空题:1. CPU的时钟频率2.算术逻辑部件、控制逻辑部件、寄存器组和内部总线3.微处理器、内存储器、总线、输入/输出接口4.静态随机存储器和动态随机存储器5. 数据总线、地址总线、控制总线6. 操作系统7. Universal Serial Bus8. 系统软件应用软件3-3思考题1. 在微型计算机系统中,从局部到全局存在3个层次:微处理器→微型计算机→微型计算机系统,这是3个不同的概念,但它们之间又有着密切的联系。
微型计算机(Microcomputer)以微处理器为核心,微型计算机系统(Microcomputer System)以微型计算机为主体,再配以相应的外部设备和软件,它是完整的计算机系统,具有实用意义,可以正常工作。
2. 微处理器主要性能指标①字长②外频③主频④倍频系数⑤缓存⑥多核心处理器⑦生产工艺⑧超线程技术3. 按照存储器在计算机中的作用,可分为内存储器和外存储器。
内存用于存放计算机当前正在执行的程序和相关数据,CPU可以直接对它进行访问。
内存储器按其工作方式的不同,又分为随机存取存储器(RAM)、只读存储器(ROM)和高速缓冲存储器。
RAM是指在CPU运行期间既可读出信息也可写入信息的存储器,但断电后,写入的信息会丢失。
ROM是只能读出信息而不能由用户写入信息的存储器,断电后,其中的信息也不会丢失。
Cache是用来存放当前内存中频繁使用的程序块和数据块。
外存储器,又叫辅助存储器,简称外存。
用于存放暂时不用的程序和数据,不能直接和CPU进行数据交换。
当CPU 需要执行外存中的某些程序和数据时,外存中存储的程序和数据必须先送入内存,才能被计算机执行。
常见的外存储器有软盘、硬盘、光盘和优盘等。
4. 外存储器(硬盘、光盘、U盘等);输入设备(键盘、鼠标、扫描仪、数码相机等);输出设备(显示器、打印机、绘图仪等);其他设备(网卡、声卡、调制解调器、视频卡等)。
计算机系统结构第三章练习答案计算机系统结构-第三章练习答案第三章练习(1)一、单项选择题以下问题的四个备选答案中,只有一个是正确的。
请在问题后面的括号中填写正确答案的标签(a~d)。
1.程序员编写程序时使用的访存地址是()。
a、物理地址B.有效地址C.逻辑地址D.主存地址2.虚拟存储器通常采用的地址映像是(d)。
a、完全关联、组关联和直接图像B.直接图像C.组关联图像D.完全关联图像3.不属于堆栈型替换算法是()。
a、最近使用最少的替换算法B.先进先出替换算法C.最优替换算法d.近期最久未使用替换算法4.提高虚拟内存主存命中率的方法是()。
a.采用lfu替换算法并增大页面数b.采用fifo替换算法并增大页面c.采用fifo 替换算法并增大页面数d.采用lru替换算法并增大页面5.虚拟内存主要用于解决()问题。
a.便于程序的“访存操作”b.扩大存储系统的容量和提高存储系统的速度c.提高存储系统的速度d.扩大存储系统的容量6.独立于虚拟内存的等效访问速度为()。
a.辅存的容量b.主存的容量c.页面替换算法d.访存页地址流二、填空1.使二级存储系统的等效访问速度接近于第一级存储器访问速度的依据是程序的(局部它包括两个方面(时间局部性)和(空间局部性)。
2.程序的空间局部性意味着程序通常是(按顺序)存储和执行的,程序使用的数据通常是(群集)聚或集中)存储的。
3.假设T1和T2分别是CPU访问M1和M2中的信息所需的时间,H是命中M1的概率,则由m1和m2构成的二级存储系统的等效访问时间应当表示为(h*t1+(1-h)*t2)。
4.存储器速度性能可以采用存储器的(频宽)衡量,它是存储器单位时间能够访问的信息量5.虚拟存储器的存储管理方式有(页式)、(段式)和(段页式)三种。
6.页式虚拟存储器把(程序“虚拟”)空间和(主存储器“物理实”)空间都分成相同样大小的页面。
7.当两个虚拟空间的页面需要加载相同的主存页面时,称之为(实页面冲突或页面争用)。
习题一、单项选择题1. 操作系统的主要功能是(B)。
A. 实现软、硬件转换B. 管理系统中所有的软、硬件资源C. 把源程序转化为目标程序D. 进行数据处理2. 微机上广泛使用的Windows是(A)。
A. 多任务操作系统B. 单任务操作系统C. 实时操作系统D. 批处理操作系统3. 操作系统的主要管理功能包括(B)。
A. 运算器管理、存储器管理、设备管理、处理器管理B. 文件管理、处理器管理、设备管理、存储管理C. 文件管理、设备管理、系统管理、存储管理D. 管理器管理、设备管理、程序管理、存储管理4.操作系统中的文件管理系统为用户提供的功能是(B)。
A. 按文件作者存取文件B. 按文件名管理文件C. 按文件创建日期存取文件D. 按文件大小存取文件5. 操作系统将CPU的时间资源划分成极短的时间片,轮流分配给各终端用户,使终端用户单独分享CPU的时间片,有独占计算机的感觉,这种操作系统称为(C)。
A. 实时操作系统B. 批处理操作系统C. 分时操作系统D. 分布式操作系统6. 操作系统是(B)。
A. 主机与外设的接口B. 用户与计算机的接口C. 系统软件与应用软件的接口D. 高级语言与汇编语言的接口7. 切换用户是指(D)。
A. 关闭当前登录的用户,重新登录一个新用户B.重新启动电脑用另一个用户登录C. 注销当前的用户D. 在不关闭当前登录用户的情况下切换到另一个用户8. 下列关于操作系统的描述,正确的是(D)。
A. 操作系统中只有程序没有数据B. 操作系统提供的人机交互接口其它软件无法使用C. 操作系统是一种最重要的应用软件D. 一台计算机可以安装多个操作系统9. 计算机操作系统的最基本特征是(A)。
A. 并发和共享B. 共享和虚拟C. 虚拟和异步D. 异步和并发10. Windows 7“任务栏”上存放的是(B)。
A. 当前窗口的图标B. 已启动并正在执行的程序名C. 所有已打开的窗口的图标D. 已经打开的文件名11. 对话框中的复选框是指(D)。
3.3 典型习题和题例分析与解答题3.1 简要举出集中式串行链接、定时查询和独立请求3种总线控制方式的优缺点,同时分析硬件产生故障时通讯的可靠性。
[解答] 集中式串行链接的3种总线控制方式的优缺点,可参照本章3.2节内容要点2中的2)的有关内容解答。
下面只就硬件产生故障时,对通讯的可靠性问题进行分析。
串行链接对通讯的可靠性,主要表现于“总线可用”线及其有关电路的失效会造成系统整体瘫痪的问题。
一旦“总线可用”线出现断路或碰地,其高电压不能顺链往下传送,就会使后面的部件在要求使用总线时,其请求无法得到响应。
为了提高可靠性,可以对“总线可用”线及其相关电路,采取重复设置两套或多套的方法来解决。
定时查询对通讯的可靠性要比串行链接的高。
因为总线控制器通过计数,查询到某个出故障的部件时,故障部件不会给出“总线忙”信号。
这样,不会影响控制器继续计数,去查询下一个部件,所以整个总线系统的工作不会瘫痪。
独立请求对通讯的可靠性同样比串行链接的高。
因为某个部件在发生故障时不发总线请求,或即使发出总线请求,总线控制器也可以通过软件或硬件的措施,特发生故障的部件送来的请求屏蔽掉,使之不让其参与总线的分配。
所以,某个部件的故障不会导致整个系统的工作处于瘫痪状态。
题3.2设中断级屏蔽位“1”对应于开放,“0”对应于屏蔽,各级中断处理程序的中断级屏蔽位设置如表3.1所示。
(1)当中断响应优先次序为l→2→3→4时,其中断处理次序是什么?(2)如果所有的中断处理都各需3个单位时间,中断响应和中断返回时间相对中断处理时间少得多。
当机器正在运行用户程序时,同时发出第2、3级中断请求,经过两个单位时间,又同时发生第1、4级中断请求,试画出程序运行过程示意图。
表3.1[分析]为了领会中断响应排队器对中断响应的优先次序是用硬件固定的,以及通过由操作系统给各中断级服务程序现行程序状态字中的中断级屏蔽位设置不同的状态,可以改变中断处理(完)的次序这两个要点,图3.1给出了一个中断响应硬件部分的简单逻辑原理示意图。
习题3.参考答案:(1)后缀:w,源:基址+比例变址+偏移,目:寄存器(2)后缀:b,源:寄存器,目:基址+偏移(3)后缀:l,源:比例变址,目:寄存器(4)后缀:b,源:基址,目:寄存器(5)后缀:l,源:立即数,目:栈(6)后缀:l,源:立即数,目:寄存器(7)后缀:w,源:寄存器,目:寄存器(8)后缀:l,源:基址+变址+偏移,目:寄存器4.参考答案:(1)源操作数是立即数0xFF,需在前面加‘$’(2)源操作数是16位,而长度后缀是字节‘b’,不一致(3)目的操作数不能是立即数寻址(4)操作数位数超过16位,而长度后缀为16位的‘w’(5)不能用8位寄存器作为目的操作数地址所在寄存器(6)源操作数寄存器与目操作数寄存器长度不一致(7)不存在ESX寄存器(8)源操作数地址中缺少变址寄存器5.参考答案:表3.12 题5用表src_type dst_type 机器级表示char int movsbl %al, (%edx)int char movb %al, (%edx)int unsigned movl %eax, (%edx)short int movswl %ax, (%edx)unsigned char unsigned movzbl %al, (%edx)char unsigned movsbl %al, (%edx)int int movl %eax, (%edx)6.参考答案:(1)xptr、yptr和zptr对应实参所存放的存储单元地址分别为:R[ebp]+8、R[ebp]+12、R[ebp]+16。
(2)函数func的C语言代码如下:void func(int *xptr, int *yptr, int *zptr){int tempx=*xptr;int tempy=*yptr;int tempz=*zptr;*yptr=tempx;*zptr = tempy;*xptr = tempz;}7.参考答案:(1)R[edx]=x(2)R[edx]=x+y+4 (3)R[edx]=x+8*y (4)R[edx]=y+2*x+12 (5)R[edx]=4*y (6)R[edx]=x+y8.参考答案:(1)指令功能为:R[edx]←R[edx]+M[R[eax]]=0x 00000080+M[0x8049300],寄存器EDX 中内容改变。
改变后的内容为以下运算的结果:00000080H+FFFFFFF0H因此,EDX 中的内容改变为0x00000070。
根据表 3.5可知,加法指令会影响OF 、SF 、ZF 和CF 标志。
OF=0,ZF=0,SF=0,CF=1。
(2)指令功能为:R[ecx]←R[ecx]-M[R[eax]+R[ebx]]=0x00000010+M[0x8049400],寄存器ECX 中内容改变。
改变后的内容为以下运算的结果:00000010H -80000008H因此,ECX 中的内容改为0x80000008。
根据表 3.5可知,减法指令会影响OF 、SF 、ZF 和CF 标志。
OF=1,ZF=0,SF=1,CF=10=1。
(3)指令功能为:R[bx]←R[bx] or M[R[eax]+R[ecx]*8+4],寄存器BX 中内容改变。
改变后的内容为以下运算的结果:0x0100 or M[0x8049384]=0100Hor FF00H因此,BX 中的内容改为0xFF00。
由 3.3.3节可知,OR 指令执行后OF=CF=0;因为结果不为0,故ZF=0;因为最高位为1,故SF=1。
(4)test 指令不改变任何通用寄存器,但根据以下“与”操作改变标志:R[dl] and 0x80由3.3.3节可知,TEST 指令执行后OF=CF=0;因为结果不为0,故ZF=0;因为最高位为1,故SF=1。
(5)指令功能为:M[R[eax]+R[edx]]←M[R[eax]+R[edx]]*32,即存储单元0x8049380中的内容改变为以下运算的结果:M[0x8049380]*32=0x908f12a8*32,也即只要将0x908f12a8左移5位即可得到结果。
1001 0000 1000 1111 0001 0010 1010 1000<<5 =0001 0001 1110 0010 0101 0101 0000 0000因此,指令执行后,单元0x8049380中的内容改变为0x11e25500。
显然,这个结果是溢出的。
但是,根据表3.5可知,乘法指令不影响标志位,也即并不会使OF=1。
1000 0000 1000 00001000 0000and 0000 0001 0000 0000 1111 1111 0000 00001111 1111 0000 0000or 0000 0000 0000 0000 0000 0000 0001 0000 0111 1111 1111 1111 1111 1111 1111 1000 0 1000 0000 0000 0000 0000 0000 0000 1000+ 0000 0000 0000 0000 0000 0000 1000 0000 1111 1111 1111 1111 1111 1111 1111 0000 1 0000 0000 0000 0000 0000 0000 0111 0000+(6)指令功能为:R[cx] ←R[cx]-1,即CX 寄存器的内容减一。
因此,指令执行后CX 中的内容从0x0010变为0x000F 。
由表 3.5可知,DEC 指令会影响OF 、ZF 、SF ,根据上述运算结果,得到OF=0,ZF=0,SF=0。
9.参考答案:movl 12(%ebp), %ecx //R[ecx ]←M[R[ebp]+12],将y 送ECX sall$8, %ecx //R[ecx ]←R[ecx]<<8,将y*256送ECX movl 8(%ebp), %eax //R[eax ]←M[R[ebp]+8],将x 送EAX movl 20(%ebp), %edx //R[edx ]←M[R[ebp]+20],将k 送EDX imull %edx, %eax //R[eax]←R[eax]*R[edx],将x*k 送EAX movl 16(%ebp), %edx //R[edx ]←M[R[ebp]+16],将z 送EDXandl $65520, %edx //R[edx ]←R[edx] and 65520,将z&0xFFF0送EDX addl %ecx, %edx //R[edx ]←R[edx] + R[ecx],将z&0xFFF0+y*256送EDX subl %edx, %eax //R[eax ]←R[eax]-R[edx],将x*k-(z&0xFFF0+y*256)送EAX 根据以上分析可知,第3行缺失部分为:3int v = x*k-(z&0xFFF0+y*256);10.参考答案:从汇编代码的第2行和第4行看,y 应该是占8个字节,R[ebp]+20开始的4个字节为高32位字节,记为y h ;R[ebp]+16开始的4个字节为低32位字节,记为y l 。
根据第4行为无符号数乘法指令,得知y 的数据类型num_type为unsigned long long 。
movl 12(%ebp), %eax //R[eax]←M[R[ebp]+12],将x 送EAX movl 20(%ebp), %ecx //R[ecx ]←M[R[ebp]+20],将y h 送ECXimull %eax, %ecx //R[ecx ]←R[ecx]*R[eax],将y h *x 的低32位送ECX mull 16(%ebp)//R[edx]R[eax]←M[R[ebp]+16]*R[eax],将y l *x 送EDX-EAXleal (%ecx, %edx), %edx// R[edx ]←R[ecx]+R[edx],将y l *x 的高32位与y h *x 的低32位相加后送EDX movl 8(%ebp), %ecx //R[ecx ]←M[R[ebp]+8],将d 送ECXmovl %eax, (%ecx) //M[R[ecx]]←R[eax],将x*y 低32位送d 指向的低32位movl%edx, 4(%ecx)//M[R[ecx]+4]←R[edx],将x*y 高32位送d 指向的高32位11.参考答案:根据第 3.3.4节得知,条件转移指令都采用相对转移方式在段内直接转移,即条件转移指令的转移目标地址为:(PC )+偏移量。
(1)因为je 指令的操作码为01110100,所以机器代码7408H 中的08H 是偏移量,故转移目标地址为:0x804838c+2+0x8=0x8048396。
call 指令中的转移目标地址0x80483b1=0x804838e+5+0x1e ,由此,可以看出,call 指令机器代码中后面的4个字节是偏移量,因IA-32采用小端方式,故偏移量为0000001EH 。
call 指令机器代码共占5个字节,因此,下条指令的地址为当前指令地址0x804838e 加5。
(2)jb 指令中F6H 是偏移量,故其转移目标地址为:0x8048390+2+0xf6=0x8048488。
movl 指令的机器代码有10个字节,前两个字节是操作码等,后面8个字节为两个立即数,因为是小端方式,所以,第一个立即数为0804A800H ,即汇编指令中的目的地址0x804a800,最后4个字节为立即数00000001H ,即汇编指令中的常数0x1。
0000 0000 0001 0000 1111 1111 1111 1111 1 0000 0000 0000 1111+(3)jle指令中的7EH为操作码,16H为偏移量,其汇编形式中的0x80492e0是转移目的地址,因此,假定后面的mov指令的地址为x,则x满足以下公式:0x80492e0=x+0x16,故x=0x80492e0-0x16=0x80492ca。
(4)jmp指令中的E9H为操作码,后面4个字节为偏移量,因为是小端方式,故偏移量为FFFFFF00H,即-100H=-256。
后面的sub指令的地址为0x804829b,故jmp指令的转移目标地址为0x804829b+0xffffff00=0x804829b-0x100=0x804819b。
12.参考答案:(1)汇编指令的注解说明如下:1 movb 8(%ebp), %dl //R[dl]←M[R[ebp]+8],将x送DL2 movl 12(%ebp), %eax //R[eax]←M[R[ebp]+12],将p送EAX3 testl %eax, %eax //R[eax] and R[eax],判断p是否为04 je .L1 //若p为0,则转.L1执行5 testb $0x80, %dl //R[dl] and 80H,判断x的第一位是否为06 je .L1 //若x>=0,则转.L1执行7 addb %dl, (%eax) //M[R[eax]]←M[R[eax]]+R[dl],即*p+=x8 .L1:因为C语言if语句中的条件表达式可以对多个条件进行逻辑运算,而汇编代码中一条指令只能进行一种逻辑运算,并且在每条逻辑运算指令生成的标志都是存放在同一个EFLAGS寄存器中,所以,最好在一条逻辑指令后跟一条条件转移指令,把EFLAGS中标志用完,然后再执行另一次逻辑判断并根据条件进行转移的操作。