微机原理与接口技术课后答案 黄玉清版

微机原理与接口技术课后答案  黄玉清版
微机原理与接口技术课后答案  黄玉清版

习题一概述

主要内容:计算机系统的组成和各部分的作用,微型计算机组成,微处理器的结构;计算机中的信息表示;微机系统的结构特点。

1.1 简述微型计算机的组成。

【答】微型计算机是由微处理器、存储器、输入/输出接口电路和系统总线构成的裸机系统。

1.2 微处理器、微型计算机和微型计算机系统三者之间有什么不同?

【答】将运算器与控制器集成在一起,称为微处理器。微处理器是微处理器的核心。微型计算机是由微处理器、存储器、输入/输出接口电路和系统总线构成的裸机系统。微型计算机系统是以微型计算机为主机,配上系统软件和外设之后而构成的计算机系统。三者之间是有很大不同的,微处理器是微型计算机的一个组成部分,而微型计算机又是微型计算机系统的一个组成部分。

1.3 CPU在内部结构上由哪几部分组成?CPU应具备什么功能?

【答】CPU在内部结构上由算术逻辑部件(ALU);累加器和通用寄存器组;程序计数(指令指针)、指令寄存器和译码器;时序和控制部件几部分组成。不同CPU的性能指标一般不相同,但一般CPU应具有下列功能:可以进行算术和逻辑运算;可保存少量数据;能对指令进行译码并执行规定的动作;能和存储器、外设交换数据;提供整个系统所需要的定时和控制;可以响应其它部件发来的中断请求。

1.4 累加器和其他通用寄存器相比有何不同?

【答】累加器是比较特殊的通用寄存器。它在某些指令执行前,可以保存一源操作数,还在执行后又用来保存运算结果,另外它一般也用来完成输入/输出指令。而通用寄存器则一般只用来保存参加运算的数据、运算的中间的结果以及用来保存地址。

1.5 从传输的信息类型而言,总线分为哪几种类型?微型计算机采用总线结构有什么优点?

【答】(1)分为地址总线,数据总线与控制总线三类,又称三总线。

(2)微型计算机的三总线结构是一个独特的结构。采用总线结构,系统中各功能部件之间的相互关系,变成了各功能部件面向总线的单一关系。一个部件只要符合总线标准,就可以连接到采用这种总线标准的系统中,使系统功能得到扩展。

1.6 控制总线传输的信号大致有哪几类?

【答】控制总线用来传输控制信号,其中包括CPU输出到存储器和输入/输出接口电路的控制信号,如读信号、写信号和中断响应信号等;还包括其它部件输入到CPU的信号,比如,时钟信号、中断请求和准备就绪信号。

1.7数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一套总线或者合用

部分总线,那么要靠什么来区分地址和数据?

【答】从结构上看数据总线是双向的,而地址总线从结构上看却是单向的。如果一个系统的数据总线和地址总线合用一套总线或者合用部分总线,一般可利用时钟,在总线上采用分时复用技术来区分地址和数据,例如可在总线周期的若干个时钟周期,约定某周期传输地址、在另一周期传输数据。

1.8 将下列十进制数转换成8421BCD码:

1049 =0001 0000 0100 1001

902=1001 0000 0010

851.37=1001 0101 0001 . 0011 0111

0.6259=0000. 0110 0010 0101 1001

1.9 将下列各组数用八位的补码相加:

(+75)+(-6)

[+75]补=0100 1011 [-6] 补=1111 1010

[+75]补+ [-6] 补=1000 0110+1000 0110=0100 0101

习题二 8086微处理器

答案

主要内容:主要介绍8086/8088CPU内部结构。了解80X86CPU的特点。

2.1 8086 CPU在内部结构上由哪几部分组成?其功能是什么?

【答】8086的内部结构分成两部分。总线接口部件BIU,负责控制存储器与I/O端口的信息读写,包括指令获取与排队、操作数存取等。执行部件EU负责从指令队列中取出指令,完成指令译码与指令的执行行。

2.2 8086的总线接口部件有那几部分组成? 其功能是什么?

【答】8086的总线接口部件主要由下面几部分组成:4个段寄存器CS/DS/ES/SS,用于保存各段地址;一个16位的指令指针寄存器IP,用于保存当前指令的偏移地址;一个20位地址加法器,用于形成20位物理地址;指令流字节队列,用于保存指令;存储器接口,用于内总线与外总线的连接。

2.3 8086的执行单元(部件)由那几部分组成?有什么功能?

【答】8086的执行单元部件主要由下面几部分组成:控制器、算数逻辑单元、标志寄存器、通用寄存器组。

(1)控制器,从指令流顺序取指令、进行指令译码,完成指令的执行等。

(2)算数逻辑单元ALU,根据控制器完成8/16位二进制算数与逻辑运算。

(3)标志寄存器,使用9位,标志分两类。其中状态标志6位,存放算数逻辑单元ALU运算结果特征;控制标志3位,控制8086的3种特定操作。

(4)通用寄存器组,用于暂存数据或指针的寄存器阵列。

2.4 8086内部有哪些通用寄存器?

【答】四个16位数据寄存器AX、BX、CX、DX,二个指针寄存器SP、BP, 二个变址寄存器SI、DI。

这些寄存器使用上一般没有限制,但对某些特定指令操作,必须使用指定寄存器,可参考后面指令系统章节。

2.5 8086内部有哪些段寄存器?各有什么用途?

【答】四个16位段寄存器:CS、DS、SS、ES,分别保存代码段、数据段、堆栈段与扩展段的段地址。

2.6 8086CPU状态标志和控制标志又何不同?程序中是怎样利用这两类标志的? 8086的状态标志和

控制标志分别有哪些?

【答】(1)标志分两类:状态标志(6位),反映刚刚完成的操作结果情况。控制标志(3位),在8086特定指令操作中起控制作用。

(2)利用状态标志可以掌握当前程序操作的结果,例如了解是否产生进位,是否溢出等。例如利用控制标志可以控制程序的单步调试。

(3)状态标志包括:包括零标志ZF、符号标志SF、奇偶标志PF、进位标志CF、辅助进位标志AF、溢出标志OF。控制标志包括:单步运行标志TF、方向标志DF与中断允许标志IF。2.7 8086/8088和传统的计算机相比在执行指令方面有什么不同?这样的设计思想有什么优点?

8086CPU执行转移指令时,指令队列寄存器内容如何变化?

【答】(1)传统的计算机一般按照取指令、指令译码与执行指令的串行步骤工作。

(2)在8086CPU中,指令的提取与执行分别由总线接口部件BIU与执行部件EU完成,两个单元重叠并行工作,这种机制称为流水线,这种工作方式有力的提高了CPU的工作效率。

(3)8086CPU执行转移指令时,首先清空当前指令队列寄存器,然后从新地址取指令重新填满指令队列。

2.8 8086CPU的形成三大总线时,为什么要对部分地址线进行锁存?用什么信号控制锁存?

【答】为了确保CPU对存储器和I/O端口的正常读/写操作,要求地址和数据同时出现在地址总线和数据总线上。而在8086CPU中AD0~AD15总线是地址/数据复用的,因此需在总线周期的前一部分传送出地址信息,并存于锁存器中,而用后一部分周期传送数据。8086CPU中是通过CPU送出的ALE 高电平信号来控制锁存的。

2.9 将两数相加,即0100 1100加 0110 0101,CF、PF、AF、ZF、SF、OF各为何值?

【答】0100 1100+0110 0101=10110001

CF=0,PF=1,AF=1,ZF=0,SF=1,OF=1

2.10 存储器的逻辑地址由哪几部分组成?存储器的物理地址是怎样形成的?一个具有32位地址

线的CPU,其最大物理地址为多少?

【答】存储器的逻辑地址由段地址与段内偏移地址组成。存储器的物理地址:将16位段地址左移4位后,加上16位段内偏移地址,形成20位物理地址。一个具有32位地址线的CPU,其最大2=4*1024*1024*1024B=4GB。

物理地址为32

2.11 存储器物理地址400A5H~400AAH单元现有6个字节的数据分别为11H,22H,33H,44H,55H,

66H,若当前(DS)= 4002H,请说明它们的偏移地址值。如果要从存储器中读出这些数据,需要访问几次存储器,各读出哪些数据?

【答】由于:物理地址=400A5H=段地址*16+偏移地址=40020H+偏移地址

偏移地址=400A5-40020=85H

若以最少访问次数而言,可以如下操作:从奇地址400A5H中读出一个字节11H;从偶地址开始400A6H、400A7两个单元读出一个字3322H;从偶地址400A8H、400A9H两个单元读出一个字5544H;从偶地址400AAH中读出一个字节66H。最少读4次。

2.12 在 8086中,逻辑地址FFFFH∶0001H、00A2H∶37F0H和B800H∶173FH的物理地址分别是多

少?

【答】(1)FFFFH*16+0001H=FFFF0H+0001H=FFFF1H

(2)00A20+37F0=4210H

(3)B8000+173F=B973FH

2.13 在 8088/8086中,从物理地址12388H开始顺序存放下列三个双字节的数据,651AH, D761H

和007BH,请问物理地址12388H~1238DH6个单元中分别是什么数据?

【答】物理地址12388H~1238DH单元中的数据如下表:Array

2.14 8086/8088 CPU 有40条引脚,请按功能对它们进行分类?

【答】地址总线:AD0~AD15,A16~A19;

数据总线:AD0~AD15;

控制总线:ALE, DEN, DT/R, BHE, M/IO, WR, RD, HOLD, HLDA, INTR, INTA, READY, RESET.

2.15 8086/8088 CPU的地址总线有多少位?其寻址范围是多少?

2=1MB.

【答】8086/8088CPU的地址总线均为20位,8086/8088CPU的寻址范围为20

2.16 8086/8088 有两种工作方式,它们是通过什么方法来实现?在最大方式下其控制信号怎样产生?【答】MN/MX引脚接至电源(+5V),则8086CPU处在最小组态(模式); MN/MX引脚接地,则8086CPU

处在最大组态(模式)。

在最大模式下,需要用外加电路来对CPU 发出的控制信号进行变换和组合,以得到对存储器和I/O 端口的读/写信号和对锁存器8282及对总线收发器8286的控制信号。

