《微机原理学习与实践指导》第一部分.docx
《《微机原理学习与实践指导》第一部分.docx》由会员分享,可在线阅读,更多相关《《微机原理学习与实践指导》第一部分.docx(96页珍藏版)》请在冰豆网上搜索。
《微机原理学习与实践指导》第一部分
第一部分例题与习题
第1章微型计算机基础
一、例题
1.把十进制数137.875转化为二进制数。
解:
把十进制数转换成二进制数时,需要对一个数的整数部分和小数部分分别进行处理,得出结果后再合并。
整数部分:
一般采用除2取余法
小数部分:
一般采用乘2取整法
--------------1
--------------0
--------------0
--------------1
--------------0
--------------0
--------------0
--------------1
余数低位整数高位
2|1370.875
-------------1
-------------1
-------------1
2|68×2
2|341.750
2|17×2
2|81.500
2|4×2
2|21.000
1高位低位
(137)10=(10000111)2(0.875)10=(0.1101)2
所以,(137.875)10=(10001001.111)2
2.把二进制数10011.0111转换为八进制数和十六进制数。
解:
八进制、十六进制都是从二进制演变而来,三位二进制数对应一位八进制数,四位二进制数对应一位十六进制数,从二进制向八进制、十六进制转换时,把二进制数以小数点为界,对小数点前后的数分别分组进行处理,不足的位数用0补足,整数部分在高位补0,小数部分在低位补0。
(10011.0111)2=(010011.011100)2=(23.34)8
(10011.0111)2=(00010011.0111)2=(13.7)16
3.将八进制数23.34转换为二进制数。
解:
(23.34)8=(010011.011100)2=(10011.0111)2
4.X=0.1010,Y=-0.0111,求[X-Y]补,并判断是否有溢出?
解:
[X-Y]补=[X]补+[-Y]补
[X]补=0.1010[Y]补=1.1001[-Y]补=0.0111
+
0.1010
0.0111
1.0001
说明:
当异号相减运算时,通过补码,减法运算转化为两个正数的加法运算,结果为负(符号位为1),表示运算结果溢出。
5.10010101B分别为原码、补码、BCD码表示时,对应的十进制数为多少?
解:
[X]原=10010101,X=-21
[X]补=10010101,[X]原=11101011,X=-107
[X]BCD=10010101,X=95
6.简述计算机为什么能实现自动连续的运行?
解:
计算机能实现自动连续的运行,是由于计算机采用了存储程序的工作原理。
把解决问题的计算过程描述为由许多条指令按一定顺序组成的程序,然后把程序和处理所需要的数据一起输入到计算机的存储器中保存起来。
计算机接收到执行命令后,由控制器逐条取出并执行指令,控制整个计算机协调地工作,从而实现计算机自动连续的运行。
二、习题
1.选择题
(1)8086是()。
A.微机系统B.微处理器C.单板机D.单片机
(2)下列数中最小的数为()。
A.(101001)2B.(52)8C.(2B)16D.(50)10
(3)下列无符号数中,其值最大的数是()。
A.(10010101)2 B.(227)8 C.(96)16D.(150)10
(4)设寄存器的内容为10000000,若它等于-127,则为()。
A.原码B.补码C.反码D.ASCII码
(5)在小型或微型计算机里,普遍采用的字符编码是()。
A.BCD码B.16进制C.格雷码D.ASCII码
(6)若机器字长8位,采用定点整数表示,一位符号位,则其补码的表示范围是()。
A.-(27-1)~27B.-27~27-1
C.-27~27D.-(27-1)~27-1
(7)二进制数00100011,用BCD码表示时,对应的十进制数为()。
A.23B.35C.53D.67
(8)已知[X]补=10011000,其真值为()。
A.-102B.-103C.-48D.-104
(9)二进制数10100101转化为十六进制是()。
A.105B.95C.125D.A5
(10)连接计算机各部件的一组公共通信线称为总线,它由()。
A.地址总线和数据总线组成B.地址总线和控制总线组成
C.数据总线和控制总线组成D.地址总线、数据总线和控制总线组成
(11)计算机硬件系统应包括()。
A.运算器、存储器、控制器B.主机与外围设备
C.主机和实用程序D.配套的硬件设备和软件系统
(12)计算机硬件能直接识别和执行的只有()。
A.高级语言B.符号语言C.汇编语言D.机器语言
(13)完整的计算机系统是由()组成的。
A.主机与外设B.CPU与存储器
C.ALU与控制器D.硬件系统与软件系统
(14)计算机内进行加、减法运算时常采用()。
A.ASCII码B.原码C.反码D.补码
(15)下列字符中,ASCII码值最小的是()。
A.aB.AC.xD.Y
(16)下列字符中,其ASCII码值最大的是()。
A.D B.9 C.a D.y
(17)目前制造计算机所采用的电子器件是()。
A.中规模集成电路 B.超大规模集成电路
C.超导材料 D.晶体管
(18)计算机中的CPU指的是()。
A.控制器B.运算器和控制器
C.运算器、控制器和主存D.运算器
(19)计算机发展阶段的划分通常是按计算机所采用的()。
A.内存容量 B.电子器件
C.程序设计语言 D.操作系统
(20)计算机系统总线中,可用于传送读、写信号的是()。
A.地址总线 B.数据总线
C.控制总线 D.以上都不对
2.填空题
(1)计算机中的软件分为两大类:
___________软件和_______软件。
(2)部件间进行信息传送的通路称为___________。
(3)为判断溢出,可采用双符号位补码进行判断,此时正数的符号用表示,负数的符号用表示。
(4)八位二进制补码所能表示的十进制整数范围是_______。
(5)总线是连接计算机各部件的一组公共信号线,它是计算机中传送信息的公共通道,总线由、和控制总线组成。
(6)数据总线用来在与内存储器(或I/O设备)之间交换信息。
(7)在微机的三组总线中,总线是双向的。
(8)地址总线由发出,用来确定CPU要访问的内存单元(或I/O端口)的地址。
(9)以微处理器为基础,配上和输入输出接口等,就成了微型计算机。
3.将下列十进制数分别转换成二进制数、十六进制数。
(1)124.625
(2)635.05(3)301.6875(4)3910
4.将二进制数1101.101B、十六进制数2AE.4H、八进制数42.57Q转换为十进制数。
5.用8位二进制数表示出下列十进制数的原码、反码和补码。
(1)+127
(2)-127(3)+66(4)-66
6.设机器字长16位,定点补码表示,尾数15位,数符1位,问:
(1)定点整数的范围是多少?
(2)定点小数的范围是多少?
7.请写出下列字母、符号、控制符或字符串的ASCII码。
(1)B
(2)h(3)SP(空格)(4)5(5)$
(6)CR(回车)(7)LF(换行)(8)*(9)Hello
第2章16位和32位微处理器
一、例题
1.简述8086总线分时复用的特点。
解:
为了减少引脚信号线的数目,8086微处理器有21条引脚是分时复用的双重总线,即AD15~AD0,A19/S6~A16/S3以及
/S7。
这21条信号线在每个总线周期开始(T1)时,用来输出所寻址访问的内存或I/O端口的地址信号A19~A0以及“高8位数据允许”信号
;而在其余时间(T2~T4)用来传输8086同内存或I/O端口之间所传送的数据D15~D0以及输出8086的有关状态信息S7~S3。
2.何为时钟周期?
它和指令周期、总线周期三者之间的关系是什么?
解:
(1)时钟脉冲的重复周期称为时钟周期。
时钟周期是CPU的时间基准,由CPU的主频决定。
(2)指令周期是执行一条指令所需要的时间,包括取指令、译码和执行指令的时间。
指令周期由一个或多个总线周期组成,不同指令的指令周期所包含的总线周期个数是不同的,它与指令的性质与寻址方式有关。
(3)一个总线周期至少由4个时钟周期组成,分别表示为T1、T2、T3、T4。
3.8086有哪两种工作方式?
主要区别是什么?
解:
微处理器有两种工作方式:
最小方式和最大方式。
(1)系统中只有一个CPU,对存储器和I/O接口的控制信号由CPU直接产生的单处理机方式称为最小方式,此时MN/
接高电平;
(2)对存储器和I/O接口的控制信号由8288总线控制器提供的多处理机方式称为最大方式,此时MN/
接低电平,在此方式下可以接入8087或8089。
4.有一个16个字的数据区,它的起始地址为70A0H:
DDF6H,如下图所示。
请写出这个数据区首、末字单元的物理地址。
70A0H:
DDF6H
16个字
图1.2.1存储器单元分布图
解:
首地址=70A00H+DDF6H=7E7F6H
末地址=7E7F6H+16×2-2=7E7F6H+20H-2H=7E814H
5.根据8086存储器读写时序图,回答如下问题:
图1.2.2存储器读周期时序图
图1.2.3存储器写周期时序图
(1)地址信号在哪段时间内有效?
(2)读操作和写操作的区别?
(3)存储器读写时序与I/O读写时序的区别?
(4)什么情况下需要插入等待周期TW?
解:
(1)在T1周期,双重总线AD15~AD0,A19/S6~A16/S3上输出要访问的内存单元的地址信号A19~A0。
(2)读操作和写操作的主要区别是:
①
控制信号在读周期中为低电平,在写周期中为高电平。
②在读周期中,
控制信号在T2~T3周期为低电平(有效电平);在写周期中,
控制信号为低电平(有效电平)。
③在读周期中,数据信息一般出现在T2周期以后。
在T2周期,AD15~AD0进入高阻态,此时,内部引脚逻辑发生转向,由输出变为输入,以便为读入数据作准备。
而在写周期中,数据信息在双重总线上是紧跟在地址总线有效之后立即由CPU送上的,两者之间无高阻态。
(3)存储器操作同I/O操作的区别是:
在存储器周期中,控制信号
始终为高电平;而在I/O周期中,
始终为低电平。
(4)CPU在每个总线周期的T3状态开始采样READY信号,若为低电平,则表示被访问的存储器或I/O设备的数据还未准备好,此时应在T3状态之后插入一个或几个TW周期,直到READY变为高电平,才进入T4状态,完成数据传送,从而结束当前总线周期。
二、习题
1.选择题
(1)在8086/8088的总线周期中,ALE信号在T1期间有效。
它是一个()。
A.负脉冲,用于锁存地址信息
B.负脉冲,用于锁存数据信息
C.正脉冲,用于锁存地址信息
D.正脉冲,用于锁存数据信息
(2)8086/8088的最大模式和最小模式相比至少需增设()。
A.数据驱动器B.中断控制器
C.总线控制器D.地址锁存器
(3)在8086CPU中,不属于总线接口部件的是()
A.20位的地址加法器 B.指令队列
C.段地址寄存器 D.通用寄存器
(4)在8088系统中,只需1片8286就可以构成数据总线收发器,而8086系统中构成数据总线收发器的8286芯片的数量为()。
A.1 B.2
C.3 D.4
(5)CPU内部的中断允许标志位IF的作用是()。
A.禁止CPU响应可屏蔽中断B.禁止中断源向CPU发中断请求
C.禁止CPU响应DMA操作D.禁止CPU响应非屏蔽中断
(6)在8086的存储器写总线周期中,微处理器给出的控制信号(最小模式下)
,
,
分别是()。
A.1,0,1B.0,1,0
C.0,1,1D.1,0,0
(7)当8086CPU从总线上撤消地址,而使总线的低16位置成高阻态时,其最高4位用来输出总线周期的()。
A.数据信息B.控制信息
C.状态信息D.地址信息
(8)8086CPU在进行I/O写操作时,
和
必须是()。
A.0,0B.0,1
C.1,0D.1,1
(9)若在一个总线周期中,CPU对READY信号进行了5次采样,那么该总线周期共包含时钟周期的数目为()。
A.5B.6
C.7D.8
(10)8086系统复位后,下面的叙述错误的是()。
A.系统从FFFF0H处开始执行程序
B.系统此时能响应INTR引入的中断
C.系统此时能响应NMI引入的中断
D.DS中的值为0000H
(11)CPU访问内存时,
信号开始有效对应的状态是()。
A.T1B.T2
C.T3D.T4
2.填空题
(1)8086/8088微处理器被设计为两个独立的功能部件:
和。
(2)当8086进行堆栈操作时,CPU会选择段寄存器来形成20位堆栈地址。
(3)8086CPU时钟频率为5MHz时,它的典型总线周期为ns。
(4)8086CPU的最大方式和最小方式是由引脚信号的状态决定。
(5)当Intel8086工作在最大方式时,需要芯片提供控制信号。
(6)若8086系统用8位的74LS373来作为地址锁存器,那么需要片这样的芯片。
(7)根据功能不同,8086的标志位寄存器可分为标志和标志。
(8)8086CPU在执行指令过程中,当指令队列已满,且EU对BIU又没有总线访问请求时,BIU进入状态。
(9)复位后,8086将从地址开始执行指令。
(10)8086/8088CPU的A19/S6~A16/S3在总线周期的T1期间,用来输出__________位地址信息中的__________位,而在其它时钟周期内,用来输出__________信息。
3.完成下列各式补码运算,并根据结果设置标志位SF、ZF、CF、OF。
(1)96+(-19)
(2)90+107
(3)(-33)+14(4)(-33)+(-14)
4.写出下列存储器地址的段地址、偏移地址和物理地址。
(1)2314H:
0035H
(2)1FD0H:
000AH
5.在8086系统中,下一条指令所在单元的物理地址是如何计算的?
6.若某存储器容量为2KB,在计算机存储系统中,其起始地址为2000H:
3000H,请计算出该存储器物理地址的范围。
7.8086的复位信号是什么?
有效电平是什么?
CPU复位后,寄存器和指令队列处于什么状态?
8.8086CPU标志寄存器中的控制位有几个?
简述它们的含义。
9.设8088的时钟频率为5MHz,总线周期中包含2个TW等待周期。
问:
(1)该总线周期是多少?
(2)该总线周期内对READY信号检测了多少次?
10.8086与8088CPU的主要区别有哪些?
11.8086/8088CPU由哪两部分构成?
它们的主要功能是什么?
12.8086CPU系统中为什么要用地址锁存器?
13.8086/8088CPU处理非屏蔽中断NMI和可屏蔽中断INTR有何不同?
第3章16位/32位微处理器指令系统
一、例题
1.指出下列指令中源操作数的寻址方式。
(1)MOVAX,002FH
(2)MOVBX,[SI]
(3)MOVCX,[BX+SI+2]
(4)MOVDX,DS:
[1000H]
(5)MOVSI,BX
解:
(1)立即寻址
(2)寄存器间接寻址
(3)基址变址寻址
(4)直接寻址
(5)寄存器寻址
2.若寄存器AX、BX、CX、DX的内容分别为18,19,20,21时,依次执行PUSHAX,PUSHBX,POPCX,POPDX后,寄存器CX的内容为多少?
解:
执行PUSHAX指令后,将18压入堆栈,(SP)-2SP ;
执行PUSHBX指令后,将19压入堆栈,(SP)-2SP ;
执行POPCX指令后,将19从堆栈中弹出,放入CX,(SP)+2SP ;
执行POPDX指令后,将18从堆栈中弹出,放入DX,(SP)+2SP ;
故上述四条指令执行后,(CX)=19。
3.指出下列指令的错误所在:
(1)MOVAL,SI
(2)MOVBL,[SI][DI]
(3)XCHGCL,100
(4)PUSHAL
(5)INAL,256
(6)MOVBUF,[SI]
(7)SHLAL,2
(8)MOVDS,2000H
(9)MUL100
(10)MOVAL,BYTEPTRSI
解:
(1)AL、SI的数据类型不匹配
(2)不允许同时使用变址寄存器SI、DI,正确的基址变址寻址方式中应运用一基址、一变址寄存器;
(3)只能在寄存器与存储器单元或寄存器之间交换数据;
(4)只能向堆栈中压入字类型数据;
(5)I/O端口地址若超过8位,应该由DX寄存器提供;
(6)两操作数不能同时为存储器操作数;
(7)移位次数大于1,应该由CL寄存器提供;
(8)立即数不能直接送给段寄存器;
(9)乘法指令的操作数不能是立即数;
(10)PTR算符不能运用于寄存器寻址方式。
4.执行下列指令序列后,AX和CF中的值是多少?
STC
MOVCX,0403H
MOVAX,0A433H
SARAX,CL
XCHGCH,CL
SHLAX,CL
解:
STC;CF=1。
MOVCX,0403H;(CX)=0403H
MOVAX,0A433H;(AX)=0A433H
SARAX,CL;算术右移3位,(AX)=0F486H
XCHGCH,CL;互换CH、CL中内容,(CX)=0304H
SHLAX,CL;逻辑左移4位,(AX)=4860H,CF=1
所以,(AX)=4860H,CF=1。
5.设计指令序列,完成下列功能:
(1)写出将AL的最高位置1,最低位取反,其它位保持不变的指令段。
(2)写出将AL中的高四位和低四位数据互换的指令段。
(3)检测AL中的最高位是否为1,若为1,则转移到标号NEXT处,否则顺序执行,请用两条指令完成之。
(4)写出将立即数06H送到口地址为3F00H的端口的指令序列。
解:
(1)ORAL,80H
XORAL,01H
(2)MOVCL,4
RORAL,CL
(3)TESTAL,80H
JNZNEXT
(4)MOVAL,06H
MOVDX,3F00H
OUTDX,AL
二、习题
1.选择题
(1)下列指令执行后有可能影响CS值的指令数目是()。
JMP、MOV、RET、ADD、INT
JC、LODS、CALL、MUL、POP
A.3 B.4 C.5 D.6
(2)8086在基址变址的寻址方式中,基址、变址寄存器分别是()。
A.AX或CX、BX或CX B.BX或BP、SI或DI
C.SI或BX、DX或DI D.CX或DI、CX或SI
(3)设(SS)=338AH,(SP)=0450H,执行PUSHBX和PUSHF两条指令后,堆栈顶部的物理地址是()。
A.33CECHB.33CF2H
C.33CF4HD.33CE8H
(4)若(AX)=-15,要得到(AX)=15应执行的指令是()。
A.NEGAXB.NOTAX
C.INCAXD.DECAX
(5)若(SP)=0124H,(SS)=3300H,在执行RET4这条指令后,栈顶的物理地址为()。
A.33120H B.3311EH C.33128H D.3312AH
(6)已知程序序列为:
ADDAL,BL
JNOL1
JNCL2
若AL和BL的内容有以下四组给定值,使该指令序列转向L2执行的给定值是()。
A.(AL)=B6H、(BL)=87H
B.(AL)=05H、(BL)=0F8H
C.(AL)=68H、(BL)=74H
D.(AL)=81H、(BL)=0A2H
(7)以下三指令执行后,(DX)=()。
MOVDX,0
MOVAX,0FFABH
CWD
A.0FFABHB.0C.0FFFFHD.无法确定
(8)设(AX)=0C544H,在执行指令ADDAH,AL后,相应的状态为()。
A.CF=0、OF=0 B.CF=0、OF=1
C.CF=1、OF=0 D.CF=1、OF=1
(9)将累加器AX内容清零的错误指令是()。
A.ANDAX,0B.XORAX,AX
C.SUBAX,AXD.CMPAX,AX
(10)将变量BUF的偏移地址送入SI的正确指令是()。
A.MOV[SI],BUFB.MOVSI,BUF
C.LEASI,BUF D.MOVOFFSETBUF,SI
(11)INC指令不影响()标志。
A.OFB.CFC.ZFD.SF
(12)能判断累加器AX内容是否全0的下面4种方法中,正确的有()种。
①SUBAX,0②XORAX,0
JZL1JZL1
③ORAX,AX④TESTAX,0FFFFH
JZL1JZL1
A.1B.2C.3D.4
(13)在下列指令中,隐含使用AL寄存器的指令有()条。
AAAMOVSBMULBH
CBWSCASBXLAT
A.2B.3C.4D.5
(14)已知(SS)=1000H,(SP)=2000H,(BX)=283FH,指令CALLWORDPTR[BX]的机器代码是0FF17H,该指令的起始地址为1000H,试问执行该指令后,内存单元11FFEH中的内容是()。
A.28HB.3FHC.00HD.02H
(15)设AL中的值为84H,CF=1,现执行RCRAL,1指令后,AL中的值和CF分别为()。
A.0C2H、1B.42H、1C.0C2H、0D.42H、0
(16)能够将CF置1的指令是()。
A.CLCB.CMCC.NOPD.STC
(17)执行一列三条指令后,AX寄存器中的内容是()。
MOVAX,‘8’
ADDAL,‘9’
AAA
A.0071H B.0107HC.0017H D.0077H
(18)下列指令执行后,能影响标志位的指令是()。
A.L