1、第 1 章习题1.1 将下列二进制数转换为十进制数和十六进制。(1)1101 (2) =13=D(H)(2)11010 (2) =26=1A(H)(3)110100 (2) =52=34(H)(4)10101001 (2) =169=A9(H )要点:从低位起,按每 4 位将对应二进制转换成十六进制。而不是通过十进制转换。1.2 见上。1.3 简述 3 个门电路的基本元素在电路中对电平高低的作用。答:与、或、非。1.4 布尔代数有哪两个特点?答:(1)值只有两个;(2)只有与、或、反 3 种运算。1.5 布尔代数的“或运算”结果可用哪两句话来归纳?其“与运算”又可归纳成哪两句话“答:(1) “
2、或运算”运算结果为有一真必为真,两者皆假才为假。(2) “与运算”有一假即为假,两者皆真才为真。1.6 什么叫原码、反码及补码?答:原码就是一个数的机器数。反码:将原码每位取反,即为反码。更准确的是:正数的反码就等于它的原码;负数的反码就是它的原码除符号位外,各位取反。补码:反码加 1 就是补码。更准确的是:正数的补码就等于它的原码; 负数的补码就是它的反码加 1。例:X1= 100 1001 X2=100 1001则 : X1原 = 0100 1001 X1反 = 0100 1001X1补= 0100 1001 X2原 = 1100 1001 X2反 = 1011 0110 X2补 = X2
3、反 +1= 1011 01111.7 为什么需要半加器和全加器,它们之间的主要区别是什么?答:(1)因为加法的第一位没有进位,所以用半加器即可;而第二位起可能有进位,故需要考虑全加器;(2)两者的区别是半加器为双入双出,全加器为三入双出。1.8 用补码法写出下列减法的步骤:(1)1111 (2) -1010(2) =? (2) =? (10)答:(2)1100 (2) -0011(2) =? (2) =? (2)答:按上述所讲的正规方法做。第一个数的补码=原码=01100;第二个数的原码(即机器码)为 10011,其反码为 11100,其补码为 11101;两个数的补码相加,即为:01100+
4、 11101= 101001将最高位的进位 1 删去,得结果为 01001,即为 9(10)两个数相减其实就是第一个数与第二个数的补码相加。第一个数 1111 为正数,其原码为 1111第二个数为 1010) ,其机器码(原码)为:1010,反码为 0101,补码为:0110两者相加: 1111+ 011010101将最高位的进位 1 删去,得结果为 10101,即为 5(10)这是按书上的简单做法。按最正规的方法做如下:若考虑两个数属于带符号数,第一个是正数,补码与原码都为 01111;第二个数是负数,原码为 11010,反码为 10101,补码为 10101+1=10110第一个数与第二个
5、数的补码相加,即为:01111+ 10110100101将最高位的进位删去,得结果为 00101,即为 5(10)建议用第二种方法为佳。1.9 做出 101011(2) +011110(2) 的门电路图并求其相加的结果。答:相加结果为: 101011+ 011110= 1001001得结果为 1001001(2) 。 (注:相加时不去掉最高位的进位)门电路图略去。1.10 做出第 1.9 题中两数相减的门电路图并求其相减的结果。答:若为 101011-011110则第一个数为正数,其补码=原码=0101011;第二个数为负数,其原码为 1011110,反码为 1100001,补码=反码+1=1
6、100001+1=1100010两个数的补码相加为: 0101011+ 1100010= 1 0001101去掉最高位的进位 1,得结果为 0001101,即为 13(10) 。例 2: +0反 = 00000000-0反 = 11111111即:数 0 的反码也不是唯一的。第 2 章习题2.2 触发器、寄存器及存储器之间有什么关系?请画出这几种器件的符号。答:触发器是存放一位二进制数字信号的基本单元。触发器是计算机的记忆装置的基本单元,也可以说是记忆细胞。触发器可以组成寄存器,寄存器又可以组成存储器。寄存器和存储器统称为计算机的记忆装置。(2)其符号分别表示如下:2.4 累加器有何用处?画出
7、其符号。答:累加器作为 ALU 运算过程的代数和的临时存储处。2.5 三态输出电路有何意义?其符号如何画?答:三态输出电路使得一条信号传输线既能与一个触发器接通,也可以与其断开而与另外一个触发器接通,从而使得一条信号线可以传输多个触发器的信息。2.6 何谓 L 门及 E 门?它们在总线结构中有何用处?答:(1)L 门:高电平时使数据装入、低电平时数据自锁其中的电路 ;E 门:E 门即三态门,当选通端 E 门为高电平时,可将信息从 A 端送到 B 端。(2)L 门专管对寄存器的装入数据的控制,而 E 门志管由寄存器输出数据的控制。2.7 控制字是什么意义?试举个例子说明。答:(1)控制字 CON
8、 将各个寄存器的 L 门和 E 门的按次序排成一列,并且为了避免住处在公共总线中乱窜,规定在某一时钟节拍,只有一个寄存器的 L 门为高电平,一个寄存器的 E 门为高电平,从而保证了 E 门为高电平的寄存器的数据流入到 L 门为高电平的寄存器中去。(2)略去,详见教材 P31 的表 2-32.8 ROM 和 RAM 各有何特点与用处?答:ROM 是只读存储器,是用以存放固定程序的存储器,一旦程序放进去之后,就不能再改变。也不能再写入新的字节,而只能读出其中所存储的内容;RAM 是随机存储器(又称读/写存储器) ,它与 ROM 的区别在于它不但能读出存放在其中各个存储单元的数据,而且能够随时写进新
9、的数据,或者改变原有数据。2.9 为什么要建立“地址”这个概念?答:因为一个存储器可以包含数以千计的存储单元,可以存储很多数据,为了便于存入和取出,需要对每个存储单元确定一个固定地址。2.11 译码器有何用处?答:译码器用来确定存储单元的地址。地址译码器常用于计算机中对存储单元地址的译码,即将一个地址代码转换成一个有效信号,从而选中对应的单元。2.12 存储地址寄存器(MAR)和存储数据寄存器(MDR)各有何用处?答:MAR 将所要寻找的存储单元的地址暂存下来,以备下一条指令之用。MDR 是将要写入 RAM 中去的数据暂存起来,以等待控制器发出指令再将数据写入 RAM中去。P33 2,4,5,
10、6,7,8,9,11,12第 3 章习题3.1 略去3.2 程序计数器 PC 的内容是什么意义?答:程序计数器 PC 存储的内容是指令的地址码。每次运行指令前,先复位到 0,每取出执行一条指令,PC 加 1.3.3 指令寄存器 IR 从 PROM 接收到指令字(8 位)后的运行过程如何?起什么作用?答:(1)指令寄存器 IR 从 PROM 接收到指令字后,就立即将其高 4 位送到控制部件。(2)控制部件经过分析后就发出控制指令,将 IR 的低 4 位数送到存储地址寄存器MAR,MAR 将此低 4 位数作为地址并用于访问 PROM。故第 1 次访问 PROM 的是其指令区,第 2 次访问的是其数
11、据区。3.4 略3.5 环形计数器有何用处?什么叫环形字?答:(1)环形计数器用来发出顺序控制信号(即用来发出环形字) ,从而产生机器节拍。(2)环形字是其 6 位输出端依次轮流为高电平,并且是在最位一位(左边第 1 位)置 1 后又回到右边第 1 位,从而形成环形置位。3.6 什么叫例行程序?什么叫机器周期、取指周期和执行周期?本章简化式计算机的机器周期包括几个时钟周期(机器节拍)?机器周期是否一定是固定不变的?答:(1)例行程序:由厂家编好的执行每个程序(在本章中即为每条指令)所需要的机器节拍(3 个,见 P49)(2)机器周期:执行一条指令的时间。(3)取指周期:取一条指令所需的 3 个
12、机器节拍。(4)执行周期:执行一条指令所需的机器节拍(一般也为 3 个机器节拍)(5)本章简化式计算机的机器周期包括 6 个机器节拍。补充:机器节拍:即一个时钟周期(时钟一个高电平+一 个低电平)(6)不一定。只不过固定了在 6 个节拍完成一个机器周期的计算机被称为固定周期的计算机。3.7 控制部件包括哪些主要环节?各有何用处?答:(1)控制部件包括环形计数器、指令译码器、控制矩阵和其他控制电路。(2)环形计数器用来产生环形字,从而产生机器节拍; 指令译码器:将高四位组成的编码信息译成某一控制线为高电位。控制矩阵:用来产生控制字 CON,即产生所有控制信号。其他控制电路包含时钟脉冲发生器、运行
13、/停车触发器、 “启动”和“清除”按钮。其作用见 P54.3.8 子程序计数器有何用处?答:也是用来作为一个程序计数器的。3.9-3.11 略去3.12 指令寄存器 IR 是如何将其指令字段和地址字段分送出去的?这两个字段的位数是否保持不变?答:(1)指令寄存器 IR 将 8 位指令字的高 4 位作为指令字段送到控制部件,而将低 4 位做为地址字段通过总线送到存储地址寄存器 MAR 中去。(2) 对,保持不变。这由制造厂家确定。第 4 章习题4.1 8086CPU 与 8088CPU 有哪些相同之处?又有哪些区别?答:两者的内部结构基本相同,内部都采用 16 位字进行操作及存储器寻址,两者的软
14、件完全兼容,程序的执行也完全相同,两种处理器都封装在相同的 40 脚双列直插组件(DIP)中。但它们的外部性能有区别。8086 是 16 位数据总线,而 8088 是 8 位数据总线,在处理一个16 位数据字时,8088 需要两步操作而 8086 只需要一步。4.2 8086 CPU 从功能上分为几部分?各部分由什么组成?各部分的功能是什么?答:8086CPU 从功能上分为总线接口部分 BIU 和执行部件 EU 两部分。其中总线接口部分的功能是负责与存储器、I/O 端口传送数据,即 BIU 管理在存储器中存取程序和数据的实际处理过程。执行部件 EU 的功能负责指令的执行。将指令译码并利用内部的
15、寄存器和 ALU 对数据进行所需的处理。BIU 由 4 个段寄存器(CS、ES、DS、SS) 、16 位指令指针寄存器 IP、20 位的地址加法器和 6 字节的指令队列组成。EU 由 4 个通过寄存器(AX、BX、CX 、DX) 、4 个专用寄存器(SI、DI 、SP 、BP) 、标志寄存器 FR、算术逻辑部件 ALU 组成。4.3 8086 CPU 有哪些寄存器组成?各有什么用途?标志寄存器的各标志位在什么情况下置位?答:8086 CPU 由 4 个通用寄存器(AX、BX、CX、DX) 、4 个专用寄存器(SI、DI、SP、BP ) 、标志寄存器 FR 组成,共 9 个寄存器。4 个通用寄存
16、器既可作为 16 位寄存器用,也可作为 8 位寄存器使用。其中 AX 寄存器也常称为累加器。其它寄存器的用途见教材。标志寄存器有 6 个状态标志(SF、ZF、PF 、CF、AF 、OF)和 3 个控制标志位(DF、IF 、TF) 。其具体置位见 P75 的表 4-1.4.4 8086 系统中的物理地址是如何得到的?假如 CS=2000H,IP=2100H 其物理地址应是多少?答:8086 系统中的物理地址是通过 BIU 中的 20 位地址加法器得到的。物理地址计算公式为 CS 段地址*16(即二进制左移 4 位,或者十六进制左移 1 位)+IP 偏移地址。按计算公式,本题中的物理地址为 200
17、00H+2100H=22100H。4.5 什么叫总线周期?8086CPU 的一个总线周期包括多少时钟周期,什么情况下要插入 TW等待周期?插入多少个 TW 取决于什么因素?答:总线周期是 CPU 或其他总线控制设备访问一次存储器或 I/O 端口所需的时间。在总线周期中需要利用总路线。补充:指令周期:指令周期是机器执行一条指令所需的时间。8086CPU 的一个标准总线周期包括 4 个时钟周期。当 4 个时钟周期不能完成所规定的操作时,可以插入一个或多个等待时钟周期 TW。插入多少个 TW 取决于所访问的存储器或者 I/O 设备是否准备就绪,此信号由引脚 READY发出。4.6 什么是最大模式?什
18、么是最小模式?用什么方法将 8086/8088 置为最大模式和最小模式?答:所谓最小模式,就是在系统中只有 8086/8088 一个微处理器。最大模式中,饮包含两个或多个微处理器,其中主处理器是 8086/8088,其他处理器是协处理器(如数值运算协处理器 8087,输入/输出协处理器 8089) 。用硬件方法来决定 8086/8088 的工作模式,具体是通过引脚 控制信号引脚来决定,MXN/其接+5 伏,则为最小模式,接地为最大模式。4.7 什么是地址锁存器?8086/8088 系统中为什么要用地址锁存器?锁存的是什么信息?答:(1)地址锁存器就是一个寄存器,它根据控制信号的状态,将总线上的
19、地址代码暂存起来,即用于“锁定”一个(系列)数字状态的电路。简答:地址锁存器是用来锁存/保存地址的一个寄存器(即一个普通的时序电路) ,是触发器的原始形式。目的是某次传送数据并不能一次完成所以锁存地址以免 CPU 重复的传送一个地址。原理:CPU 送地址到锁存器 8282/8283 之后,内存在地址锁存器中找地址,而不是向 CPU要地址。(2)因为 8060/8088 系统采用的是地址 /数据分时复用总线,即用同一总线传输数据又传输地址,当微处理器与存储器或 IO 交换信号时,首先由 CPU 发出存储器地址,同时发出允许锁存 ALE 给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在
20、总线上,随后才能传输数据。个人理解:因为在总线周期的前半部分,CPU 总是送出地址信号和 BHE(总线高允许)信号,为了通知地址已经准备好了,可以被所锁存,CPU 会送出高电平允许锁存信号 ALE。此时地址信号和 BHE 信号被锁存。由于有了锁存器对地址信号和 BHE 信号的锁存,CPU在总线周期的后半部分,地址和数据都在总线上,确保了 CPU 对锁存器和 I/O 接口的读/写操作。(3)锁存的是复用总线上的地址信息。4.8 8086/8088 系统中的 8286 是什么器件?起什么作用?答:(1)8286 是总线驱动器(又称总线收发器,双向数据缓冲器) 。(2)在一个系统所含的外设接口较多时
21、,它用来增加数据总线的驱动能力。4.9 8086/8088 系统中用时钟发生器 8284A 产生哪些信号?答:8284A 产生恒定的时钟信号、准备信号( READY)及复位信号(RESET) 。4.10 8086 最基本的操作是什么?答:是总线操作4.11 8086/8088 系统中引入了哪些中断?是如何引入的?答:8086 共有 256 种类型的中断。从产生中断的方法,可以将其分为硬件中断和软件中断两大类,硬件中断中的非屏蔽中断是通过 CPU 的 NMI 引脚进入的,可屏蔽中断是通过CPU 的 INTR 引脚进入的,并且只有当中断允许标志 IF 为 1 时,非屏蔽中断才能进入。软件中断是 C
22、PU 根据软件中的某条指令或者软件对标志寄存器中某个标志的设置而产生的。4.12 什么是可屏蔽中断?什么是非屏蔽中断?可屏蔽中断是指受中断标志 IF 屏蔽的中断,由 INTR 引脚进入。非屏蔽中断是不受中断标志 IF 屏蔽的中断,由 NMI 引脚进入。4.13 什么是中断向量?中断向量表指的是什么?中断向量表放在什么地方?答:(1)中断向量是中断处理子程序的入口地址,每个中断类型对应一个中断向量。(2)中断向量表是指在 8086/8088 微机系统的内存中,专门留出的 0 段的 000003FH 区域,用于存放所有的 256 个中断向量。(3)中断向量表放在 0 段的 000003FH 区域。
23、4.14 假如中断类型为 8,它的中断服务入口地址是多少?答:中断类型 8*4=32,即十六进制 20H,所以其中断服务入口地址为 20H.第 5 章习题5.1 分别指出下列指令中的源操作数和目的操作数的寻址方式:(1)MOV SI, 200 ;源操作数为立即数寻址(2)MOV CX, DATASI ;源操作数为(3)ADD AX, BXDI ;源操作数为基址加变址的寄存器间接寻址(4)AND AX, BX 源操作数为寄存器寻址(5)MOV SI, AX ;源操作数为寄存器寻址(6)PUSHF ; 为寄存器寻址对于目的操作数,前 4 小题均为寄存器寻址, (5)题为寄存器间接寻址。5.2 试述
24、指令 MOV AX, 2010H 和 MOV AX, DS:2010H的区别中。答:前者为将十六进制数 2010H 送到寄存器 AX 中去;后者为将数据段 DS 中偏移地址为 2010H、2011H 两单元中的内容送到 AX 中去。5.3 写出以下指令中内存操作数的所在地址。(1)MOV AL, BX+5答:源操作数的地址为BX+5,默认段寄存器为数据段寄存器 DS,又因 BX 为基址寄存器,所以寻址方式为数据段相对基址寻址;(2)MOV BP+5, AX答:目的操作数的地址为BP+5,默认段寄存器为堆栈段寄存器 SS,又因 BP 为基址寄存器,所以寻址方式为堆栈段相对基址寻址;(3)INC
25、BYTE PTR SI+3答:此句意思为将 SI+3 所指的存储单元的内容加 1;PTR 的意义是定义其后的内容变量的新类型为字节属性,具体用法见第 7 章 P159.内存操作数的地址为SI+3,属于相对变址寻址;(4)MOV DL, ES: BX+DI答:源操作数为附加段基址加变址的寻址方式;(5)MOV BX, BX+SI+2答:源操作数的内存地址为BX+SI+2,属于数据段相对基址加变址寻址。5.4 判断下列指令书写是否正确:(1)MOV AL, BX 答:不对,一个 8 位,一个 16 位;(2)MOV AL,CL答:正确(3)INC BX答:正确(4)MOV 5, AL答:不对,目的操作数不能是立即数。(5) MOV BX, SI