2.17 8086 CPU 工作在最小模式(单CPU )和最大模式(多CPU )主要特点是什么?有何区别? 【答】最小模式MN /MX 接+5V ,构成小规模的应用系统,只有8086一个微处理器,所有的总线控制信

号均为8086产生,系统中的总线控制逻辑电路,减少到最小; 不需总线控制器8288;适用于单一处理机系统。

最大模式MN /MX 接地,用于大型(中型)8086/8088系统中,系统总是包含有两个或多个微处理

器,其中一个主处理器就是8086或8088。其它的处理器称协处理器,协助主处理器工作,需要总线控制器来变换和组合控制信号, 需总线控制器8288; 适用于多处理机系统。

2.18 8086/8088 I/O 的读/写周期时序与存储器读/写周期的主要差异是什么?

【答】在8086存储器周期中,控制信号M /IO 始终为高电平;而在I/O 周期中,M /IO 始终为低电平。 2.19 CPU 启动时,有那些特征?如何寻找8086/8088系统的启动程序?

【答】在8088/8086系统中,CPU 启动后,处理器的标志寄存器、指令指针寄存器IP 、段寄存器DS 、SS 、

ES 和指令队列都被清零,但是代码段寄存器CS 被设置为FFFFH 。因为IP=0000,而CS=FFFFH ,所以,8088/8086将从地址FFFF0H 开始执行指令。

通常,在安排内存区域时,将高地址区作为只读存储区,而且在FFFF0H 单元开始的几个单元中放入一条无条件转移指令,转到一个特定的程序中,这个程序往往实现系统初始化、引导监控程序或者引导操作系统等功能,这样的程序叫做引导和装配程序。

2.20 8086和8088是怎样解决地址线和数据线的复用问题的? ALE 信号何时处于有效电平? 【答】8086/8088采用时间分隔技术与地址锁存技术,通过地址锁存允许信号ALE 锁存CPU 送出的地址,

有效解决地址线和数据线的复用问题。

2.21 8086系统在最小模式时应该怎样配置?请画出这种配置并标出主要信号的连接关系. 【答】8086在最小模式下的典型配置。见教材的图2.7。

一片8284A ,作这时钟发生器。3片8282或74LL373,用来作为地址锁存器。2片8286/8287作为总线收发器。

2.22 8086构成系统分为哪两个存储体?它们如何与地址、数据总线连接?

【答】8086构成系统分为偶地址存储体和奇地址存储体。偶地址存储体:连接D7~D0,A0=0时选通;奇地址存储体:连接D15~D8, BHE =0,A0=1时选通。见教材图2.11。

2.23 BHE 信号和A0信号是怎样的组合解决存储器和外设端口的读/写操作的?这种组合决定了

8086系统中存储器偶地址体及奇地址体之间应该用什么信号区分?怎样区分? 【答】BHE 信号和A0的组合以及操作如下表。

2.24 8086 CPU 读/写总线周期各包含多少个时钟周期?什么情况下需要插入 T W 等待周期? 应插入

多少个Tw ,取决于什么因素?什么情况下会出现空闲状态Ti ? 【答】8086CPU 读/写总线周期包含4个时钟周期。

当CPU 与慢速的存储器或外设I/O 端口交换信息,系统中就要用一个电路来产生READY 信号,并传递给CPU 的READY 引脚。CPU 在3T 状态的下降沿对READY 信号进行采样。如果无效,那么,就会在3T 之后插入等待状态w T 。插入w T 的个数取决于CPU 接收到高电平READY 信号的时间。

CPU 在不执行总线周期时,总线接口部件就不和总线打交道,此时,进入总线空闲周期。

自测试:

1.选择题:

(1)某微机具有16M字节的内存空间,其 CPU的地址总线应有(E)条。

A.26 B.28 C.20 D.22 E.24

(2) 8086/8088 CPU要求加到 RESET引脚上的复位正脉冲信号,其宽度至少要( 4 ) 个时钟周期才能有效复位,如果是上电复位则要求正脉冲的宽度不少于( 50 )us 。

A.4,50 B.5,60 C.4,70 D.5,80

(3)当RESET信号进入高电平状态时,将使8086/8088 CPU的( D )寄存器初始化FFFFH。

A.SS B.DS C.ES D.CS

(4) 8086/8088 CPU与慢速的存储器或I /O接口之间,为了使传送速度能匹配,要在(C)状态之间插入若干等待周期Tw。

A.T1 和T2 B.T2 和T3 C.T3 和T4 D.随机

2. 填空题:

(1) 8086/8088 CPU执行指令中所需操作数地址由(寻址方式和地址寄存器)计算出(16 )位偏移量部分送( IP),由(段地址加上偏移量部分)最后形成一个(20 )位的内存单元物理地址。

(2) 8086/8088 CPU在总线周期的 T1 状态,用来输出(20)位地址信息的最高( 4 )位,而在其它时钟周期,则用来输出(状态)信息。

(3) 8086/8088 CPU复位后,从(FFFF0H)单元开始读取指令字节,一般这个单元在()区中,在其中设置一条(无条件转移)指令,使CPU对系统进行初始化。

(4)8086系统的存储体系结构中,1M字节存储体分(两)个存储体,每个存储体的容量都是(512K )字节,其中和数据总线D15~D8相连的存储体全部由(奇地址)单元组成,称为高位字节存储体,并用(高电平)作为此存储体的选通信号。

2)个段地址,任意相邻的两个段地址最短相距(16)个(5)8086/8088系统中,可以有(16

2)存储单元。

存储单元,最长相距(16

(6)用段基值及偏移地址来指明一内存单元地址称为(物理地址)。

习题三8086指令系统

主要内容:8086指令系统。主要介绍8086的基本数据类型、寻址方式和指令系统,重点掌握8086指令系统的寻址方式、堆栈操作指令、算术运算指令及其对标志位的影响,串操作指令,控制传送指令。1.单选题:

(1)执行下面指令序列后,结果是(A)。

MOV AL,82H

CBW

A、(AX)=0FF82H

B、(AX)=8082H

C、(AX)=0082H

D、(AX)=0F82H

(2)与MOV BX,OFFSET VAR指令完全等效的指令是(D )。

A、MOV BX,VAR

B、LDS BX,VAR

C、LES BX,VAR

D、LEA BX,VAR

(3)编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D )。

A、CMP

B、SUB

C、AND

D、MOV

(4)下面指令执行后,改变AL寄存器内容的指令是(D )。

A、TEST AL,02H

B、OR AL,AL

C、CMP AL,B

D、AND AL,BL

(5)设DH=10H,执行NEG DH指令后,正确的结果是(D )。

A、(DH)=10H,CF=1

B、(DH)=0F0H,CF=0

C、(DH)=10H,CF=0

D、(DH=0F0H,CF=1

(6)设DS=8225H,DI=3942H,指令NEG BYTE PTR[DI]操作数的物理地址是(A )。

A、85B92H

B、86192H

C、BB690H

D、12169H

(7)下列指令中,执行速度最快的是(C )。

A、MOV AX,100

B、MOV AX,[BX]

C、MOV AX,BX

D、MOV AX,[BX+BP]

2.8086 CPU执行如下指令后的结果,以及标志SF、AF、CF、OF的值。

(1)MOV AL,0110 0100B

SUB AL,58H ;(AL)=0CH,AF=1

DAS ;(AL)=06H, AF=1

ADD AL,89H ;(AL)=8FH, AF=0

DAA ;(AL)=95H,AF=1,SF=1

结果: (AL)=95H, SF=1, AF=1, CF=0, OF=0

(2)MOV AL,05H

MOV BL,09H

MUL BL ;(AX)=002DH, SF、AF、CF、OF=0

AAA ; (AX)=0103H

;AAM ; ; (AX)=0405H

结果: (AX)=0103H, CF=1 , SF=0、AF=1、OF=0

3.分析执行下列指令序列后的结果:

MOV AL,10110101B

AND AL,00011111B ;(AL)=0001 0101B

OR AL,11000000B ;(AL)=1101 0101B

XOR AL,00001111B ;(AL)=1101 1010B

NOT AL ;(AL)=0010 0101B

4.假设(AL)=10101111B,CF=0,CL=2,写出分别执行下列指令后的结果以及标志位CF、ZF、OF 的值。

(1)SHL AL,CL ;(AL)=1011 1100B, CF=0、ZF=0、OF=1

(2)SHR AL,CL ;(AL)=0010 1011B, CF=1、ZF=0、OF=0

(3)SAR AL,CL ;(AL)=1110 1011B, CF=1、ZF=0、OF=0

(4)ROL AL,CL ;(AL)=1011 1110B, CF=0、ZF=0、OF=1

(5)RCR AL,CL ;(AL)=1011 1101B, CF=0、ZF=0、OF=1

5.设(IP)= 3D8FH,(CS)=4050H,(SP)=0F17CH,当执行CALL 2000:0094H后,试求出IP、CS、SP的内容,以及栈顶4个单元的内容。

【答】(CS)=2000H,(IP)=0094H, 栈顶F178H~F17BH连续4个单元的内容:94, 3D,50,40。

6.设(DS)= 2000H,(BX)=1256H,(SI)=528FH,TABLE的偏移量=20A1H,(232F7H)=3280H,(264E5H)=2450H,执行下述指令后IP的内容?

(1)JMP BX ;(IP)=1256H

(2)JMP TABLE[BX]; (IP)=3280H

(3)JMP [BX][SI] ;(IP)=2450H

7.设当前的SP=1000H,执行PUSHF指令后,SP=(0FFEH),若改为执行INT 20H指令后,则SP=(0FFCH)。

8.设当前(SS)=2010H,(SP)=FE00H,(BX)=3457H,计算当前栈顶的物理地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?

【答】当前栈顶指针(SP)=2FF00H,物理地址=20100H+FE00H=2FF00H

当执行PUSH BX 指令后,栈顶指针(SP)=FE00-2=FDFEH,栈顶物理地址=2FDFEH,栈顶2个字节的内容分别3457H。

9.HLT指令用在什么场合?如CPU 在执行HLT 指令时遇到硬件中断并返回后,以下应执行哪条指令?

【答】HLT用在使CPU处于暂停状态而等待硬件中断的场合。

在执行HLT指令遇到硬件中断并返回后将执行HLT后面的一条指令。

10.为什么用増量指令或减量指令设计程序时,在这类指令后面不用进位标志作为判断依据?【答】増量指令或减量指令不影响进位标志CF。

11.中断指令执行时,堆栈的内容有什么变化?中断处理子程序的人口地址是怎样得到的?

【答】中断指令执行时,堆栈内容变化如下:标志寄存器被推入堆栈,且SP减2,然后CPU将主程序的下一条指令地址即断点地址推入堆栈,即段值CS推入堆栈且SP减2,偏移量推入堆栈,且SP减2。中断处理子程序的入口地址即中断向量,对应的中断类型号的4倍即为中断向量地址,在该地址处的4个字节内容,高地址单元两个字节为中断入口地址的段地址,低地址单元两个字节为中断入口地址的偏移地址。

12.中断返回指令IRET和普通子程序返回指令RET在执行时,具体操作内容什么不同?

【答】IRET从堆栈中依次弹出断点处指令指针IP、代码段CS内容与标志寄存器的值,而RET从堆栈中依次弹出断点处指令指针IP值、代码段CS内容,不需要弹出标志寄存器的值。

13.以下是格雷码的编码表:

0——0000,1——0001,2——0011,3——0010,4——0110

5——0111,6——0101,7——0100,8——1100,9——1101

请用换码指令和其它指令设计一个程序段,实现格雷码往ASCII码的转换。

【答】

TABLE SEGMENT

TAB_DA DB 30H,31H,33H,32H,37H,36H,34H,35H,0,0

DB 0,0,38H,39H

GRA DB 05H

ASCII_DA DB ?

TABLE ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:TABLE

START: MOV AX,TABLE

MOV DS,AX

MOV BX,OFFSET TAB_DA

MOV AL,GRA

XLAT

MOV ASCII_DA,AL

CODE ENDS

END S TART

14.将存放在0A00H单元和0A02H单元的两个无符号数字节相乘,结果存放在地址为0A04H开始的单元中。

【答】参考程序:假设数据为字节

MOV AL,[0A00H]

MOV BL,[0A02H]

MUL BL

MOV [0A04],AX

15.编程计算((X+Y)*10)+Z)/X,X、Y、Z都是16位无符号数,结果存在RESULT开始的单元。【答】参考程序:

