您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 四川大学汇编语言程序设计答案
课后答案网,用心为你服务! 大学答案---中学答案---考研答案---考试答案 最全最多的课后习题参考答案,尽在课后答案网()!Khdaw团队一直秉承用心为大家服务的宗旨,以关注学生的学习生活为出发点,旨在为广大学生朋友的自主学习提供一个分享和交流的平台。 爱校园()课后答案网()淘答案() 1.请将下列十进制数转换为二进制数,并统一使用8位二进制数表达。(1)900001001(2)2500011001(3)12601111110(4)20711001111(5)10001100100(6)1000001010(7)1600010000(8)9201011100(9)6300111111(10)255111111112.请将下列二进制数转换为十进制数。(1)(00000001)21(2)(01000010)266(3)(10010011)2147(4)(01010101)285(5)(01100100)2100(6)(10000000)2128(7)(11100111)2231(8)(00000011)23(9)(01111111)21273.请将下列八进制数或十六进制数转换为8位二进制数。(1)(137)801011111(2)(062)800110010(3)(005)800000101(4)(5A)1601011010(5)(39)1600111001(6)(1F)16000111114.请将下列二进制数分别转换为八进制和十六进制数(1)(01011010)2(132)8(5A)16(2)(01100001)2(141)8(61)16(3)(01110111)2(167)8(77)165.请将下列二进制数转换为8位补码。(1)(+00110001)200110001(2)(-00010011)211101101(3)(-01010100)210101100(4)(+00000000)200000000(5)(-01110111)210001001(6)(-01100101)2100110116.请将下列8位补码转换为二进制数。(注:教材原题中方括号记法不当,在此纠正)(1)10010001-01101111(2)00110010+00110010(3)11100110-00011010(4)11111111-00000001(5)11111001-00000111(6)11000000-010000007.请将下列十进制数转换为8位二进制数,作为8位无符号数编码完成相应运算,给出运算结果,并且判断运算的有无溢出。(1)56+3200111000+00100000001011000昀高位无进位,运算无溢出(2)100+7501100100+01001011010101111昀高位无进位,运算无溢出(3)123+801111011+00001000010000011昀高位无进位,运算无溢出(4)125+13401111101+10000110100000011昀高位有进位,运算有溢出(5)200+10511001000+01101001100110001昀高位有进位,运算有溢出(6)26+3400011010+00100010000111100昀高位无进位,运算无溢出注:自行练习无符号数减法运算时的溢出判断,注意不能使用补码加法代替无符号数减法来判断8.请将下列十进制数转换为8位二进制补码,完成相应运算,给出运算结果,并且判断运算有无溢出。(1)-123+66[-123]补=10000101[66]补=0100001010000101+0100001011000111溢出分析:正+负,无溢出(2)62-54[62]补=00111110[-54]补=1100101000111110+11001010100001000溢出分析:正+负,无溢出(3)130+140[130]补=010000010[140]补=010001100分析:8位补码表示范围为-128~127,需9位补码才能表示这两个带符号数,因此不能作补码运算(4)-175-90[-175]补=101010001分析:8位补码表示范围为-128~127,需9位补码才能表示-175,因此不能作补码运算(5)-78-9[-78]补=10110010[-9]补=1111011110110010+11110111110101001溢出分析:负+负=负,运算正确,无溢出(6)66+75[66]补=01000010[75]补=0100101101000010+01001011010001101溢出分析:正+正=负,运算结果不是正确的8位补码,有溢出注:补码加减运算溢出判断方法1)正+负,无溢出2)正+正=正,无溢出;正+正=负,溢出;3)负+负=负,无溢出;负+负=正,溢出;各种加减运算均可等价为以上三种情况9.请简述ASCII码的概念,并说明该编码中的优越性。答:ASCII码为一种字符代码,它的实质是各种字符形状(点阵)的编号。该编码中,大小写英文字母的编号是以字母顺序连续编排,便于字符处理程序设计;数字字符‘0’~‘9’的ASCII码为31H~39H(十六进制记法),编码连贯且容易转换为对应的数值,与BCD码间也具有方便的转换关系,使得数字字符串直接参与运算成为可能。10.请简述BCD码的概念,并说明该编码的主要用途。答:BCD码是一种用于表述十进制数的二进制编码,它使用4个连续的二进制位表示一个十进制位,并限制其合法范围为0~9。BCD码主要用于使用二进制运算指令实现十进制数的运算,此功能需要结合二进制算术运算指令(加、减、乘、除)与BCD码运算调整指令才能完成,需要在运算中的十六进制进、借位调整为十进制进、借位。1.8086/8088CPU被划分哪两个功能模块?这样划分的目的是什么?答:8086、8088CPU内部被划分为EU(ExecuteUnit)和BIU(BusInterfaceUnit)两个功能模块。EU为执行单元,其主要功能为对机器指令译码,按照时序生成各种控制信号来执行指令或其它时序过程,按照指令的要求完成各种运算。该单元与系统总线没有直接的交互操作。BIU为总线接口单元,其主要功能为内存单元的物理地址计算,将控制信号、地址信号、数据信号传递到系统总线,或从系统总线接收状态信号、数据信号,从内存中读取下一条指令并保存在指令队列中。该单元与系统总线直接进行交互操作。将CPU划分这两个模块的主要目的在于将取指令与执行指令两种具有独立性的操作分离,若EU当前执行的指令不使用总线,则BIU可以在EU执行当前指令的同时通过总线从内存中读取下一条指令,使当前指令的执行周期与下一条指令的取指周期在时间上形成重叠,从而提高程序执行的速度。此划分方式为CPU最初级的流水线机制体现。2.请简述逻辑地址、物理地址的概念,并说明二者间的转换关系。答:逻辑地址与物理地址均为内存单元的地址表示形式,其中逻辑地址为CPU内部的地址形式,物理地址为系统总线上的地址形式。系统总线所使用的物理地址提供对内存单元的直接定位,8086、8088CPU的地址总线为20条,即物理地址为20位,寻址范围为220=1M字节。由于8086、8088CPU内部的寄存器均为16位,无法直接表示20位的物理地址,因此使用由16位段基值和16位偏移量构成的逻辑地址形式,并且由BIU单元内的地址加法器完成逻辑地址到物理地址的转换,转换方法如下:段基值*16+偏移量=物理地址CPU通过总线访问内存单元时,所使用的是物理地址,但指令系统、程序设计中使用的一定是逻辑地址。3.8086/8088CPU中的寄存器被分为哪几个类别,它们分别的大致功能是什么?答:8086、8088CPU中的寄存器被划分为数据寄存器、地址指针寄存器、段寄存器、控制寄存器几种类别,其中数据寄存器用于保存完成运算所需要的源数据、运算结果;地址指针寄存器用于保存内存单元逻辑地址中的偏移量或偏移量分量;段寄存器用于保存内存单元逻辑地址中的段基值;控制寄存器包括IP(指令指针)与FR(标志寄存器),无条件、条件转移指令都通过修改(IP)实现程序流程转移,而FR中的标志位会影响条件转移指令的判断,从而间接影响程序的执行流程。4.IP寄存器的功能是什么?(IP)在哪些情况下会被修改?答:IP是指令指针寄存器,其功能为提供BIU单元将要从内存读取的下一条指令的偏移量,该寄存器固定与CS段寄存器搭配使用,形成下一条指令的完整物理地址。CPU顺序执行内存中的指令序列时,会不断修改(IP),使之指向下一条指令;除此之外,转移指令、循环控制指令、子程序调用、返回指令、中断调用、返回指令都是通过修改(IP)来达到程序流程转移的目的。5.8086/8088CPU中的指令队列是如何工作的?它与CPU中的寄存器有何不同?答:指令队列是8086、8088CPU中的一个重要部件,位于BIU单元内部,它是由总线控制逻辑自动进行操作,用于存放由BIU通过总线读取的机器指令,EU单元对指令译码时仅从指令队列读取机器指令,不再访问总线。指令队列是一组存储单元,从物理结构上观察,它与指令系统中能够使用的寄存器没有区别。但是,指令系统中的机器指令并不能直接对指令队列实施控制,因为机器指令的执行在时间上处于指令的执行周期,而不是取指周期,取值周期是由CPU自动执行的,与机器指令规定的功能无关。换言之,对于通常的寄存器,我们的程序能够对它们实施直接控制,但却不能控制指令队列,它由CPU自动管理。6.CF、OF标志的含义是什么?它们分别在什么时候提供的才是有效的标志位信息?答:CF(CarryFlag)标志的含义是无符号数进位标志,多数情况下用于标识最近的算术运算(通常是加减运算)中,如果将操作数解释为无符号数,其运算结果有没有超出字节或字(与操作数类型有关)的表示范围。CF提供有效标志位信息的前提如下:1)最近影响标志位的指令要影响CF标志2)该指令对CF标志的影响是有意义的3)程序员将该指令的操作数解释为完整的无符号数(若为超过16位的长操作数运算,操作数可能不是完整的,其解释请参见第5章中的带进位加法指令,CF对长补码运算的进位衔接仍然有效)OF(OverflowFlag)标志的含义是带符号数溢出标志,多数情况下用于标识最近的算术运算(通常是加减运算)中,如果将操作数解释为补码,其运算结果有没有超出字节或字(与操作数类型有关)的表示范围。OF提供有效标志位信息的前提如下:1)最近影响标志位的指令要影响OF标志2)该指令对OF标志的影响是有意义的3)程序员将该指令的操作数解释为完整的补码(若为超过16位的长操作数运算,操作数可能不是完整的,其解释请参见第5章中的带进位加法指令,OF仅对长补码的最高字节或字的运算结果有效)7.TF标志的含义是什么?它的重要性体现在哪里?答:TF标志为单步跟踪标志位,若TF=0,则CPU处于连续执行机器指令的状态,CPU不间断的从内存读取指令并执行指令;若TF=1,则CPU处于单步执行机器指令的状态,CPU每执行一条指令就触发一次单步中断,引起单步中断服务程序的执行,该中断服务程序在屏幕上显示CPU内各寄存器的当前状态。在DEBUG调试工具中,单步调试命令T就是基于该标志位的。TF标志位的重要性在于它为单步调试提供了必要的硬件基础。8.请按照你自己的理解,简述状态标志位、控制标志位的区别。答:通常情况下,状态标志位是由运算指令间接影响的,这些运算指令并没有把它们作为目的操作数。状态标志位是指各种运算指令完成运算后,根据不同操作数解释下运算结果的特点提供的状态信息,这些状态信息可能会在后续程序执行中影响条件转移指令的判断,从而影响程序执行流程,实现程序的分支、循环结构。与状态标志位不同,控制标志位由特定的标志位设置指令来设置,修改这些控制标志位会影响CPU的工作模式与特定事件的处理。例如TF标志用于控制CPU工作于连续执行或单步方
本文标题:四川大学汇编语言程序设计答案
链接地址:https://www.777doc.com/doc-5694192 .html