微型计算机原理及应用技术第二版课后作业解答全集DOCWord文件下载.docx
- 文档编号:22651304
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:32
- 大小:59.97KB
微型计算机原理及应用技术第二版课后作业解答全集DOCWord文件下载.docx
《微型计算机原理及应用技术第二版课后作业解答全集DOCWord文件下载.docx》由会员分享,可在线阅读,更多相关《微型计算机原理及应用技术第二版课后作业解答全集DOCWord文件下载.docx(32页珍藏版)》请在冰豆网上搜索。
=28587
8.将下列8421BCD码表示为十进制数和二进制数:
(1)01111001
(2)001010000101(3)011000000111(4)010110010000
(1)79,1001111B
(2)285,100011101B
(3)607,1001011111B
(4)590,1001001110B
12.微型计算机由哪几部分组成,各部分的功能是什么?
【解】微型计算机由运算器、控制器、存储器、输入设备、输出设备五大部分组成。
运算器完成算术运算和逻辑运算;
控制器分析命令并指挥协调各部件统一行动完成命令规定的各种动作或操作;
存储器存放原始数据、中间结果和最终结果以及程序;
输入设备、输出设备与外界交换信息。
13.CPU在内部结构上由哪几部分组成,CPU应具备什么功能?
【解】微处理器(CPU)由运算器和控制器组成。
CPU应具备的功能:
对数据进行处理并对处理过程进行控制。
17.如果某几种CPU的地址总线分别有8、16、20、32条,它们各自能寻址的存储器的容量是多少?
【解】地址总线8条:
28=256B
地址总线16条:
216=64KB
地址总线20条:
220=1MB
地址总线32条:
232=4GB
18.什么是硬件,什么是软件,硬件和软件的关系如何?
【解】硬件是指组成计算机的各种电子的、机械的、光磁学的物理器件和设备,它们构成了计算机的物理实体。
软件则是指为了运行、管理和维护计算机而编制的各种程序及其有关的文档资料的总称。
硬件是基础,软件是灵魂,两者既相互独立,又相互依存,缺一不可。
硬件和软件合起来才组成一个完整的计算机系统。
19.说明位、字节、字长的概念及它们之间的关系。
(1)位(bit)。
位是计算机所能表示的最基本最小的数据单位。
它只能有两种状态“0”和“1”,即二进制位。
(2)字(Word)。
计算机中作为一个整体参与运算、处理和传送的一串二进制数,是计算机中信息的基本单位。
(3)字长(WordLength)。
计算机中每个字所包含的二进制位数称为字长。
它们之间的关系:
字由位构成,字长指每个字所包含的位的个数。
1.8086CPU由哪两部分构成,它们的主要功能是什么?
在执行指令期间,EU能直接访问存储器吗,为什么?
【解】8086CPU由执行部件(EU)和总线接口部件(BIU)两部分组成。
执行部件由内部寄存器组、算术逻辑运算单元(ALU)与标志寄存器(FR)及内部控制逻辑等三部分组成。
寄存器用于存储操作数和中间结果;
算术逻辑单元完成16位或8位算术逻辑运算,运算结果送上ALU内部数据总线,同时在标志寄存器中建立相应的标志;
内部控制逻辑电路的主要功能是从指令队列缓冲器中取出指令,对指令进行译码,并产生各种控制信号,控制各部件的协同工作以完成指令的执行过程。
总线接口部件(BIU)负责CPU与存储器、I/O设备之间传送数据、地址、状态及控制信息。
每当EU部件要执行一条指令时,它就从指令队列头部取出指令,后续指令自动向前推进。
EU要花几个时钟周期执行指令,指令执行中若需要访问内存或I/O设备,EU就向BIU申请总线周期,若BIU总线空闲,则立即响应,若BIU正在取一条指令,则待取指令操作完成后再响应EU的总线请求。
3.8086CPU中有哪些寄存器,各有什么用途?
【解】8086共有8个16位的内部寄存器,分为两组:
①通用数据寄存器。
四个通用数据寄存器AX、BX、CX、DX均可用作16位寄存器也可用作8位寄存器。
用作8位寄存器时分别记为AH、AL、BH、BL、CH、CL、DH、DL。
AX(AH、AL)累加器。
有些指令约定以AX(或AL)为源或目的寄存器。
实际上大多数情况下,8086的所有通用寄存器均可充当累加器。
BX(BH、BL)基址寄存器。
BX可用作间接寻址的地址寄存器和基地址寄存器,BH、BL可用作8位通用数据寄存器。
CX(CH、CL)计数寄存器。
CX在循环和串操作中充当计数器,指令执行后CX内容自动修改,因此称为计数寄存器。
DX(DH、DL)数据寄存器。
除用作通用寄存器外,在I/O指令中可用作端口地址寄存器,乘除指令中用作辅助累加器。
②指针和变址寄存器。
BP(BasicPointerRegister)基址指针寄存器。
SP(StackPointerRegister)堆栈指针寄存器。
SI(SourceIndexRegister)源变址寄存器。
DI(DestinationIndexRegister)目的变址寄存器。
BP、SP称为指针寄存器,用来指示相对于段起始地址的偏移量。
BP和SP一般用于堆栈段。
SI、DI称为变址寄存器,可用作间接寻址、变址寻址和基址变址寻址的寄存器。
SI一般用于数据段,DI一般用于数据段或附加段。
标志寄存器(FR):
是一个16位寄存器,算术逻辑单元进行算术逻辑运算后,在标志寄存器中建立相应的标志。
段地址寄存器(CS、DS、SS、ES)。
用于存放段地址,根据其主要用途,分为代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES。
代码段寄存器CS:
代码段是存放程序代码的存储区域,代码段寄存器用来存放代码段存储区域的起始地址。
数据段寄存器DS:
数据段是存放程序中所使用的数据的存储区域,数据段寄存器用来存放程序的数据存储区的起始地址。
堆栈段寄存器SS:
堆栈段寄存器用来存放堆栈存储区的起始地址。
由堆栈段寄存器SS与堆栈指针寄存器SP来确定当前堆栈指令的操作地址。
附加段寄存器ES:
附加段是为某些字符串操作指令存放目的操作数而设置的一个附加的数据段,附加段寄存器用来存放该附加数据段存储区域的起始地址。
指令指针寄存器(IP)。
又称程序计数器,是16位寄存器。
IP中存放当前将要执行的指令的有效地址,每取出一条指令IP自动增量,即指向了下一条指令。
指令队列缓冲器:
是一个与CPU速度相匹配的高速缓冲寄存器。
在EU执行指令的同时,BIU可以从内存中取出下一条或下几条指令放到指令缓冲器中,EU执行完一条指令后,可以立即从指令缓冲器中执行下一条指令。
4.状态标志与控制标志有何不同,程序中是怎样利用这两类标志的?
标志寄存器有哪些标志位,各在什么情况下置位?
【解】状态标志根据算术逻辑运算结果由硬件自动设定,它们反映运算结果的某些特征或状态,可作为后继操作(如条件转移)的判断依据。
控制标志由用户通过指令来设定,它们可控制机器或程序的某些运行过程。
标志寄存器的内容如下:
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
OF
DF
IF
TF
SF
ZF
--
AF
PF
CF
CF(CarryFlag)进位标志,反映在运算结果的最高位有无进位或借位。
如果运算结果的最高位产生了进位(加法)或借位(减法)则CF=1,否则CF=0。
PF(ParityFlag)奇偶标志,反映运算结果中“1”的个数的奇偶性,主要用于判断数据传送过程中是否出错。
若结果的低8位中有偶数个“1”则PF=1,否则PF=0。
AF(AuxiliaryCarryFlag)辅助进位标志,又称半进位标志。
加减运算时,若D3向D4产生了进位或借位则AF=1,否则AF=0。
在BCD码运算时,该标志用于十进制调整。
ZF(ZeroFlag)零标志,反映运算结果是否为0。
若结果为零则ZF=1,否则ZF=0。
SF(SignFlag)符号标志,反映运算结果最高位即符号位的状态。
如果运算结果的最高位为1则SF=1(对带符号数即为负数),否则SF=0(对带符号数即为正数)。
OF(OverflowFlag)溢出标志,反映运算结果是否超出了带符号数的表数范围。
若超出了机器的表数的范围,即为产生溢出,则OF=1,否则OF=0。
DF(DirectionFlag)方向标志,用于串处理指令中控制串处理的方向。
当DF=1时,每次操作后变址寄存器SI、DI自动减量,因此处理方向是由高地址向低地址方向进行。
当DF=0,则SI、DI自动增量,处理方向由低地址向高地址方向进行。
该标志由方向控制指令STD或CLD设置或清除。
IF(InterruptFlag)中断允许标志,用于控制CPU是否允许响应可屏蔽中断请求。
IF=1为允许响应可屏蔽中断请求,IF=0则禁止响应可屏蔽中断请求。
该标志可由中断控制指令STI或CLI设置或清除。
TF(TrapFlag)陷阱标志,用于单步操作。
TF=1时,每执行一条用户程序指令后自动产生陷阱,进入系统的单步中断处理程序。
TF=0时,用户程序会连续不断地执行,不会产生单步中断。
5.求出下列运算后各个标志的状态,并说明进位标志和溢出标志的区别。
(1)1278H+3469H
(2)54E3H-27A0H
(3)3881H+3597H(4)01E3H-01E3H
【解】CF进位标志,反映在运算结果的最高位有无进位或借位。
OF溢出标志,反映运算结果是否超出了带符号数的表数范围。
机器实际处理时判断是否溢出的方法是根据最高位的进位(CF)与次高位的进位是否相同来确定,若两者不相同则OF=1(表示有溢出),否则OF=0(表示无溢出)。
(1)
0001001001111000
+0011010001101001
0100011011100001
运算后各个标志的状态:
(2)
0101010011100011
-0010011110100000
0010110001000011
(3)
0011100010000001
+0011010110010111
0110111000011000
(4)
0000000111100011
-0000000111100011
0000000000000000
6.8086CPU中存储器的逻辑地址和物理地址之间有什么关系,各有多少值?
【解】物理地址为某一个存储单元的实际地址,对于8086它是一个20位的地址。
物理地址从00000H~FFFFFH变化,对应1MB的空间。
逻辑地址,又称偏移地址或有效地址,即对段首的偏移量。
偏移地址从0000H~FFFFH变化,对应64KB的空间。
物理地址的获得方法是:
将段寄存器的内容左移4位(即×
16),与逻辑地址相加,得到20位物理地址。
根据寻址方式的不同,偏移地址可以来自程序计数器(IP)或其它寄存器。
7.8086CPU使用的存储器为什么要分段,怎样分段?
为什么要设置段寄存器,有几个段寄存器?
各段寄存器有什么意义?
【解】8086CPU内部数据结构是16位的,即所有的寄存器都是16位的,而外部寻址空间为1MB,即需要20位地址线。
为了能用内部寄存器中的16位地址来寻址1MB空间,8086将1MB空间以16字节为一个内存节,共分成64K个节。
节的起始地址分别为00000H、00010H、00020H、…、FFFF0H,称为段基址。
节的起始地址的后4位二进制数为全0,称为节的段地址。
用于存放段地址的寄存器称为段寄存器,根据其主要用途,分为代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS、附加段寄存器ES。
用来存放代码段存储区域的起始地址。
数存放程序的数据存储区的起始地址。
用来存放堆栈存储区的起始地址。
12.8086的I/O端口寻址范围是多少?
什么是I/O端口与内存分别独立编址?
【解】8086的I/O端口使用16位地址A15~A0,I/O端口地址范围为0000H~FFFFH,可寻址空间为64KB。
I/O端口与内存分别独立编址时,指令访问的是I/O端口还是内存,由地址信息无法区分,由M/
信号区分是I/O端口的寻址与内存寻址。
14.什么是基地址和位移量,它们之间有何联系?
【解】8086CPU内部数据结构是16位的,而外部寻址空间为1MB。
为了能用内部寄存器中的16位地址来寻址1MB空间,8086将1MB空间以16字节为一个内存节(Paragraph),共分成64K个节。
节的起始地址称为段基址。
偏移地址是存储地址对段首的偏移量。
它们之间有何联系:
物理地址=基地址×
16+位移量。
15.设CS=1200H,IP=0FF00H,此时指令的物理地址是多少?
指向这一物理地址的CS和IP的值是惟一的吗?
【解】指令的物理地址:
12000H+0FF00H=21F00H
指向这一物理地址的CS和IP的值不是惟一的。
16.若CS=1000H,指出当前代码段可寻址的存储空间的大小和地址范围。
【解】当前代码段可寻址的存储空间的大小:
64KB
当前代码段可寻址的存储空间的地址范围:
10000H~1FFFFH
1.若DS=3000H,BP=2000H,SI=1000H,[32000H]=00H,[32001H]=40H,SS=3000H,[31000H]=20H,[31001H]=60H,[33000H]=50H,[33001H]=60H,说明下列各条指令执行后,AX中的内容是什么?
并说明各条指令中源操作数的寻址方式。
(1)MOVAX,DS
(2)MOVAX,[2000H]
(3)MOVAX,[SI](4)MOVAX,[BP]
(5)MOVAX,[BP+SI]
(1)AX=3000H寄存器寻址
(2)AX=4000H直接寻址
(3)AX=6020H寄存器间接寻址
(4)AX=4000H寄存器间接寻址
(5)AX=6020H基址加变址寻址
2.指出下列指令中的非法指令。
(1)MOVBX,AL
(2)MOVCS,2000H
(3)PUSH4567H(4)XCHGVAR1,VAR2
(5)ADDAL,148H(6)MOVDS,2000H
(7)MOVBH,SI(8)SUB38H,AL
【解】非法指令:
(1)MOVBX,ALBX和AL的长度不一致
(2)MOVCS,2000HCS段寄存器不能作目的操作数
(3)PUSH4567H只能将寄存器或存储单元的内容压入堆栈,不能是立即数
(4)XCHGVAR1,VAR2两个存储单元之间不能直接交换数据
(5)ADDAL,148H运算溢出
(6)MOVDS,2000H立即数不能直接传送给DS段寄存器
(7)MOVBH,SIBH和SI的长度不一致
(8)SUB38H,AL目的操作数不能是立即数
3.若SP=2000H,AX=3355H,BX=4466H,试指出下列指令或程序段执行后有关寄存器的内容。
(1)PUSHAX
执行后AX=?
,SP=?
(2)PUSHAX
PUSHBX
POPDX
POPCX
,CX=?
,DX=?
(1)执行后AX=3355H,SP=1FFEH
(2)执行后AX=3355H,CX=3355H,DX=4466H,SP=2000H
4.请按下面的要求写出相应的汇编指令或指令序列。
(1)将1234H送入DS中。
(2)将5678H与AX中的数相加,结果放在AX中。
(3)将DATAX和DATAY相加,其和放在DATAY中。
(4)将AX中的高4位变为全0。
(5)将BX中的低2位变为全1。
(6)将CX中的D3~D7位取反。
(1)MOVAX,1234H
MOVDS,AX
(2)ADDAX,5678H
(3)MOVAX,DATAX
ADDAX,DATAY
MOVDATAY,AX
(4)ANDAX,0FFFH
(5)ORAX,0003H
(6)MOVAX,CX
ANDAX,07H
XORCX,0FFFFH
ANDCX,0FFF8H
ADDCX,AX
5.若AL=0FFH,BL=03H,指出下列指令执行后标志AF、OF、ZF、SF、PF、CF的状态。
(1)ADDBL,AL
(2)INCBL
(3)SUBBL,AL(4)NEGBL
(5)ANDBL,AL(6)MULBL
(7)CMPBL,AL(8)IMULBL
(9)ORBL,AL(10)XORBL,BL
【解】执行后:
(1)ADDBL,AL
(2)INCBL
不影响
(3)SUBBL,AL
(4)NEGBL
(5)ANDBL,AL
任意值
(6)MULBL
(7)CMPBL,AL
(8)IMULBL
(9)ORBL,AL
(10)XORBL,BL
9.执行下列程序段,指出各相关寄存器的内容。
MOVAX,0A0BH
DECAX
SUBAX,0FFH
ANDAX,00FFH
MOVCL,3
SALAL,CL
ADDAL,25H
XCHGAL,AH
PUSHAX
POPBX
INCBL
【解】各相关寄存器的内容:
MOVAX,0A0BH;
AX:
0A0BH
DECAX;
0A0AH
SUBAX,0FFH;
090BH
ANDAX,00FFH;
000BH
MOVCL,3;
CL:
03H
SALAL,CL;
0058H
ADDAL,25H;
007DH
XCHGAL,AH;
7D00H
PUSHAX;
POPBX;
BX:
INCBL;
7D01H
10.用串操作指令将100H个字符从2100H处搬到1000H处,并且从中检索与AL中所存字符相同的存储单元,并将该单元的内容替换成空格,本程序只替换检索到的第一个相同的单元。
请在下列空格中填入合适的指令,使程序段完成上述功能。
┇
MOVSI,2100H
(1)
MOVCX,100H
CLD
(2)
MOVDI,1000H
(3)
JNZK1
(4)
MOV[DI],20H
K1:
┇
(1)MOVDI,1000H
(2)REPMOVSB
(3)REPNESCASB
(4)DECDI
12.编程求出AX中存放的16位二进制数中‘1’的个数,将其存入CL中(若AX=1001
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微型计算机 原理 应用技术 第二 课后 作业 解答 全集 DOC