MOV AX,X

ADD AX,Y

MOV BX,0AH

MUL BX ;乘积在DX,AX中

ADD AX,Z

ADC DX,0H ; 考虑进位

MOV BX,X

DIV BX ;

MOV RESULT, AX

MOV RESULT+2, DX

HLT

16.分别用一条语句实现下述指明的功能:

(1)AX的内容加1,要求不影响CF。(INC AX)

(2)BX的内容加1,要求影响所有标志位。(ADD BX, 1)

(3)栈顶内容弹出送DI。(POP DI )

(4)双字变量AYD存放的地址指针送ES和SI。(LES SI ,AYD )

(5)将AX中数,最高位保持不变,其余全部右移4位。( SAR AX, CL ;CL预置4)

(6)将0400H单元中的数,低4位置零,高4位保持不变。( AND BYTE PTR [0400H], 11110000B) (7)将BX中的数,对高位字节求反,低位字节保持不变。(XOR BX ,0FF00H)

(8)若操作结果为零转向标号GOON。(JZ GOON )

17.检测BX中第13位(D13),为0时,把AL置0,为1时,把AL置1。

【答】参考程序:

TEST BX,0010 0000 0000 0000B

JZ ZERO

MOV AL,01H

HLT

ZERO: MOV AL,0

HLT

18.利用字串操作指令,将1000H~10FFH单元全部清零。

【答】参考程序:

CLD

MOV DI,1000H

MOV CX,100H

MOV AL,0

REP STOSB

19.用串操作指令实现,先将100H个字节数从2170H单元处搬到1000H单元处,然后从中检索等于AL中字符的单元,并将此单元换成空格字符。

【答】参考程序:假设数据段与附加段的段寄存器值已经设置为相同的数值。

CLD

MOV CX,0100H

MOV SI, 2170H

MOV DI,1000H

REP MOVSB

MOV CX,0100H

MOV DI,1000H

MOV AL, ‘A’;假设要检索的字符为A

REPNZ SCASB

JZ FOUND

JMP NOFOUND

FOUND: DEC DI

MOV BYTE PTR [DI],‘’

NOFOUND: HLT

20.用循环控制指令实现,从1000H开始,存放有200个字节,要查出字符#(ASCII码为23H),把存放第一个#的单元地址送入BX中。

【答】参考程序:

MOV DI,1000H

MOV CX,200

MOV AL,‘#’

DON: CMP AL, [DI]

JE FOUND

INC DI

LOOP DON

JMP NOFOUND

FOUND: MOV BX,DI

NOFOUND: HLT

自测题:

1下列指令中,有语法错误的指令是()。

A、MOV BX,[BX+2]

B、MOV 2,BX

C、MOV [1000H],BX

D、MOV BX,2

2下列指令中,隐含使用AL寄存器的指令有()条。

MUL、DIV、HLT、XLAT、CBW、IN、PUSHF

A、2条

B、3条

C、4条

D、5条

3输入输出指令中,数据寄存器由()寄存器指出。

A、AL/AX

B、BX

C、CX

D、DX

48088可直接寻址的空间最大为()。

A、640KB

B、1MB

C、512MB

D、2MB

5. 内存单元1999H:0010H的段内偏移地址为(2),物理地址为(3);若(BP)=0010H,用指令MOV AL,[BP]取出该单元的内容,段寄存器(4)的值应为1999H。

习题四汇编语言程序设计

主要内容:汇编语言程序设计。主要介绍汇编语言程序的设计方法与编程原理,重点掌握算术运算程序、字符串处理程序、码制转换程序、子程序设计程序、常用DOS和BIOS功能调用程序、汇编语言常用伪指令。

4.1 分析执行下列指令序列后的结果:

1)MOV AX,1234H

MOV BX,00FFH

AND AX,BX

【答】(AX)=0034H

2)MOV AL,01010101B

AND AL,00011111B ;(AL)=00010101B

OR AL,11000000B ;(AL)=11010101B

XOR AL,00001111B ;(AL)=11011010B

NOT AL

【答】(AL)=00100101B

3)MOV DL,05H

MOV AX,0A00H

MOV DS,AX

MOV SI,0H

MOV CX,0FH

AGAIN: INC SI

CMP [SI],DL

LOOPNE AGAIN

HLT

本程序实现了什么功能?

【答】在以0A001H开始的15个单元中查找05H。

4)MOV AX,DSEGADDR

MOV DS, AX

MOV ES,AX

MOV SI, OFFSET B1ADDR

MOV DI,OFFSET B2ADDR

MOV CX,N

CLD

REP MOVSB

HLT

本程序实现了什么功能?

【答】将B1ADDR中N个字节数据传送到B2ADDR开始的15个存储单元。

5)MOV AX, 0H

MOV DS,AX

MOV ES, AX

MOV AL,05H

MOV DI,0A000H

MOV CX,0FH

CLD

AGAIN: SCASB

LOOPNE AGAIN

HLT

本程序实现了什么功能?

【答】从地址0A000H开始的15个单元中查找字节型数据05H,用条件循环LOOPNZ,控制数据05H 的查找。

4.2 阅读程序:

1). CLD

LEA DI,[0100H]

MOV CX, 0080H

XOR AX, AX

REP STOSW

本程序实现了什么功能?

【答】将DS中起始地址为0100H的128个字节单元清零。

2). MOV AL, 08H

SAL AL,01H ;(AL)=00010000H

MOV BL, AL

MOV CL ,02H

SAL AL,CL ;(AL)=01000000H

ADD AL,BL ;(AL)=01010000H

本程序实现了什么功能?

【答】将AL中的内容乘以10。

4.3 试分析下列程序完成什么功能?

MOV DX,3F08H

MOV AH,0A2H

MOV CL,4

SHL DX,CL ;(DX)=F080H

MOV BL,AH

SHL BL,CL ;(BL)=20H

SHR BL,CL ;(BL)=02H

OR DL,BL ;(DL)=82H

【答】将DX中的低4位数据8H分离出来,将AH中的低4位数据2H分离出来,合并为82H存放在DL。

4.4 已知程序段如下:

MOV AX,1234H

MOV CL,4

ROL AX,CL

DEC AX

MOV CX,4

MUL CX

试问:(1)每条指令执行后,AX寄存器的内容是什么?(2)每条指令执行后,CF,SF及ZF的值分别是什么?(3)程序运行结束时,AX及DX寄存器的值为多少?

【答】MOV AX,1234H ; (AX)=1234H, CF=SF=ZF=0

MOV CL,4

ROL AX,CL ; (AX)=2341H ,CF=1,SF=ZF=0

DEC AX ; (AX)=2340H, CF=1,SF=ZF=0

MOV CX,4 ;

MUL CX ;(AX)= 8000H ,CF=ZF=0,SF=1,DX=0

4.5 试分析下列程序段:

ADD AX,BX

JNC L2

SUB AX,BX

JNC L3

JMP SHORTL5

如果AX、BX的内容给定如下:

AX BX

(1)14C6H 80DCH (程序转向L2)

(2)B568H 54B7H (程序转向SHORTL5 )

问该程序在上述情况下执行后,程序转向何处?

【答】(1) 程序转向L2。

(2) 程序转向SHORTL5。

4.6 以下为某个数据段,试问各个变量分别占多少字节,该数据段共占多少字节?

DATA SEGMENT

VAR1 DW 9 ;2字节

VAR2 DD 10 DUP(?),2 ;44字节

VAR3 DB 2 DUP(?,10 DUP(?)) ;22字节

VAR4 DB ‘HOW ARE YOU' ;11字节

DATA ENDS

【答】该数据段共占79字节。

4.7 下列语句在存储器中分别为变量分配多少字节空间?并画出存储空间的分配图。

VAR1 DB 10,2 ;2字节

VAR2 DW 5DUP(?),0 ;12字节

VAR3 DB ‘HOW ARE YOU?',‘$' ;13字节

;2字节

4.8 编写一段程序,比较两个5字节的字符串OLDS和NEWS,若相同,在RESULT置0,否则置0FFH。【答】参考程序:

