课后答案网,用心为你服务! 大学答案 --- 中学答案 --- 考研答案 --- 考试答案 最全最多的课后习题参考答案,尽在课后答案网(www.khdaw.com)! Khdaw团队一直秉承用心为大家服务的宗旨,以关注学生的学习生活为出发点, 旨在为广大学生朋友的自主学习提供一个分享和交流的平台。 爱校园(www.aixiaoyuan.com) 课后答案网(www.khdaw.com) 淘答案(www.taodaan.com)
1. 请将下列十进制数转换为二进制数,并统一使用 8 位二进制数表达。
(1)9
00001001
(2)25
00011001
(3)126
01111110
(4)207
11001111
(5)100 01100100
(6)10
00001010
(7)16
00010000
(8)92
01011100
(9)63
00111111
(10)255 11111111
2. 请将下列二进制数转换为十进制数。
(1)(00000001)2
(2)(01000010)2
1
66
(3)(10010011)2 147
(4)(01010101)2
(5)(01100100)2
85
100
(6)(10000000)2 128
(7)(11100111)2
(8)(00000011)2
231
3
(9)(01111111)2 127
3.请将下列八进制数或十六进制数转换为 8 位二进制数。
(1)(137)8
(2)(062)8
01011111
00110010
(3)(005)8 00000101
(4)(5A)16
(5)(39)16
01011010
00111001
(6)(1F)16 00011111
4.请将下列二进制数分别转换为八进制和十六进制数
(1)(01011010)2
(132)8 (5A)16
(2)(01100001)2
(141)8 (61)16
(3)(01110111)2 (167)8 (77)16
5.请将下列二进制数转换为 8 位补码。
(1)(+00110001)2
(2)(-00010011)2
00110001
11101101
(3)(-01010100)2 10101100
(4)(+00000000)2
(5)(-01110111)2
00000000
10001001
(6)(-01100101)2 10011011
6.请将下列 8 位补码转换为二进制数。(注:教材原题中方括号记法不当,在此纠正)
(1)10010001
(2)00110010
-01101111
+00110010
(3)11100110 -00011010
(4)11111111
(5)11111001
-00000001
-00000111
(6)11000000 -01000000
7.请将下列十进制数转换为 8 位二进制数,作为 8 位无符号数编码完成相应运算,给出运
算结果,并且判断运算的有无溢出。
(1)56+32
00111000
+ 00100000
0 01011000 最高位无进位,运算无溢出
(2)100+75
01100100
+ 01001011
0 10101111 最高位无进位,运算无溢出
(3)123+8
01111011
+ 00001000
0 10000011 最高位无进位,运算无溢出
(4)125+134
01111101
+ 10000110
1 00000011 最高位有进位,运算有溢出
(5)200+105
11001000
+ 01101001
1 00110001 最高位有进位,运算有溢出
(6)26+34
00011010
+ 00100010
0 00111100 最高位无进位,运算无溢出
注:自行练习无符号数减法运算时的溢出判断,注意不能使用补码加法代替无符号数减法
来判断
8.请将下列十进制数转换为 8 位二进制补码,完成相应运算,给出运算结果,并且判断运
算有无溢出。
(1)-123+66
[-123]补=10000101
[66] 补=01000010
10000101
+ 01000010
11000111
溢出分析:正+负,无溢出
(2)62-54
[62]补=00111110
[-54] 补=11001010
00111110
+ 11001010
1 00001000
溢出分析:正+负,无溢出
(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] 补=11110111
10110010
+ 11110111
1 10101001
溢出分析:负+负=负,运算正确,无溢出
(6)66+75
[66] 补=01000010
[75]补=01001011
01000010
+ 01001011
0 10001101
溢出分析:正+正=负,运算结果不是正确的 8 位补码,有溢出
注:补码加减运算溢出判断方法
1)正+负,无溢出
2)正+正=正,无溢出;正+正=负,溢出;
3)负+负=负,无溢出;负+负=正,溢出;
各种加减运算均可等价为以上三种情况
9.请简述 ASCII 码的概念,并说明该编码中的优越性。
答:ASCII 码为一种字符代码,它的实质是各种字符形状(点阵)的编号。该编码中,大小
写英文字母的编号是以字母顺序连续编排,便于字符处理程序设计;数字字符‘0’~‘9’
的 ASCII 码为 31H~39H(十六进制记法),编码连贯且容易转换为对应的数值,与 BCD 码
间也具有方便的转换关系,使得数字字符串直接参与运算成为可能。
10.请简述 BCD 码的概念,并说明该编码的主要用途。
答:BCD 码是一种用于表述十进制数的二进制编码,它使用 4 个连续的二进制位表示一个
十进制位,并限制其合法范围为 0~9。BCD 码主要用于使用二进制运算指令实现十进制数
的运算,此功能需要结合二进制算术运算指令(加、减、乘、除)与 BCD 码运算调整指令
才能完成,需要在运算中的十六进制进、借位调整为十进制进、借位。
1.8086/8088 CPU 被划分哪两个功能模块?这样划分的目的是什么?
答:8086、8088CPU 内部被划分为 EU(Execute Unit)和 BIU(Bus Interface Unit)两个功
能模块。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/8088 CPU 中的寄存器被分为哪几个类别,它们分别的大致功能是什么?
答:8086、8088CPU 中的寄存器被划分为数据寄存器、地址指针寄存器、段寄存器、控制
寄存器几种类别,其中数据寄存器用于保存完成运算所需要的源数据、运算结果;地址指针
寄存器用于保存内存单元逻辑地址中的偏移量或偏移量分量;段寄存器用于保存内存单元逻
辑地址中的段基值;控制寄存器包括 IP(指令指针)与 FR(标志寄存器),无条件、条件
转移指令都通过修改(IP)实现程序流程转移,而 FR 中的标志位会影响条件转移指令的判
断,从而间接影响程序的执行流程。
4.IP 寄存器的功能是什么?(IP)在哪些情况下会被修改?
答:IP 是指令指针寄存器,其功能为提供 BIU 单元将要从内存读取的下一条指令的偏移量,
该寄存器固定与 CS 段寄存器搭配使用,形成下一条指令的完整物理地址。CPU 顺序执行内
存中的指令序列时,会不断修改(IP),使之指向下一条指令;除此之外,转移指令、循环
控制指令、子程序调用、返回指令、中断调用、返回指令都是通过修改(IP)来达到程序流
程转移的目的。
5.8086/8088 CPU 中的指令队列是如何工作的?它与 CPU 中的寄存器有何不同?
答:指令队列是 8086、8088CPU 中的一个重要部件,位于 BIU 单元内部,它是由总线控制
逻辑自动进行操作,用于存放由 BIU 通过总线读取的机器指令,EU 单元对指令译码时仅从
指令队列读取机器指令,不再访问总线。指令队列是一组存储单元,从物理结构上观察,它
与指令系统中能够使用的寄存器没有区别。但是,指令系统中的机器指令并不能直接对指令
队列实施控制,因为机器指令的执行在时间上处于指令的执行周期,而不是取指周期,取值
周期是由 CPU 自动执行的,与机器指令规定的功能无关。换言之,对于通常的寄存器,我
们的程序能够对它们实施直接控制,但却不能控制指令队列,它由 CPU 自动管理。
6.CF、OF 标志的含义是什么?它们分别在什么时候提供的才是有效的标志位信息?
答:CF(Carry Flag)标志的含义是无符号数进位标志,多数情况下用于标识最近的算术运
算(通常是加减运算)中,如果将操作数解释为无符号数,其运算结果有没有超出字节或字
(与操作数类型有关)的表示范围。CF 提供有效标志位信息的前提如下:
1)最近影响标志位的指令要影响 CF 标志
2)该指令对 CF 标志的影响是有意义的
3)程序员将该指令的操作数解释为完整的无符号数(若为超过 16 位的长操作数运算,操作
数可能不是完整的,其解释请参见第 5 章中的带进位加法指令,CF 对长补码运算的进位衔
接仍然有效)
OF(Overflow Flag)标志的含义是带符号数溢出标志,多数情况下用于标识最近的算术运
算(通常是加减运算)中,如果将操作数解释为补码,其运算结果有没有超出字节或字(与
操作数类型有关)的表示范围。OF 提供有效标志位信息的前提如下:
1)最近影响标志位的指令要影响 OF 标志