第1章微机系统导论1.2微处理器、微型计算机和微型计算机系统之间有何联系与区别?答:微处理器是微型计算机的中央处理器,微型计算机是微型计算机系统硬件部分的核心部件。
微处理器是指由一片或几片大规模集成电路组成的具有运算器和控制器功能的中央处理器部件。
微型计算机又称主机,是指以微处理器为核心,配上存储器、输入/输出接口电路及系统总线所组成的计算机。
微型计算机系统是指以微型计算机为中心,配以相应的外围设备(如硬盘、显示器、键盘、鼠标等)、电源和辅助电路(统称硬件)以及指挥微型计算机工作的软件系统(如系统软件、应用软件)所构成的系统。
1.3微机硬件系统的组成部分包括哪几部分?目前流行的实际微机硬件系统一般都由哪些部件组成?答:微机硬件系统一般都是由主机板(包括CPU、CPU外围芯片组、主存储器RAM、BIOS芯片与总线插槽)、外设接口卡、外部设备(如硬盘、光驱、显示器、打印机、键盘、鼠标与调制解调器)以及电源等部件所组成。
目前流行的实际微机硬件系统一般包括CPU、主板、内存、显卡、声卡、显示器、硬盘、光驱、键盘、鼠标、音箱、调制解调器、机箱以及电源等。
1.7 一个最基本的微处理器由哪几部分组成?它们各自的主要功能是什么?答:一个最基本的微处理器由运算器、控制器和内部寄存器阵列3个部分组成。
运算器又称为算术逻辑单元(ALU),用来进行算术或逻辑运算以及位移循环等操作;控制器包括指令寄存器(IR)、指令译码器(ID)、可编程逻辑阵列(PLA),三者共同作用完成取指控制、执指控制等操作;内部寄存器阵列包括若干个功能的寄存器和寄存器组,用以存放对应的数据,供控制器和运算器使用。
1.11 试说明位、字节、字长的基本概念及三者之间的关系。
答:在计算机内部,程序和数据都是用0、1二进制代码的形式来表示的。
每一个二进制代码0或1就叫做1位(bit )信息,8位二进制代码作为一个字节(Byte ),2个字节组成一个字(W ord ),字长表示计算机数据总线上一次能处理的信息的位数,1个字长=2个字节=16个位。
第2章 微机运算基础2.2 在进位记数制中,“基数”和“位权(或权)”的含义是什么?一个以b 为基数的任意进制数N ,它按位权展开式求值的一般通式是如何描述的? 答:基数就是表示该进位制所用字符或数码的个数;数制每一位所具有的值称为位权或简称权。
数N 的按位权展开式的一般通式为()--1mii i n N k b==±⨯∑式中,k i 为第i 位的数码;b 为基数;b i 为第i 位的权;n 为整数的总位数;m 为小数的总位数。
2.3 将下列十进制数分别转换为二进制数。
(1) 147 (2) 4095 (3) 0.625 (4) 0.l5625 答:方法1:整数部分:除2取余;小数部分:乘2取整 方法2:用特殊数字(1) 147 = 128+16+2+1 = 27+24+21+20 = 1001 0011B (2) 4095 = 4096-1 = 212-20 = 1111 1111 1111B (3) 0.625 = 0.5+0.125 = 2-1+2-3 = 0.101B (4) 0.l5625 = 0.00101B2.4 将下列二进制数分别转换为BCD 数。
(1) 1011 (2) 0.01 (3) 10101.101 (4) 11011.001 答:方法:先转换为十进制数,再转换为BCD 数(1) 1011B = 11D = 0001 0001BCD (2) 0.01B = 0.25D = 0.0010 0101BCD(3) 10101.101B = 21.625D = 0010 0001.0110 0010 0101BCD(4) 11011.001B = 27.125D = 0010 0111.0001 0010 0101BCD2.5 将下列二进制数分别转换为八进制数、十六进制数。
(1) 10101011B (2) 1011110011B(3) 0.01101011B (4) 11101010.0011B答:方法:二进制数转换为八进制数:3位变1位;二进制数转换为十六进制数:4位变1位。
(1) 10101011B = 253Q = 0ABH(2) 1011110011B = 1363Q = 2F3H(3) 0.01101011B = 0.326Q = 0.6BH(4) 11101010.0011B = 352.14Q = 0EA.3H2.6 选取字长n为8位和16位两种情况,求下列十进制数的原码。
(1) X = +63 (2) Y = -63 (3) Z = +118 (4) W = -118答:方法:最高位(D7或D15)为符号位,其余位是数值部分的二进制形式。
(1) 8位:[ X ]原= 0011 1111B,16位:[ X ]原= 0000 0000 0011 1111B(2) 8位:[ Y ]原= 1011 1111B,16位:[ Y ]原= 1000 0000 0011 1111B(3) 8位:[ Z ]原= 0111 0110B,16位:[ Z ]原= 0000 0000 0111 0110B(4) 8位:[ W ]原= 1111 0110B,16位:[ W ]原= 1000 0000 0111 0110B2.7 选取字长n为8位和16位两种情况,求下列十进制数的补码。
(1) X = +65 (2) Y = -65 (3) Z = +127 (4) W = -128答:方法:最高位(D7或D15)为符号位,若为正数,则其余位是数值部分的二进制形式;若为负数,则其余位是数值部分的二进制形式按位取反后末位加1。
(1) 8位:[ X ]补= 0100 0001B,16位:[ X ]补= 0000 0000 0100 0001B(2) 8位:[ Y ]补= 1011 1111B,16位:[ Y ]补= 1111 1111 1011 1111B(3) 8位:[ Z ]补= 0111 1111B,16位:[ Z ]补= 0000 0000 0111 1111B(4) 8位:[ W ]补= 1000 0000B,16位:[ W ]补= 1111 1111 1000 0000B2.8 已知数的补码表示形式如下,分别求出数的真值与原码。
(1) [ X ]补= 78H (2) [ Y ]补= 87H(3) [ Z ]补= FFFH (4) [ W ]补= 800H答:正数的原码与补码相同,负数的原码是补码的符号位不变,其余位按位取反后末位加1。
(1) [ X ]原= 0111 1000B = 78H,X = 7×16+8 = 120(2) [ Y ]原= 1111 1001B =0F9H,Y = -(7×16+9) = -121(3) [ Z ]原= 0000 1111 1111 1111B = 0FFFH,Z = 4095(4) [ W ]原= 0000 1000 0000 0000B = 0800H,W = 20482.12 设X=87H,Y=78H,在下述两种情况下比较两数的大小。
(1) 均为无符号数(2) 均为带符号数(设均为补码)答:(1) 若均为无符号数,则X > Y(2) 若均为带符号数,则最高位(符号位)为1的数为负数,最高位(符号位)为0的数为正数数,所以X < Y2.13 选取字长n为8位,已知数的原码表示如下,求出其补码。
(1) [ X ]原= 01010101 (2) [ Y ]原= 10101010(3) [ Z ]原= 11111111 (4) [ W ]原= 10000001答:正数的补码与原码相同,负数的补码是原码的符号位不变,其余位按位取反后末位加1。
(1) [ X ]补= 01010101B (2) [ Y ]补= 11010110B(3) [ Z ]补= 10000001B (4) [ W ]补= 11111111B2.17 阐述微型计算机在算术运算时,所产生的“进位”与“溢出”二者之间的区别。
答:溢出是指带符号数的补码运算溢出,溢出及其判断方法:OF=D7C⊕D6C。
进位是指运算结果的最高位向更高位的进位D7C。
进位和溢出是两个不同性质的概念,不能混淆,两者没有必然的联系。
2.19若字长为32位的二进制数用补码表示时,试写出其范围的一般表示式及其负数的最小值与正数的最大值。
答:一般表示式为-232-1 ~ +232-1-1其负数的最小值:-232-1 = -2147483648其正数的最大值:+232-1-1= +2147483647第3章8086/8088微处理器及其系统3.2 8086 CPU有多少根数据线和地址线?它能寻址多少内存地址单元和I/O端口?8088 CPU有多少根数据线和地址线?为什么要设计8088 CPU?答:8086 CPU有16根数据线和20根地址线,可以寻址1MB的内存地址单元和64KB的I/O端口。
8088 CPU有16根数据线和20根地址线,但是8088的BIU通过总线控制电路与外部交换数据的总线宽度是8位,总线控制电路与专用寄存器之间的数据总线宽度也是8位。
设计8088 CPU的目的是为了与Intel原有的8位外围接口芯片直接兼容。
3.6逻辑地址和物理地址有何区别?为什么8086微处理器要引入“段加偏移”的技术思想?段加偏移的基本含义又是什么?试举例说明。
答:逻辑地址是指未定位之前在程序和指令中表示的一种地址,它包括两部分:段地址和偏移地址;物理地址又称为实际地址,它是指CPU对存储器进行访问时实际寻址所使用的地址。
对8086 CPU而言,逻辑地址为16位,物理地址为20位,一个物理地址可对应多个逻辑地址。
“段加偏移”寻址机制允许重定位,极大地保证了系统兼容性。
CPU在处理数据时寻址的是20位的物理地址,限于8086/8088微处理器内部寄存器都是16位的,所以微处理器的地址加法器会自动地把16位段寄存器中的16位段地址左移4位,形成20位的段基址(段起始地址),然后同16位的偏移地址相加,才能形成20位的物理地址。
这种方法称为段加偏移。
例如,若段地址为1123H,偏移地址为15H,将1123H左移4位,即11230H,则物理地址为PA = 11230H + 15H = 11245H。
3.14 IP寄存器的用途是什么?它提供的是什么信息?答:在程序正常运行过程中,IP寄存器用来存放BIU要取的下一条指令的偏移地址。
IP在程序运行中能自动进行加1修正,使之总是指向要执行的下一条指令(字节)。
有些指令(调用子程序、中断等)能改变IP值或把IP值压入堆栈暂时保存,或者由堆栈弹出到IP以恢复指令指针的原值。