DATA SEGMENT

OLDS DB 1,2,3,4,5

NEWS DB 1,2,3,4,'A'

N = $-NEWS

RESULT DB 0

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX ;初始化

MOV SI,OFFSET OLDS

MOV DI,OFFSET NEWS

MOV CX,N

DON: MOV AL, [SI]

CMP AL, [DI]

JNZ NOEQU ;串不相等转

INC SI

INC DI

LOOP DON

MOV AL,0

JMP OUTPUT

NOEQU: MOV AL,0FFH

OUTPUT: MOV RESULT,AL

STOP: JMP STOP ;程序陷阱

CODE ENDS

END START

4.9 编程求和Y=A1 + A2 + …. + A100 。其中Ai为字节变量。

【答】参考程序:

DATA SEGMENT

TABLE DW 1111H,2222H,3333H,2222H

COUNT EQU $-TABLE

YAL DW ?

YAH DW ?

DATA ENDS

CODE SEGMENT

MIAN PROC FAR

PUSH DS

MOV AX, 0

PUSH AX

MOV AX, DATA

MOV DS, AX

MOV DX,0

XOR AX, AX ;清AX

MOV BX, OFFSET TABLE

MOV CX, 4

LP: ADD AX, [BX] ;求和

ADC DX,0

INC BX

INC BX ;指向下一个数

LOOP LP ;未加完,继续

MOV YAL,AX ;存和

MOV YAH,DX

MAIN ENDP

CODE ENDS

END START

4.10 内存中以FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制(BCD码)数,低位在前。编程序求这两个数的组合的十进制和,并存到以THIRD开始的单元。

【答】参考程序:1325+9839=?

DATA SEGMENT

FIRST DB 05H,02H,03H,01H ;

SECOND DB 09H,03H, 08H,09H;

THIRD DB 20 DUP (?)

DATA ENDS

STACK SEGMENT

ST1 DB 100 DUP (‘SA’)

TOP1 EQU $ - ST1

STACK ENDS

CODE SEGMENT

ASUMME CS:CODE,DS:DATA,SS:STACK

MAIN PROC FAR

START: MOV AX, DAT ;初始化数据段

MOV DS, AX

MOV AX, STACK ;初始化堆栈段

MOV SS, AX

MOV AX, TOP1

MOV SP, AX

MOV CX, 4 ;计算4次

MOV BX, OFFSET DAT1 ;取数据地址

MOV SI , OFFSET DAT2 ;取数据地址

MOV DI , OFFSET SUM ;取结果地址

MOV AH, 00H ;将暂存标志的AH清0

DON1: MOV AL, [BX] ;取第一个数

SAHF ;将AH中的标志送标志寄存器

ADC AL, [DI] ;与第二个数带进位加

AAA ;十进制校正

LAHF ;将标志寄存器内容送AH

OR AL, 30H ;计算值拼成ASCII码

MOV [DI], AL ;存结果的ASCII码

INC BX ;指向第一个数的下一位

INC SI ;指向第二个数的下一位

INC DI ;指向结果单元的下一位

LOOP DON1 ;未计算完,继续

AND AH, 01H ;将最高位的进位标志送AH

OR AH, 30H ;最高位的进位位拼成ASCII码

MOV [DI], AH ;存结果的最高位

MOV AH, 02H ;调用DOS的02H功能显示

MOV CX, 05H ;显示数据的位数

DON2: MOV DL,[DI] ;显示数据送DL

INT 21H ;显示

DEC DI ;显示数据所在存储单元加一

LOOP DON2 ;未显示完,继续

MOV AH, 4CH ;返回DOS

INT 21H

RET

MAIN ENDP

CODE ENDS

END START

4.11 试编程序,统计由40000H开始的16K个单元中所存放的字符“A“的个数,并将结果存放在DX 中。

【答】参考程序

DATA SEGMENT

BUF DB 'DFASFAAAFDFAAFFFA'

COUNT EQU $-BUF

DATA ENDS

STACK SEGMENT

BUFF DW 100 DUP (?)

M EQU $- STA

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

BEGIN: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV AX,M

MOV SP,AX

MOV CX,COUNT

MOV DX,0

LEA SI,BUF

MOV AL,'A'

CALL FindChar

MOV AH,4CH

INT 21H ;返回DOS

FindChar PROC NEAR

PUSH DX

NEXT : CMP [SI],AL

JNZ OTHER

INC DX

OTHER: INC SI

LOOP NEXT

POP DX

RET

FindChar ENDP

CODE ENDS

END BEGIN

4.12 统计数据块中正数与负数的个数,并将正数与负数分别送到两个缓冲区。【答】解法一:采用串操作指令,要程序片段:

BLOCK DB -1,-3,5,6,-2,0,20,10

PLUS_D DB 8 DUP(?) ;正数缓冲区

MINUS_D DB 8 DUP(?) ;负数缓冲区

PLUS DB 0

MINUS DB 0

MOV SI,OFFSET BLOCK

MOV DI,OFFSET PLUS_D

MOV BX,OFFSET MINUS_D

MOV CX, 8 ;数据个数送CX GOON: LODSB ;AL←[SI]

TEST AX, 80H

JNZ JMIUS ;为负数,转

INC PLUS ;正数个数加一

STOSB ;[DI] ←AL,传正数

JMP AGAIN

JMIUS: INC MINUS ;负数个数加一

XCHG BX, DI

STOSB ;送负数到缓冲区

XCHG BX, DI

AGAIN: DEC CX

JNZ GOON

解法二:用比较指令CMP、转移指令JA/JNA/JB/JNB、循环指令LOOP等BLOCK DB -1,-3,5,6,-2,0,20,10

N EQU $-BLOCK

PLUS_D DB 8 DUP(?) ;正数缓冲区

PLUS DB 0

MINUS_D DB 8 DUP(?) ;负数缓冲区

MINUS DB 0

……

MOV SI,OFFSET BLOCK

MOV DI,OFFSET PLUS_D

MOV BX,OFFSET MINUS_D

MOV CX, N ;数据个数送CX

GOON: MOV AL,[SI]

TEST AL, 80H

JNZ JMIUS ;为负数,转

INC PLUS ;正数个数加一

MOV [DI],AL ;传正数

INC DI

JMP AGAIN

JMIUS: INC MINUS ;负数个数加一

MOV [BX],AL

INC BX

AGAIN: INC SI

DEC CX

JNZ GOON

4.13 编写一个子程序将AX中的十六进制数,转换成ASCII码, 存于ADR开始的四个单元中。

提示:1)、AX中的数从左到右,转换成ASCII码,用循环左移ROL和AND指令,把提出的一个十六进制数置BL中;

2)、0 ~ 9 的ASCII码:30 ~ 39H,A ~ F 的ASCII码:41H ~ 46H。

(先把每个数加30H,判断是否为数字0 ~ 9?若是A ~ F,再加07H,得字母的ASCII码。)【答】参考程序:

DATA SEGMENT

ADR DB 5 DUP(?)

DATA ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE,DS:DATA

START: MOV AX,7EC3H ;假设ax中存放7ec3h

LEA SI,ADR

MOV DL,4

AGAIN:

MOV BX,AX

AND BX,000FH

ADD BL,30H

CMP BL,'9'

JG ADUST

JMP STORE

ADUST: ADD BL ,07H

STORE: MOV [SI],BL

INC SI

MOV CL,4

ROL AX,CL

DEC DL

JNZ AGAIN

MAIN ENDP

CODE ENDS

END START

4.14 编写一个子程序将AX中的2进制数,转换成10进制ASCII码, 存于ADR开始的五个单元中。【答】算法分析:

(1)一个16位2进制数,其值最大为65535。采用除10取余数方法,即可得到各个位。

A)十进制数a5a4a3a2a1,除以10,余数a1为个位;商a5a4a3a2

B)a5a4a3a2再除以10,余数a2为十位;

C)以此类推,得到百位、千位、万位。

(2)再将其加上30H则得到ASCII码,以便输出显示。

(3)若数据为负数,用0减去该数,可得绝对值,再将符号位记录下来即可。

参考程序:

DATA SEGMENT

BIN DW -1988 ;带符号二进制数

ADR DB 6 DUP(0),'$' ;十进制数以ASCII码存储

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

TRAN PROC FAR

MOV AX,DATA

MOV DS,AX

MOV AX,BIN

LEA DI,ADR

CALL BINASCII ;十六位二进制数转换为十进制ascii码

MOV AH,4CH

INT 21H ;返回DOS

TRAN ENDP

;子程序BINASCII功能:将16位二进制数转换为ASCII码,存于ADR开始的连续6个单元,并显示;入口参数:AX=待转换的数, 预定义一个缓存区ADR,7个字节,最末字节为‘$’字符。

;出口参数:DI=转换好的ASCII码首地址,显示该十进制数据

BINASCII PROC

PUSH BX

PUSH CX

PUSH DX

TEST AX,8000H ;判断数据的符号

JNS PLUS

MINUS: MOV BYTE PTR[DI],'-' ;将符号存储

NEG AX ;如是负数,取相反数去掉符号位

JMP GO

PLUS: MOV BYTE PTR[DI],'+' ;将符号码存储

GO: ADD DI,5 ;DI指向个位

MOV CX,5

MOV BX,10

LP: MOV DX,0

DIV BX ;算法为a/10 ,余数为一个低位十进制数

ADD DL,30H ;转换为ASCII码

MOV BYTE PTR[DI],DL ;从个位开始存储

DEC DI

LOOP LP

MOV DX,DI

MOV AH,09H

INT 21H ;显示

POP DX

POP CX

POP BX

RET

BINASCII ENDP

CODE ENDS

END TRAN

4.15 编写一个子程序,对AL中的数据进行偶校验,并将经过校验的结果放回AL中。

【答】参考程序:

JIAOYAN PROC FAR

MOV AL,1001110B

OR AL, AL

JNP NEXT

MOV AL,0

JMP DONE

NEXT: MOV AL,1

DONE: MOV AH,04CH

INT 21H

JIAOYAN ENDP

4.16 从2000H单元开始的区域,存放100个字节的字符串,其中有几个$符号(ASCII 码为24),找出第一个$符号,送AL中,地址送BX。

