微机原理与接口技术习题解答王玉良.docx
- 文档编号:27786774
- 上传时间:2023-07-05
- 格式:DOCX
- 页数:24
- 大小:25.82KB
微机原理与接口技术习题解答王玉良.docx
《微机原理与接口技术习题解答王玉良.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术习题解答王玉良.docx(24页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术习题解答王玉良
第1章习题参考解答1.1.填空和选择
(1)运算器和控制器合在一起称为中央处理器,中央处理器和存储器、I/O接口、总线及电源合在一起被称为主机。
(2)计算机的软件一般分为两大类:
一类叫系统软件软件,一类叫应用软件软件。
数据库管理系统属于系统软件软件,计算机辅助教学软件属于应用软件软件。
(3)用来管理计算机系统的资源并调度用户的作业程序的软件称为操作系统;负责将高级语言的源程序翻译成目的程序的软件称为编译程序。
(4)计算机系统中的存储器分为外存储器和内存储器。
在CPU执行指令时,必须将指令存放在内存储器中。
(5)计算机存储数据的最小单位是字节。
1KB容量的存储器能够存储1024个这样的基本单位。
(6)在计算机系统中,多个系统部件之间信息传送的公共通道称为总线。
就其传送的信息的性质而言,在公共通道上传送的信息包括控制和数据信息。
(7)采用2的补码形式表示的8位二进制整数,其可表示的数的范围为(A)。
A.-128~+127
B.-2-127~+2-127
C.-2-128~2+127
D.-127~+128
(8)在定点数运算中产生溢出的原因是(C)。
A.运算过程中最高位产生了进位或借位B.参加运算的操作数超出了机器的表示范围C.运算的结果超出了结果单元的表示范围D.寄存器的位数太少,不得不舍弃最低有效位
(9)下列逻辑部件中,不属于运算器的是(A)。
A.指令寄存器C.累加器
2.说明微型计算机的基本硬件构成和各部分功能。
微型计算机硬件一般由微处理器、内存储器、外存储器、系统总线、接口电路、输入/输出设备等部件组成。
主要组成部件的功能和特点分析如下:
(1)微处理器:
是微型计算机的核心部件,由运算单元ALU、控制单元、寄存器组以及总线接口部件等组成,其功能是负责统一协调、管理和控制系统中的各个部件有机地工作。
(2)内存储器:
用来存放计算机工作过程中需要的操作数据和程序。
可分为随机存储器RAM和只读存储器ROM。
RAM存放当前参与运行的各种程序和数据,特点是信息可读可写,存取方便,但信息断电后会丢失;ROM用于存放各种固定的程序和数据,特点是信息固定不变,关机后原存储的信息不会丢失。
B.ALU
D.状态条件寄存器
(3)系统总线:
是CPU与其它部件之间传送数据、地址和控制信息的公共通道。
可分成数据总线DB、地址总线AB、控制总线CB。
(4)输入/输出接口电路:
完成微型计算机与外部设备之间的信息交换。
由寄存器组、专用存储器和控制电路等组成。
(5)输入/输入设备:
是微型计算机系统与外部进行通信联系的主要装置。
常用的有键盘、鼠标、显示器、打印机和扫描仪等。
3.说明微型计算机系统的基本构成。
微型计算机系统包括硬件系统和软件系统两大部分。
一、计算机硬件系统
硬件是指组成计算机的各种物理设备,它包括计算机的主机和外部设备。
具体由五大功能部件组成,即:
运算器、控制器、存储器、输入设备和输出设备。
这五大部分相互配合,协同工作。
二、计算机软件系统
计算机软件系统包括系统软件和应用软件两大类。
1.系统软件
系统软件是指控制和协调计算机及其外部设备,支持应用软件的开发和运行的软件。
其主要的功能是进行调度、监控和维护系统等等。
2.应用软件
应用软件是用户为解决各种实际问题而编制的计算机应用程序及其有关资料。
三、硬件和软件的关系
1.硬件与软件是相辅相成的,硬件是计算机的物质基础,没有硬件就无所谓计算机。
2.软件是计算机的灵魂,没有软件,计算机的存在就毫无价值。
3.硬件系统的发展给软件系统提供了良好的开发环境,而软件系统发展又给硬件系统提出了新的要求。
7.把+进制数2000变成二进制数、八进制数和+六进制数。
2000=7D0H=3720Q=11111010000B
8.把变成二进制数、+六进制数(精确到小数点后4位)。
===
9.用4位运算器完成如下计算,并解释所得结果:
(1)无符号数(3)符号数(5)符号数
(1)无符号数6+4
(2)无符号数3-4(3)符号数3+4正确
(4)符号数3-4
111110010111
V=0,N=1,负数,结果正确V=0,N=1,负数,结果正确
V=l,N=0,负溢出,结
101011110111
C=0,结果正确
C=1,结果不正确V=0,N=0,正数,结果
6+43+4
(2)无符号数
3-4
(4)符号数3-4(6)符号数-5-4
-3-4
(5)符号数-3-4
(6)符号数-5-4
果不正确
10.计算机内是如何表示+进制数的?
它有哪几种表示方法?
用4位二进制数表示1位+进制数,其中有6种非法代码(比如8421码中的1010B~1111B)不用。
压缩的BCD数,及非压缩的BCD数(包括ASCII数)。
l3.用+进制BCD码计算X=35+46,Y=35-46,Z=45+57,说明运算过程并解释结果。
35+46
7B
35
45
-46
EF
+57
9C
+06
81
-66
89
+66(+进制修正)
02
C=1,溢出
C=0,正确
C=1,溢出
14.与用2的补码[X]补+[-Y]补来计算[X-Y]补一样,试用“+的补码”来计算中的Y,并解释所得结果。
因为-46的“+的补码”是54(=100-46),所以35-46=35+(54)的补,计算如下:
35
+54
89且C=1(补码加时,无进位表示有“借位”)
若把89看成“+的补码”表示的符号数,则它表示:
-11(=-(100-89))。
19.若A=01000011B,说明用什么运算可完成下述操作:
(1)把A的第0、2、4、6位变反;
(2)把A的第1、2、3位清零;(3)把A的第4、5、6位置1;
(1)XOR
A,01010101B
(2)ANDA,B
(3)OR
A,01110000B
第2章习题参考解答
1.8086处理器内部一般包括哪些主要部分?
8086处理器与其他处理器一样,其内部有算术逻辑部件、控制与定时部件、总线与总线接口部件、寄存器阵列等。
按功能结构可分为两部分,即总线接口单元(BIU)与执行单元(EU)。
BIU主要包括段寄存器、内部通信寄存器、指令指针、6字节指令队列、20位地址加法器和总线控制逻辑电路。
EU主要包括通用寄存器阵列、算术逻辑单元、控制与定时部件等。
2.什么是总线?
—般微机中有哪些总线?
所谓总线是指计算机中传送信息的一组通信导线,它将各个部件连接成—个整体。
在微处理器内部各单元之间传送信息的总线称为片内总线;在微处理器多个外部部件之间传送信息的总线称为片外总线或外部总线。
外部总线又分为地址总线、数据总线和控制
总线。
随着计算机技术的发展,总线的概念越来越重要。
微机中常用的系统总线有PC总线、ISA总线、PCI总线等。
3.什么是堆栈?
它有什么用途?
堆栈指针的作用是什么?
堆栈是一个按照后进先出的原则存取数据的部件,它是由栈区和栈指针组成的。
堆栈的作用是:
当主程序调用子程序、子程序调用子程序或中断时转入中断服务程序时,能把断点地址及有关的寄存器、标志位及时正确地保存下来,并能保证逐次正确地返回。
堆栈除了有保存数据的栈区外,还有一个堆栈指针SP,它用来指示栈顶的位置。
若是“向下生成”的堆栈,随着压入堆栈数据的增加,栈指针SP的值减少。
但SP始终指向栈顶。
4.在8086CPU中,FR寄存器有哪些标志位?
分别说明各位的功能。
8086CPU中设置了一个16位的标志寄存器FR,其中用了9位,还有7位保留。
9位中有3位作为控制标志,6位作为状态标志。
IF:
中断控制标志。
当IF=1时,允许可屏蔽中断请求;当IF=0时,禁止可屏蔽中断请求。
TF:
单步运行标志。
当TF=1,单步运行;TF=0,连续运行程序。
DF:
方向标志。
当DF=0,串操作时地址按增量修改;DF=1,地址按减量修改。
SF:
符号(负数)标志。
当运算结果的最高位为1(负数)时,SF=1;反之SF=0。
ZF:
零标志。
当运算结果为0,则ZF=1;否则ZF=0。
AF:
辅助进位/借位标志。
当算术运算时低4位有进位/借位,则AF=1;否则AF=0。
AF主要用于BCD码运算中进行结果调整。
PF:
奇偶标志。
当运算结果低8位中1的个数为偶数时PF=1;否则PF=0。
CF:
进位/借位标志。
当算术运算结果最高位有进位/借位时,CF=1;否则CF=0。
逻辑运算时CF=0,循环移位指令也影响CF标志。
OF:
溢出标志。
当符号数算术运算结果有溢出时OF=1;否则OF=0。
5.在8086CPU中,有哪些通用寄存器和专用寄存器?
试说明专用寄存器的作用。
8086CPU中有4个16位的通用寄存器,即AX、BX、CX、DX。
每个16位寄存器又可分为2个,共8个8位寄存器:
AH、AL、BH、BL、CH、CL、DH、DL。
4个段寄存器(即代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES)用来存放各段的起始地址。
FR用来存放标志。
IP用来存放程序地址的偏移量,它不能提供给程序员编程。
SP是堆栈指针,专门用来指示堆栈位置。
BP为基址指针,作为基址寄存器使用,它与变址寄存器SI、DI配合作为一个寻址方式。
BP主要用来访问堆栈段中的数据。
6.若CS=8000H,试说明现行代码段可寻址的存储空间范围。
若CS=8000H,现行代码段可寻址的存储空间范围为80000H~8FFFFH。
7.设现行数据段位于存储器的B0000H~BFFFFH,试说明DS段寄存器的内容。
DS=B000H
8.设双字H的起始地址为A001H,试说明这个双字在存储器中是如何存放的。
该双字在存储器中的存
放如下:
9.说明8086的EU和BIU的主要功能。
8086CPU的BIU对外提供16位双向数据总线和20位地址总线。
它负责完成所有的外部总线操作,即完成取指令、指令排队、读与写操作、地址转换和总线控制。
执行单元EU的主要功能是完成指令译码与执行指令工作。
EU从BIU的指令队列输出端取得指令,对指令的代码进行译码,产生操作数地址并将其传送给BIU,向BIU申请完成存储器或I/O的读写周期,对操作数进行指令规定的操作。
在指令执行期间,EU测试标志位,根据指令执行的结果修改标志位。
若指令队列是空的,EU等待下一次取得指令字节,且修改指令队列的输出指针。
EU有一个16位的ALU,专门用来对操作数进行算术和逻辑运算。
10.说明8086CPU组成的系统中为什么必须使用地址锁存器?
8086的数据总线和低16位地址总线是采用分时复用的。
当执行存储器读写或I/O读写,在CPU总线周期的T1状态时,作地址总线输出(A15~A0),在其他状态均作为双向数据总线使用。
地址总线的高4位A19~A16也是复用线,但他们是地址/状态复用线。
为了使地址信息在整个总线周期中均保持有效地址,必须设置地址锁存器把T1
状态上输出的20条地址信息进行锁存。
11.8086CPU的最大寻址范围是多少?
如何实现对整个地址空间寻址?
8086的存储器最大寻址范围为1M字节(地址为00000H~FFFFFH);I/O寻址的最大范围为64K(口地址为0000H~FFFFH)。
对1M存储器的寻址是通过段寄存器来实现的,每个存储器段为64K字节,1M字节的存储器可以分为若干个64KB段,利用段寄存器可寻址整个存储空间。
对I/O空间的寻址可使用直接寻址(对8位口地址);也可使用DX进行间接寻址(对16位口地址)。
16.在8086中,地址/数据复用信号是如何区分的?
在8086中,地址/数据复用信号是在时间上区分的。
在总线周期的T1状态,CPU在这些引脚上输出存储器或I/O端口地址,在T2、T3、T4状态则输出数据收发信号。
第3章习题及参考解答
1.指出下列各指令中源操作数和目的操作数的寻址方式。
(1)MOVDI,100
(2)MOVCX.100[SI](3)MOV[SI],AX(4)ADDAX,[BX+DI](5)ANDAX,BX(6)MOVDX,[1000](7)MOVBX,[BP+DI+100](8)PUSHF
(9)SUB[1050],CX(10)ANDDH,[BP+4]解
源操作数
目的操作数寄存器寻址寄存器寻址寄存器间接寻址
(1)立即寻址
(2)变址寻址(3)寄存器寻址
(4)基址加变址寻址寄存器寻址(5)寄存器寻址(6)直接寻址
寄存器寻址寄存器寻址
(7)基址加变址寻址寄存器寻址(8)寄存器寻址(9)寄存器寻址(10)变址寻址
2.试述指令MOVAX,2000H和MOVAX,DS:
[2000H]的区别?
解区别有三条:
(1)MOVAX,2000H对源操作数是立即寻址,而MOVAX.[2000H]对源操作数是
直接寻址;
(2)前者功能是把立即数2000H送入AX中,而后者是把内存2000H单元与2001H
单元的内容取出送入AX中;
(3)两者的机器代码不同,执行速度也不同,前者执行时间快,后者执行时间慢。
寄存器间接寻址直接寻址寄存器寻址
4.若DS=4000H,BX=0800H,[40800H]=05AOH,[40802H]=2000H,求执行指令LDSSI,[BX]后,DS与SI中的内容。
若上题中的DS换成ES,其他条件不变,求执行指令LESDI,[BX]后,ES与DI中的内容。
解
SI=05AOH,DS=2000HDI=05AOH,ES=2000H
5.若AX=98ABH,BX=A8BCH。
求执行指令ADDAX,BX后,AX与BX中的内容,并指出SF,ZF,AF,PF,CF和OF的状态。
解AX=4167H,BX=A8BCH,SFZFAFPFCFOF=001011B。
6.若CX=6700H,DX=78FFH,CF=1。
求分别执行指令
(1)ADDCX,DX
(2)ADCCX,DX(3)SUBCX,DX(5)ANDCX,DX(6)ORCX,DX(7)XORCX,DX
后,CX与DX寄存器中的内容,并指出标志寄存器SF,ZF,AF,PF,CF及OF的状态。
解
(1)CX=DFFFH,DX=78FFH,SFZFAFPFCFOF=100101B
(2)CX=E000H,DX=78FFH,SFZFAFPFCFOF=101101B(3)CX=EE01H,DX=78FFH,SFZFAFPFCFOF=101010B(4)CX=EE00H,DX=78FFH,SFZFAFPFCFOF=101110B(5)CX=6000H,DX=78FFH,SFZFAFPFCFOF=00×100B(6)CX=7FFFH,DX=78FFH,SFZFAFPFCFOF=00×100B
(7)CX=1FFFH,DX=78FFH,SFZFAFPFCFOF=00×100B
7.若AX=FFFEH,BX=FFFDH,求执行指令IMULBX后,DX与AX中的内容。
指出标志位OF与CF的状态。
解AX=0006H,DX=0000H,OFCF=00B
8.若AL=75H,BL=48H,
(1)求执行指令
ADDAL,BLDAA
之后AL=?
标志AF=?
CF=?
并说明BCD码调整情况。
(2)若执行指令SUBAL,BL与DAS后,情况又如何?
解
(1)AL=23H,AFCF=11B
(2)AL=27H,AFCF=10B
9.设X、Y、R、S、Z均为16位无符号数的变量。
按已给定的表达式Z(X+Y)/(R-
S)→Z,有程序如下,试在空格处填入适当的指令(注:
在加减过程中均无进位和借位)。
MOVAX,X①MOVCX,RSUBCX,S②③MOVZ,AXMOVZ+1,DXHLT解
①ADDAX,Y②MULZ
③DIVCX
10.若有一个四字节数,放在寄存器DX与AX中(DX中放高16位),要求这个4字节数整个左移一位如何实现?
右移一位又如何实现?
解
(1)DX与AX左移一位:
SHLAX,01RCLDX,01
(2)DX与AX右移一位:
SHRDX,01RCRAX,01
11.若把1K字节的数据块从偏移地址为1000H开始的单元传送到偏移地址为1400H开始的缓冲区。
试用串传送操作指令和一般传送指令两种方法各编一程序实现。
解
(1)利用串操作指令编程如下:
MOVSI,1000HMOVDI,1400HMOVCX,400HCLDREPMOVSBMOVAM,4CHINT21H
(2)利用一般传送指令编程如下:
MOVSI,1000HMOVDI,1400HMOVCX,400HNEXT:
MOVAL,[SI]
MOV[DI],ALINCSIINCDI
LOOPNEXTMOVAH,4CHINT21H
12.若在内存缓冲区中有一个长度为256个字节的数据块,起始地址偏移量为2000H。
数据块中的数据有正有负,要求把其中的正负数分开.分别送至同段的两个缓冲区,存放正数的缓冲区的起始地址偏移量为2100H,存放负数的缓冲区的起始地址偏移量为2200H。
试编一程序。
解
MOVSI,2000HMOVCX,100HXORDX,DXLOOP:
MOVAL,[SI]
ADDAL,0JNSPLUSINCDHNEXT:
INCSI
DECCXJNZLOOPJMPSTOPPLUS:
INCDL
JMPNEXT
STOP:
MOV[2100H],DL
MOV[2200H],DHMOVAH,4CHINT21H
13.若SS=1000H,SP=1000H,AX=1234H,BX=5678H,Flag=2103H,试说明执行指令PUSHBXPUSHAXPUSHFPOPCX
之后,SP=?
SS=?
CX=?
并画图指出栈中各单元的内容。
解SS=1000H,SP=0FFCH,CX=2103H栈中各单元内容如下:
地址0FFAH0FFBH0FFCH0FFDH0FFEH0FFFH1000H
RAM032134127856XX
14.若DS=1100H,SI=1000H,CS=1200H,IP=100H,[12000H]=2000H,[12002]=1500H,求执行指令
(1)CALLFAR[SI]后CS与IP的内容;
(2)CALL[SI]后CS与IP的内容。
解
(1)CS=1500II,IP=2000H
(2)CS=1200H,IP=2000H
15.若执行指令INT21H后,将转到何处执行程序,指出CS与IP的内容。
解将转到0:
0086H和0:
0084H处取出双字作为CS与IP的值,再执行程序。
CS的值为内存单元0:
0086H和0:
0087H的内容;IP为内存单元0:
0084H与0:
0085H的内容。
16.编一程序使
(1)AX寄存器低4位清零;
(2)BX寄存器低4位置1;(3)CX寄存器低4位变反;
(4)DX寄存器高3位不变,其余位清零。
解
(1)ANDAX,FFF0H
(2)ORBX,000FH
(4)ANDDX,E000H
18.指出下列8086指令中哪些是错误的,错在何处?
(1)MOVDL,BX
(2)MOVDS,2000H(3)MOV[DI],[SI](4)MOVAX,[BX][BP](5)XCHG(6)PUSH
DH
CX,[2400H]
(7)INAH,DX(8)OUT01F0H,AX解
(1)错。
数据类型不匹配。
(2)错。
立即数不能直接送往段寄存器。
(3)错。
两个内存单元不能直接传送数据。
(4)错。
BX和BP部可作为基址寄存器,缺少变址寄存器。
没有基址加基址寻址方式。
(5)对。
(6)错。
堆栈操作必须是16位数据,DH是8位寄存器。
(7)错。
输入(IN)指令从端口读出的数据需送给累加器AL或AX,送给AH不行。
(8)错。
端口地址为16位时,必须用DX间接寻址。
19.连续执行以下指令,填写执行指令的结果(MEM为存储器物理地址)。
MOVCX.0FFOOHMOVDS,AXMOVSI,CXADDCX,AXMOV[SI],CX
ADC[SI],ALDECBYTE[SI]MOVAX,06ADCAX,08AAA
ADDAL,59HDAA
ANDAL,0FHMOVBX,-8NEGBX
MOVDL,06MULDL
ORAX,0FF00HCWD
IDIVBX
MOVAH,4CH
;①CX=H,CF=B;②[SI]=H.[SI+1]=H;③[SI]=H,MEM=H;④[SI]=H,ZFCFPF=B
;⑤AX=H,CFAF=B;⑥AX=H,CFAF=B;⑦AL=H,CFAF=B;⑧AL=H
;⑨BX=H
;⑩AX=H;⑾AX=H
;⑿AX=H,DX=H
INT21H解
①CX=2180H,CF=1B②[SI]=80H,[SI+1]=21H③[SI]=01H,MEM=32700H④[SI]=00H,ZFCFPF=111B⑤AX=000FH,CFAF=00B⑥AX=0105H,CFAF=11B⑦AL=5EH,CFAF=00B⑧AL=64H⑨BX=0008H⑩AX=0018H⑾AX=FF18H
⑿AX=FFE3H,DX=0000H第4章习题及参考解答
1.试编一程序,把地址偏移量为100H单元开始的256个单元分别写入00H,01H,02H,03H,…,FFH数据。
解源程序如下DATA
SEGMENTORG100HDB256DUP(?
)EQU$-BUF1
BUF1COUNT
DATASTK
ENDS
SEGMENTSTACKDB100DUP(?
)ENDS
STK
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETBUF1;戓LEASI,BUF1MOVCX,COUNTXORAL,AL
NEXT:
MOV[SI],AL
;或MOVAL,00H
INCALINCSILOOPNEXTMOVAH,4CHINT21H
CODE
2.统计上题写入的数据块中0元素、正元素、负元素的个数,并分别把统计结果送入上述数据块之后的三个单元中。
ENDSENDSTART
解DATA
SEGMENTORG100H
;共256个数据
BUF1DB00H,01H.02H,…,0FEH,0FFHCOUNTEOU$-BUF1
DB3DUP(?
)
DATAENDSSTKSEGMENTSTACKDB100DUP(?
)STK
ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVS1,OFFSETBUF1MOCCX,COUNTXORBX,BX
XORDH,DH
NEXT2:
MOVAL,[SI]
CMPAL,0JZZER0JSNEGAT
BL与BH分别存放正、负元素的个数D
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 习题 解答 王玉良