【答】参考程序:

SEARCH PROC FAR

MOV DI,2000H

MOV CX,100

MOV AL,24H

CLD

REPNZ SCASB

JNZ STOP

DEC DI

MOV BX,DI

MOV AL,[DI]

STOP: RET

SEARCH E NDP

4.17 用串操作指令实现:先将100H个数从2170H单元处搬到1000H单元处,然后从中检索等于AL中字符的单元,并将此单元换成空格字符。

【答】参考程序:

MOV AL,24H

MOV SI,2170H

MOV DI,1000H

MOV CX,100H

CLD

DO: REP MOVSB

MOV DI,1000H

MOV CX,100H

CLD

REPNZ SCASB

DEC DI

MOV [DI],20H

INC DI

CMP CX,0

JNZ DO

HLT

4.18 从60H个元素中寻找一个最大的值,并放到AL中,假设这60个元素放在BUF开始的单元中。【答】参考程序:

DATA SEGMENT

BUF DB 0,1,2,3,4,5,6,7,8,9 ;

DATA ENDS

STACK SEGMENT

STA DB 20 DUP (?)

TOP EQU $- STA

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV AX,TOP

MOV SP,AX

MOV CX,10

MOV AL,0

LEA BX,BUF

AGAIN: CMP AL,[BX]

JGE NEXT ;大于等于转移

MOV AL,[BX]

NEXT : INC BX

LOOP AGAIN

MOV AH,4CH

INT 21H

CODE ENDS

END START

4.19 排序程序设计: 把表中元素按值的大小升序排列。要求显示排序前和排序后的数据。【答】参考程序:

DATA SEGMENT

TAB D B '8095554'

N=$-TAB

OK DB 0DH,0AH,'OK!$'

DATA ENDS

STACK SEGMENT

STA DB 20 DUP(?)

TOP EQU $-STA

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

STAR: MOV AX,DATA

MOV DS,AX ;初始化数据段

MOV AX,STACK

MOV SS,AX

MOV AX,TOP

MOV SP,AX

CALL ARRAY

DO: MOV AH,4CH

INT 21H ;返回DOS

ARRAY PROC NEAR

PUSH AX

PUSH BX

PUSH CX

PUSH DX

MOV DL,N-1 ;置外循环次数

MOV DH,1 ;设有交换标志

XOR BX, BX

UPPER: OR DH,DH ;

JZ DISP ;无交换,已排好序,退出

MOV DH,0 ;无交换

MOV CX,N-1

SUB CX,BX ;CX=CX-I内循环次数

MOV SI,0 ;指向表首

INNER: MOV AL,TAB[SI] ;字符送AL

INC SI ;指向下个字符

CMP AL,TAB[SI] ;比较表中相邻字符

JBE DON ;小于

XCHG AL,TAB[SI] ;否则交换,大字符下

MOV TAB[SI-1],AL ;小字符上浮

MOV DH,1 ;有交换,DH=1

DON: LOOP INNER ;内循环结束?CX-1

INC BX ;一次内循环完成,加一

DEC DL ;外循环次数减一

CMP DL,0

JNZ UPPER ;外循环次数非零,继续

DISP: MOV DX,OFFSET TAB

MOV AH,09H

INT 21H ;显示排好序的字符

POP DX

POP CX

POP BX

POP AX

RET

ARRAY ENDP

CODE ENDS

END S TAR

4.20 编写一段程序,接收从键盘输入的10个数,输入回车符表示结束,然后将这些数加密后存于BUFF 缓冲区中。加密表为:输入数字:0,1,2,3,4,5,6,7,8,9;密码数字:7,5,9,1,3,6,8,0,2,4。

【答】参考程序:

DATA SEGMENT

TABLE DB 7,5,9,1,3,6,8,0,2,4;密码表

BUFF DB 10 DUP(?) ,'$'存放转换数字的缓冲区

DATA ENDS

STACK SEGMENT

STA DB 20 DUP(?)

TOP EQU LENGTH STA

STACK ENDS

CODE SEGMENT

MOV AX,STACK

MOV SS,AX

MOV DI , OFFSET BUFF

LEA BX , TABLE

MOV CX,0DH

INPUT: MOV AH , 1 ;从键盘输入

INT 21H

CMP AL,0DH ;0DH为回车符

JZ DONE

SUB AL,30H

XLAT

ADD AL,30H

MOV [DI] , AL

INC DI

LOOP INPUT

DONE: MOV DX , OFFSET BUFF

MOV AH , 09H

INT 21H

MOV AH,4CH

INT 21H

CODE ENDS

4.21 编程序从键盘接收一个4位16进制数,转换为10进制数后,送显示。

【答】算法:(1)先将输入的十六进制数的ASCII码,处理成16进制数保存到BX中,BX中的数范围在+32767~-32768之间;(2)先检查BX中的符号位,以决定输出“+”还是“-”;若是负数,应先求补,得到原码后即可与正数作统一处理。转换方法可以调用题4.14中的BINASCII子程序。

DATA SEGMENT

ADR DB 6 DUP(0),'$' ;十进制数以ASCII码存储

DATA ENDS

STACK SEGMENT

STA DB 20 DUP(0)

TOP EQU $- STA

STACK ENDS

CODE SEGMENT

ASSUME CS :CODE,DS:DATA,SS:STACK

main proc far

START: MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

微机原理考试课后练习题筛选

第一章 一、选择题 7.(D)8.(B)9.(D)10.(C)11.(A) 二、填空题 l.(运算器)2.(冯·诺依曼、输出器、存储器、存储器)9.(尾数、指数) 第二章 一、选择题 1.(C)4.(B)5.(D)7.(A)8.(D)18.(B) 二、填空题 4.(TF、DF、IF) 5. (9E100H)10.(0、0、 1、1)15.(FFFFH、0000H、0000H、0000H) 三、问答题 2.完成下列补码运算,并根据结果设置标志SF、ZF、CF和OF,指出运算结果是否溢出? (1)00101101B+10011100B (2) 01011101B-10111010B (3)876AH-0F32BH (4)10000000B十 11111111B (1)00101101B +10011100B 11001001B=C9H SF=1 ZF=0 CF=0 OF=0 (2) -10111010B=01000110B 01011101B-10111010B=01011101B +01000110B 10100011B SF=1 ZF=0 CF=0 OF=1 (3)876AH-0F32BH=876AH +0CD5H 943FH SF=1 ZF=0 CF=0 OF=0 (4) 10000000B +11111111B 101111111B=7FH SF=0 ZF=0 CF=1 OF=1 习题3 一、选择题 1.D 4.B 5.A 14.D 17.C 二、填空题 7. 3400H;5000H 8. 9AH;6CH;0;1;1;1;0 17.低8位;高8位;0FFA4H 三,问答题 1、(1)源操作数是基址寻址,目的操作数是寄存器寻址(2)逻辑地址是0705H,物理地址是10705H (3)(AX)=1234H (BX)=0700H 10、(1)MOV SI,2500H MOV DI,1400H MOV CX,64H CLD REP MOVSB (2) MOV SI,2500H MOV DI,1400H MOV CX,64H CLD REPE CMPSB JNZ L1 XOR BX,BX HLT L1:DEC SI MOV BX,SI MOV AL,[SI] HLT 习题4 一、选择题 1.B 4.C 二、填空题 1..ASM;.OBJ;.EXE 6.( AX)= 1 (BX)= 2 (CX)= 20 (DX)= 40

(完整版)微机原理课后习题参考答案

第一章 2、完成下列数制之间的转换。 (1)01011100B=92D (3)135D=10000111B (5)10110010B=262Q=B2H 3、组合型BCD码和非组合型BCD码有什么区别?写出十进制数254的组合型BCD数和非组合型数。 答:组合型BCD码用高四位和低四位分别对应十进制数的个位和十位,其表示范围是0~99;非组合型BCD码用一个字节的低四位表示十进制数,高四位则任意取值,表示范围为0~9。 组合型:254=(001001010100)BCD 非组合型:254=(00000010 00000101 00000100)BCD 7、计算机为什么采用补码形式存储数据?当计算机的字长n=16,补码的数据表示范围是多少? 答:在补码运算过程中,符号位参加运算,简化了加减法规则,且能使减法运算转化为加法运算,可以简化机器的运算器电路。+32767~ -32768。 9、设计算机字长n=8,求下列各式的[X+Y]补和[X-Y]补,并验证计算结果是否正确。 (1)X=18,Y=89 [X+Y]补=00010010+01011001=01101011B=107D 正确 [X-Y]补=10111001B=00010010+10100111=(-71D)补正确 (2)X=-23,Y=-11 [X+Y]补=11101001+11110101=11011110B=(-34D)补正确[X-Y]补=11101001+00001011=11110100B=(-12D)补正确 (3)X=18,Y=-15 [X+Y]补=00010010+11110001=00000011B=(3D)补正确 [X-Y]补=00010010+00001111=00100001B=(33D)补正确 (4)X=-18,Y=120 [X+Y]补=11101110+01111000=01100110B=(102D)补正确[X-Y]补=11101110+10001000=01110110B=(123D)补由于X-Y=-138 超出了机器数范围,因此出错了。 13、微型计算机的主要性能指标有哪些? 答:CPU字长、存储器容量、运算速度、CPU内核和IO工作电压、制造工艺、扩展能力、软件配置。 第二章 2、8086标志寄存器包含哪些标志位?试说明各标志位的作用。 答:进位标志:CF;奇偶校验:PF;辅助进位:AF;零标志:ZF;符号标志:SF;溢出标志:OF。 5、逻辑地址与物理地址有什么区别?如何将逻辑地址转换为物理地址? 答:物理地址是访问存储器的实际地址,一个存储单元对应唯一的一个物理地址。逻辑地址是对应逻辑段内的一种地址表示形式,它由段基址和段内偏移地址两部分组成,通常表示为段基址:偏移地址。 物理地址=段基址*10H+偏移地址。 6、写出下列逻辑地址的段基址、偏移地址和物理地址。 (1)2314H:0035H (2)1FD0H:000AH 答:(1)段基址:2314H;偏移地址:0035H;物理地址:23175H。 (2)段基址:1FD0H;偏移地址:000AH;物理地址:1FD0AH。 8、设(CS)=2025H,(IP)=0100H,则当前将要执行指令的物理地址是多少? 答:物理地址=(CS)*10H+(IP)=20350H 9、设一个16字的数据区,它的起始地址为70A0H:DDF6H(段基址:偏移地址),求这个数据区的首字单元和末字单元的物理地址。

微机原理课后练习题-答案

1、 2、B 3、十,非压缩的BCD码 4、 5、微型计算机、微型计算机系统 6、,, 二、 B D B 三、 1、微型计算机系统的基本组成。 答案:以微型计算机为主体,配上相应的系统软件、应用软件和外部设备之后,组成微型计算机系统。 2、简述冯.诺依曼型计算机基本组成。 答案:冯.诺依曼型计算机是由运算器,控制器,存储器,输入设备和输出设备组成的。其中,运算器是对信息进行加工和运算的部件;控制器是整个计算机的控制中心,所以数值计算和信息的输入,输出都有是在控制器的统一指挥下进行的;存储器是用来存放数据和程序的部件,它由许多存储单元组成,每一个存储单元可以存放一个字节;输入设备是把人们编写好的程序和数据送入到计算机内部;输出设备是把运算结果告知用户。 3、什么是微型计算机 答案:微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。 4、什么是溢出 答案:在两个有符号数进行家减运算时,如果运算结果超出了该符号数可表示的范围,就会发生溢出,使计算出错。

1、4、100ns 2、Ready ,Tw(等待) 3、ALE 4、INTR 5、85010H 6、存储器或I/O接口未准备好 7、非屏蔽中断 8、指令周期 9、4 二、 1、在内部结构上,微处理器主要有那些功能部件组成 答案:1) 算术逻辑部件2) 累加器和通用寄存器组 3) 程序计数器4) 时序和控制部件 2、微处理器一般应具有那些基本功能 答案:1.可以进行算术和逻辑运算2.可保存少量数据 3.能对指令进行译码并完成规定的操作4.能和存储器、外部设备交换数据 5.提供整个系统所需的定时和控制6.可以响应其他部件发来的中断请求 3、什么是总线周期 答案:CPU通过外部总线对存储器或I/O端口进行一次读/写操作的过程;一个基本的总线周期包含4个T状态,分别称为T1、T2、T3、T4。 三、×、×、×、×、×、√、√

微机原理课后习题答案

李伯成《微机原理》习题第一章 本章作业参考书目: ①薛钧义主编《微型计算机原理与应用——Intel 80X86系列》 机械工业出版社2002年2月第一版 ②陆一倩编《微型计算机原理及其应用(十六位微型机)》 哈尔滨工业大学出版社1994年8月第四版 ③王永山等编《微型计算机原理与应用》 西安电子科技大学出版社2000年9月 1.1将下列二进制数转换成十进制数: X=10010110B= 1*27+0*26+0*25+1*24+0*23+1*22+1*21 +0*21 =128D+0D+0D+16D+0D+0D+4D+2D=150D X=101101100B =1*28+0*27+1*26+1*25+0*24+1*23+1*22+0*21+0*20 =256D+0D+64D+32D+0D+16D+4D+0D=364D X=1101101B= 1*26+1*25+0*24+1*23+1*22+0*21 +1*20 =64D+32D+0D+8D+4D+0D+1D=109D 1.2 将下列二进制小数转换成十进制数: (1)X=0.00111B= 0*2-1+0*2-2+1*2-3+1*2-4+1*2-5= 0D+0D+0.125D+0.0625D+0.03125D=0.21875D (2) X=0.11011B= 1*2-1+1*2-2+0*2-3+1*2-4+1*2-5= 0.5D+0.25D+0D+0.0625D+0.03125D=0.84375D (3) X=0.101101B= 1*2-1+0*2-2+1*2-3+1*2-4+0*2-5+1*2-6= 0.5D+0D+0.125D+0.0625D+0D+0.015625D=0.703125D 1.3 将下列十进制整数转换成二进制数: (1)X=254D=11111110B (2)X=1039D=10000001111B (3)X=141D=10001101B 1.4 将下列十进制小数转换成二进制数: (1)X=0.75D=0.11B (2) X=0.102 D=0.0001101B (3) X=0.6667D=0.101010101B 1.5 将下列十进制数转换成二进制数 (1) 100.25D= 0110 0100.01H (2) 680.75D= 0010 1010 1000.11B 1.6 将下列二进制数转换成十进制数 (1) X=1001101.1011B =77.6875D

微机原理及接口技术课后习题及参考答案

第一章课后习题 1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。 ① 16.25 ② 35.75 ③ 123.875 ④ 97/128 1.2 把下列二进制数转换成十进制数。 ① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.1 1.3 把下列八进制数转换成十进制数和二进制数。 ① 756.07 ② 63.73 ③ 35.6 ④ 323.45 1.4 把下列十六进制数转换成十进制数。 ① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC 1.5 求下列带符号十进制数的8位补码。 ① +127 ② -1 ③ -0 ④ -128 1.6 求下列带符号十进制数的16位补码。 ① +355 ② -1 1.7 计算机分那几类?各有什么特点? 1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。 1.9 80X86微处理器有几代?各代的名称是什么? 1.10 你知道现在的微型机可以配备哪些外部设备? 1.11 微型机的运算速度与CPU的工作频率有关吗? 1.12 字长与计算机的什么性能有关? 习题一参考答案 1.1 ① 16.25D=10000.01B=20.2Q=10.4H ② 35.75D=100011.11B=43.6Q=23.CH ③ 123.875D=1111011.111B=173.7Q=7B.EH ④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H 1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D ③ 111.01B=7.25D ④ 1010.1B=10.5D 1.3 ① 756.07Q=111101110.000111B=494.109D ② 63.73Q=110011.111011B=51.922D ③ 35.6Q=11101.110B=29.75D ④ 323.45Q=11010011.100101B=211.578D 1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D ③ B7C.8D=2940.551D ④ 1ECH=492D 1.5 ① [+127] 补=01111111 ② [-1] 补 = 11111111 ③ [-0] 补=00000000 ④[-128] 补 =10000000 1.6 ① [+355] 补= 0000000101100011 ② [-1] 补 = 1111 1111 1111 1111 1.7 答:传统上分为三类:大型主机、小型机、微型机。大型主机一般为高性能的并行处理系统,存储容量大,事物处理能力强,可为众多用户提供服务。小型机具有一定的数据处理能力,提供一定用户规模的信息服务,作为部门的信息服务中心。微型机一般指在办公室或家庭的桌面或可移动的计算系统,体积小、价格低、具有工业化标准体系结构,兼容性好。 1.8 答:微处理器是微计算机系统的核心硬件部件,对系统的性能起决定性的影

微机原理课后作业答案第五版

第一章 6、[+42]原=00101010B=[+42]反=[+42]补 [-42]原 [-42]反 [-42]补 [+85]原=01010101B=[+85]反=[+85]补 [-85]原 [-85]反 [-85]补 10、微型计算机基本结构框图 微处理器通过一组总线(Bus)与存储器和I/O接口相连,根据指令的控制,选中并控制它们。微处理器的工作:控制它与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。 存储器用来存放数据和指令,其内容以二进制表示。每个单元可存8位(1字节)二进制信息。 输入——将原始数据和程序传送到计算机。 输出——将计算机处理好的数据以各种形式(数字、字母、文字、图形、图像和声音等)送到外部。 接口电路是主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。 总线:从CPU和各I/O接口芯片的内部各功能电路的连接,到计算机系统内部的各部件间的数据传送和通信,乃至计算机主板与适配器卡的连接,以及计算机与外部设备间的连接,都要通过总线(Bus)来实现。 13、8086有20根地址线A19~A0,最大可寻址220=1048576字节单元,即1MB;80386有32根地址线,可寻址232=4GB。8086有16根数据线,80386有32根数据线。

1、8086外部有16根数据总线,可并行传送16位数据; 具有20根地址总线,能直接寻址220=1MB的内存空间; 用低16位地址线访问I/O端口,可访问216=64K个I/O端口。 另外,8088只有8根数据总线 2、8086 CPU由两部分组成:总线接口单元(Bus Interface Unit,BIU) BIU负责CPU与内存和I/O端口间的数据交换: BIU先从指定内存单元中取出指令,送到指令队列中排队,等待执行。 执行指令时所需的操作数,也可由BIU从指定的内存单元或I/O端口中获取,再送到EU去执行。 执行完指令后,可通过BIU将数据传送到内存或I/O端口中。 指令执行单元(Execution Unit,EU) EU负责执行指令: 它先从BIU的指令队列中取出指令,送到EU控制器,经译码分析后执行指令。EU的算术逻辑单元(Arithmetic Logic Unit,ALU)完成各种运算。 6、见书P28-29。 7.(1) 1200:3500H=1200H×16+3500H=15500H (2) FF00:0458H=FF00H×16+0458H=FF458H (3) 3A60:0100H=3A80H×16+0100H=3A700H 8、(1)段起始地址 1200H×16=12000H,结束地址 1200H×16+FFFFH=21FFFH (2)段起始地址 3F05H×16=3F050H,结束地址 3F05H×16+FFFFH=4F04FH (3)段起始地址 0FFEH×16=0FFE0H,结束地址 0FFEH×16+FFFFH=1FFD0H 9、3456H×16+0210H=34770H 11、堆栈地址范围:2000:0000H~2000H(0300H-1),即20000H~202FFH。执行 两条PUSH指令后,SS:SP=2000:02FCH,再执行1条PUSH指令后,SS: SP=2000:02FAH。 12、(2000H)=3AH, (2001H)=28H, (2002H)=56H, (2003H)=4FH 从2000H单元取出一个字数据需要1次操作,数据是 283AH; 从2001H单元取出一个字数据需要2次操作,数据是 5628H; 17、CPU读写一次存储器或I/O端口的时间叫总线周期。1个总线周期需要4个系统时钟周期(T1~T4)。8086-2的时钟频率为8MHz,则一个T周期为125ns,一个总线周期为500ns,则CPU每秒最多可以执行200万条指令。

微机原理与接口技术课后习题答案

第1章微型计算机系统 〔习题〕简答题 (2)总线信号分成哪三组信号 (3)PC机主存采用DRAM组成还是SRAM组成 (5)ROM-BIOS是什么 (6)中断是什么 (9)处理器的“取指-译码-执行周期”是指什么 〔解答〕 ②总线信号分成三组,分别是数据总线、地址总线和控制总线。 ③ PC机主存采用DRAM组成。 ⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS 的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。 ⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍

返回被中断的指令继续执行的过程。 ⑨指令的处理过程。处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。 〔习题〕填空题 (2)Intel 8086支持___________容量主存空间,80486支持___________容量主存空间。 (3)二进制16位共有___________个编码组合,如果一位对应处理器一个地址信号,16位地址信号共能寻址___________容量主存空间。 (9)最初由公司采用Intel 8088处理器和()操作系统推出PC机。 ② 1MB,4GB ③ 216,64KB (9)IBM,DOS 〔习题〕说明微型计算机系统的硬件组成及各部分作用。 〔解答〕

CPU:CPU也称处理器,是微机的核心。它采用大规模集成电路芯片,芯片内集成了控制器、运算器和若干高速存储单元(即寄存器)。处理器及其支持电路构成了微机系统的控制中心,对系统的各个部件进行统一的协调和控制。 存储器:存储器是存放程序和数据的部件。 外部设备:外部设备是指可与微机进行交互的输入(Input)设备和输出(Output)设备,也称I/O设备。I/O设备通过I/O接口与主机连接。 总线:互连各个部件的共用通道,主要含数据总线、地址总线和控制总线信号。 〔习题〕区别如下概念:助记符、汇编语言、汇编语言程序和汇编程序。 〔解答〕 助记符:人们采用便于记忆、并能描述指令功能的符号来表示机器指令操作码,该符号称为指令助记符。 汇编语言:用助记符表示的指令以及使用它们编写程序的规则就形成汇编语言。 汇编语言程序:用汇编语言书写的程序就是汇编语言程序,或称汇编语言源程序。

微机原理课后作业答案(第五版)

6、[+42]原=00101010B=[+42]反=[+42]补 [-42]原=B [-42]反=B [-42]补=B [+85]原=01010101B=[+85]反=[+85]补 [-85]原=B [-85]反=B [-85]补=B 10、微型计算机基本结构框图 微处理器通过一组总线(Bus)与存储器和I/O接口相连,根据指令的控制,选中并控制它们。微处理器的工作:控制它与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。 存储器用来存放数据和指令,其内容以二进制表示。每个单元可存8位(1字节)二进制信息。 输入——将原始数据和程序传送到计算机。 输出——将计算机处理好的数据以各种形式(数字、字母、文字、图形、图像和声音等)送到外部。 接口电路是主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。 总线:从CPU和各I/O接口芯片的内部各功能电路的连接,到计算机系统内部的各部件间的数据传送和通信,乃至计算机主板与适配器卡的连接,以及计算机与外部设备间的连接,都要通过总线(Bus)来实现。 13、8086有20根地址线A19~A0,最大可寻址220=1048576字节单元,即1MB;80386有32根地址线,可寻址232=4GB。8086有16根数据线,80386有32根数据线。

1、8086外部有16根数据总线,可并行传送16位数据; 具有20根地址总线,能直接寻址220=1MB的内存空间; 用低16位地址线访问I/O端口,可访问216=64K个I/O端口。 另外,8088只有8根数据总线 2、8086 CPU由两部分组成:总线接口单元(Bus Interface Unit,BIU) BIU负责CPU与内存和I/O端口间的数据交换: BIU先从指定内存单元中取出指令,送到指令队列中排队,等待执行。 执行指令时所需的操作数,也可由BIU从指定的内存单元或I/O端口中获取,再送到EU去执行。 执行完指令后,可通过BIU将数据传送到内存或I/O端口中。 指令执行单元(Execution Unit,EU) EU负责执行指令: 它先从BIU的指令队列中取出指令,送到EU控制器,经译码分析后执行指令。EU的算术逻辑单元(Arithmetic Logic Unit,ALU)完成各种运算。 6、见书P28-29。 7.(1)1200:3500H=1200H×16+3500H=15500H (2)FF00:0458H=FF00H×16+0458H=FF458H (3)3A60:0100H=3A80H×16+0100H=3A700H 8、(1)段起始地址1200H×16=12000H,结束地址1200H×16+FFFFH=21FFFH (2)段起始地址3F05H×16=3F050H,结束地址3F05H×16+FFFFH=4F04FH (3)段起始地址0FFEH×16=0FFE0H,结束地址0FFEH×16+FFFFH=1FFD0H 9、3456H×16+0210H=34770H 11、堆栈地址范围:2000:0000H~2000H(0300H-1),即20000H~202FFH。执行两条PUSH指令后,SS:SP=2000:02FCH,再执行1条PUSH指令后,SS:SP=2000:02FAH。 12、(2000H)=3AH, (2001H)=28H, (2002H)=56H, (2003H)=4FH 从2000H单元取出一个字数据需要1次操作,数据是283AH; 从2001H单元取出一个字数据需要2次操作,数据是5628H; 17、CPU读写一次存储器或I/O端口的时间叫总线周期。1个总线周期需要4个系统时钟周期(T1~T4)。8086-2的时钟频率为8MHz,则一个T周期为125ns,一个总线周期为500ns,则CPU每秒最多可以执行200万条指令。

微机原理课后答案

1.2 课后练习题 一、填空题 1.将二进制数1011011.1转换为十六进制数为__5B.8H_____。 2.将十进制数199转换为二进制数为____ 11000111____B。 3.BCD码表示的数,加减时逢__10____进一,ASCII码用来表示数值时,是一种非压缩的BCD 码。 4.十进制数36.875转换成二进制是___100100.111____________。 5.以_微型计算机____为主体,配上系统软件和外设之后,就构成了__微型计算机系统____。6.十进制数98.45转换成二进制为__1100010.0111_B、八进制__142.3463________Q、十六进制__62.7333________H。(精确到小数点后4位) 二、选择题 1.堆栈的工作方式是__B_________。 A)先进先出B)后进先出C)随机读写D)只能读出不能写入 2.八位定点补码整数的范围是____D_________。 A)-128-+128 B)-127-+127 C)-127-+128 D)-128-+127 3.字长为16位的数可表示有符号数的范围是___B___。 A)-32767-+32768 B)-32768-+32767 C)0-65535 D)-32768-+32768 三、简答题 1.微型计算机系统的基本组成? 微型计算机,系统软件,应用软件,输入输出设备 2.简述冯.诺依曼型计算机基本思想? ●将计算过程描述为由许多条指令按一定顺序组成的程序,并放入存储器保存 ●指令按其在存储器中存放的顺序执行; ●由控制器控制整个程序和数据的存取以及程序的执行; ●以运算器为核心,所有的执行都经过运算器。 3.什么是微型计算机? 微型计算机由CPU、存储器、输入/输出接口电路和系统总线构成。 4.什么是溢出? 运算结果超出了计算机所能表示的范围。 2.2 一、填空题 1. 8086/8088的基本总线周期由___4____个时钟周期组成,若CPU主频为10MHz,则一个时钟周期的时间为___0.1μs_____。 2. 在8086CPU的时序中,为满足慢速外围芯片的需要,CPU采样___READY_________信号,若未准备好,插入___TW__________时钟周期。 3. 8086系统总线形成时,须要用_____ALE__________信号锁定地址信号。 4. 对于8086微处理器,可屏蔽中断请求输入信号加在_____INTR__________引脚。

微机原理(第三版)课后练习答案

1 思考与练习题 一、选择题 1.计算机硬件中最核心的部件是( )。C A.运算器 B.主存储器 C.CPU D.输入/输出设备 2.微机的性能主要取决于( )。 A (B——计算机数据处理能力的一个重要指标) A.CPU B.主存储器 C.硬盘 D.显示器 3.计算机中带符号数的表示通常采用( )。C A.原码 B.反码 C.补码 D.BCD码 4.采用补码表示的8位二进制数真值范围是( )。C A.-127~+127 B.-1 27~+128 C.-128~+127 D.-128~+128 5.大写字母“B”的ASCII码是( )。B A.41H B.42H C.61H D.62H 6.某数在计算机中用压缩BCD码表示为10010011,其真值为( )。C A.10010011B B.93H C.93 D.147 二、填空题 1.微处理器是指_CPU_;微型计算机以_CPU_为核心,配置_内存和I/O接口_构成;其特点是_(1)功能强 (2)可靠性高 (3)价格低 (4)适应性强 (5)体积小 (6)维护方便_。P8 P5 2.主存容量是指_RAM和ROM总和_;它是衡量微型计算机_计算机数据处理_能力的一个重要指标;构成主存的器件通常采用_DRAM和PROM半导体器件_。P5 P9 3.系统总线是_CPU与其他部件之间传送数据、地址和控制信息_的公共通道;根据传送内容的不同可分成_数据、地址、控制_3种总线。P9 4.计算机中的数据可分为_数值型和非数值型_两类,前者的作用是_表示数值大小,进行算术运算等处理操作_;后者的作用是_表示字符编码,在计算机中描述某种特定的信息_。P12 5.机器数是指_数及其符号在机器中加以表示的数值化_;机器数的表示应考虑_机器数的范围、机器数的符号、机器数中小数点位置_3个因素。P15 P16 6.ASCII码可以表示_128_种字符,其中起控制作用的称为_功能码_;供书写程序和描述命令使用的称为_信息码_。P18 P19 三、判断题 1.计算机中带符号数采用补码表示的目的是为了简化机器数的运算。( )√ 2.计算机中数据的表示范围不受计算机字长的限制。( )× 3.计算机地址总线的宽度决定了内存容量的大小。( )√ 4.计算机键盘输入的各类符号在计算机内部均表示为ASCII码。( )× (键盘与计算机通信采用ASCII码) 2 思考与练习题 一、选择题 1.在EU中起数据加工与处理作用的功能部件是( )。A A.ALU B.数据暂存器 C.数据寄存器 D.EU控制电路 2.以下不属于BIU中的功能部件是( )。 B A.地址加法器 B.地址寄存器 C.段寄存器 D.指令队列缓冲器

微机原理(王忠民版课后答案)

部分习题答案 第二章计算机中的数值和编码 1、将十进制数转换为二进制和十六进制 (1) =1000 =(2) =1101 = (3) ==(4) =10 1B=H 2、将下列二进制数转换为十进制和十六进制 (1) 111010 B=58 =3A H(2) 1011 = =H (3) 1B= = (4) B= = 3、完成下列二进制数的加减法运算 (1) +=(2) -= (3) 00111101+=(4) -= 4、完成下列十六进制数的加减法运算 (1) 745CH+56DFH=D14B H(2) -=H (3) +=1678 .FC H(4) 6F01H-EFD8H=7F29 H 5、计算下列表达式的值 (1) +.1011B+= (2) -.11H+= (3) ++-= 6、选取字长n为8位和16位两种情况,求下列十进制数的补码。 (1) X=-33的补码:1101 1111, 111 (2) Y=+33的补码:0010 0001, 0000 0000 0010 0001 (3) Z=-128的补码:1000 0000,1111 1111 1000 0000 (4) N=+127的补码:0111 1111, 0000 0000 0111 1111 (5) A=-65的补码:1011 1111, 1111 1111 1011 1111 (6) B=+65的补码:0100 0001,0000 0000 0100 0001 (7) C=-96的补码:1010 0000,1111 1111 1010 0000 (8) D=+96的补码:0110 0000, 0000 0000 0110 0000 7、写出下列用补码表示的二进制数的真值 (1) [X]补=1000 0000 0000 0000 H X=-1000 0000 0000 0000 H=-32768 (2) [Y]补=0000 0001 0000 0001 H Y=+0000 0001 0000 0001 H=+257 (3) [Z]补=1111 1110 1010 0101 H Z=-0000 0001 0101 1011 H=-347 (4) [A]补=0000 0010 0101 0111 H A=+0000 0010 0101 0111 H=+599 8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。 (1) 43+8 ∵[43]补=00101011B,[8]补=00001000B ∴[43]补+[8]补=00101011B+00001000B=00110011B=33H 00101011B +00001000B

微机原理课后习题解答

微机原理习题 第一章绪论 习题与答案 1、把下列二进制数转换成十进制数、十六进制数及BCD码形式。 (1) 10110010B= (2) 01011101、101B = 解: (1) 10110010B = 178D =B2H=(00010111 1000)BCD (2) 01011101、101B =93、625D=5D.AH =(1001 0011、0110 0010 0101)BCD 2. 把下列十进制数转换成二进制数。 (1) 100D= (2) 1000D= (3) 67、21D= 解: (1) 100D = 01100100B (2) 1000D=1111101000B (3) 67、21D=1000011、0011B 3. 把下列十六进制数转换成十进制数、二进制数。 (1) 2B5H = (2) 4CD、A5H= 解: (1) 2B5H = 693D = 00101011 0101B (2) 4CD、A5H=1229.6445D=0100 11001101.10100101B 4、计算下列各式。 (1) A7H+B8H = (2) E4H-A6H = 解: (1) A7H+B8H = 15FH (2) E4H-A6H =3EH 5、写出下列十进制数的原码、反码与补码。 (1)+89 (2)-37

解: (1) [+89 ] 原码、反码与补码为: 01011001B (2) [-37] 原码= 10100101 B [-37] 反码= 11011010 B [-37] 补码=11011011 B 6.求下列用二进制补码表示的十进制数 (1)(01001101)补= (2)(10110101)补= 解: (1)(01001101)补= 77D (2)(10110101)补=-75D 7.请用8位二进制数写出下列字符带奇校验的ASCII码。 (1)C: 1000011(2)O: 1001111 (3)M: 1001101 (4)P: 1010000 解: (1)C:0 1000011 (2)O: 01001111 (3)M:11001101 (4)P: 1 1010000 8、请用8位二进制数写出下列字符带偶校验的ASCII码。 (1)+:0101011 (2)=: 0111101 (3)#:0100011(4)>: 0111110 解: (1)+:00101011 (2)=: 10111101 (3)#:10100011 (4)>: 1 0111110 9、叙述CPU 中PC的作用。 解:PC就是CPU中的程序计数器,其作用就是提供要执行指令的地址。

微机原理王忠民版课后答案

部分习题答案 (3) 0.1101 1B= 0.84375 = 0.D8H (4) 11110.01 B= 30.25 =1E.4H 3、完成下列二进制数的加减法运算 (1) 1001.11 + 100.01 = 1110.0001110101.0110 (4) 01011101.0110 — 101101.1011 = 101111.1011 4、 完成下列十六进制数的加减法运算 (1) 745CH + 56DFH= D14B H (2) ABF.8H — EF6.AH = 9C28.E H (3) 12AB.F7 + 3CD.05= 1678 .FC H (4) 6F01H — EFD8H= 7F29 H 5、 计算下列表达式的值 103.CEH (3) 18.9 + 1010.1101B + 12.6H — 1011.1001 = 36.525 6、选取字长n 为8位和16位两种情况,求下列十进制数的补码。 (1) X=— 33的补码: ⑵ Y=+ 33的补码: 0010 0001 , 0000 0000 0010 0001 ⑶ Z=— 128 的补码:1000 0000 , 1111 1111 1000 0000 ⑷ N=+ 127的补码: 0111 1111 , 0000 0000 0111 1111 A=— 65的补码: 1011 1111 , 1111 1111 1011 1111 ⑹ B=+ 65的补码: 0100 0001 , 0000 0000 0100 0001 ⑺ C=— 96的补码: 1010 0000 , 1111 1111 1010 0000 (8) D=+ 96的补码: 0110 0000 , 0000 0000 0110 0000 7、写出下列用补码表示的二进制数的真值 (1) [X 补=1000 0000 0000 0000 H X = — 1000 0000 0000 0000 H =— 32768 (2) [Y 补=0000 0001 0000 0001 H Y = + 0000 0001 0000 0001 H = + 257 (3) [Z 补=1111 1110 1010 0101 H Z= — 0000 0001 0101 1011 H =—347 (4) [A 补=0000 0010 0101 0111 H A= + 0000 0010 0101 0111 H =+ 599 8、设机器字长为8位,最高位为符号位,试对下列格式进行二进制补码运算,并判断结果是否溢出。 (1) 43 + 8 [43]补=00101011B , [8]补=00001000B [43]补+ [8]补=00101011B + 00001000B = 00110011B = 33H 00101011B + 00001000B 00110011B T C s = 0, C D = 0, OF= C S ? C D = 0 ? 0= 0 ??? 无溢出 (1) 43 + 8 33H (无溢出) 第二章 1、 将十进制数转换为二进制和十六进制 (1) 129.75 = 1000 0001.11B = 81.CH (3) 15.625 = 1111.101B = F.AH 2、 将下列二进制数转换为十进制和十六进制 (1) 111010 B= 58 =3A H 计算机中的数值和编码 (2) 218.8125 = 1101 1010.1101B = DA.DH ⑷ 47.15625 = 10 1111.0010 1B = 2F.28 H (2) 1011 1100.111B= 188.875 = BC.E H (2) — 52 + 7 D3 H (无溢出)

微机原理习题解答

第一章微型计算机的基础知识 1-1 将下列十进制数转换为二进制数、十六进制数。 (1)110 (2)1 039 (3)0.75 (4)0.156 25 1-2 将下列十进制数转换为BCD 码。 (1)129 (2)5 678 (3)0.984 (4)93.745 1-3 将下列二进制数转换为十进制数、十六进制数。 (1)10101010 (2)10000000 (3)11000011.01 (4)01111110 1-4 将下列十六进制数转换为二进制数、十进制数。 (1)8E6H (2)0A42H (3)7E.C5H (4) 0F19.1DH 1-5 将下列二进制数转换为BCD 码。 (1)1011011.101 (2)1010110.001 1-6 将下列BCD 码转换为二进制数。 (1)(0010 0111 0011) BCD (2)(1001 0111.0010 0101) BCD 1-7 完成下列二进制数的运算。 (1)1001.11+11.11 (2)1101.01-0110.11 (3)1000.011-1001.101 (4)1111+1101 1-8 完成下列十六进制数的运算。 (1)6AH+0A6H (2)0AB1FH+0EFCH (3)12ADH-1DEH (4)117H-0ABH 1-9 已知X=01H,Y=0FFH ,在下面的情况下比较两数的大小。 (1)无符号数 (2)符号数 (均为补码) 1-10 计算下列各表达式。 (1)101+‘A’+01101001B+0D5H+57Q (2)127.8125+10111101.101+375.63Q+1FC.8AH 1-11 写出下列字符串的ASCII 码。 (1)HELLO (2)A8=

微机原理与接口技术(第二版)课后习题答案完整版

习题1 1.什么是汇编语言,汇编程序,和机器语言? 答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合。 汇编语言是面向及其的程序设计语言。在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码。这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言。 使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。 2.微型计算机系统有哪些特点?具有这些特点的根本原因是什么? 答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便。 这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上。 3.微型计算机系统由哪些功能部件组成?试说明“存储程序控制”的概念。 答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成。 “存储程序控制”的概念可简要地概括为以下几点: ①计算机(指硬件)应由运算器、存储器、控制器和输入/输出设备五大基本部件组成。 ②在计算机内部采用二进制来表示程序和数据。 ③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义。 ④五大部件以运算器为中心进行组织。 4.请说明微型计算机系统的工作过程。 答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存

放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作。如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能。 5.试说明微处理器字长的意义。 答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数。它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价。计算机的字长越大,其性能越优越。在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快。 6.微机系统中采用的总线结构有几种类型?各有什么特点? 答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型。 7.将下列十进制数转换成二进制数、八进制数、十六进制数。 ①(4.75)10=(0100.11)2=(4.6)8=(4.C)16 ②(2.25)10=(10.01)2=(2.2)8=(2.8)16 ③(1.875)10=(1.111)2=(1.7)8=(1.E)16 8.将下列二进制数转换成十进制数。 ①(1011.011)2=(11.6)10 ②(1101.01011)2=(13.58)10 ③(111.001)2=(7.2)10 9.将下列十进制数转换成8421BCD码。 ① 2006=(0010 0000 0000 0110)BCD ② 123.456=(0001 0010 0011.0100 0101 0110)BCD 10.求下列带符号十进制数的8位基2码补码。 ① [+127]补= 01111111

相关文档
最新文档