微机原理作业参考答案(1,2,3章) 联系客服

发布时间 : 星期日 文章微机原理作业参考答案(1,2,3章)更新完毕开始阅读a42c23990708763231126edb6f1aff00bed570a3

微机原理作业参考答案

第一次:P16 3,4,5,7

1.3 冯。诺依曼计算机的结构特点是什么? 答:

参考P5

1.4 典型微机有哪三大总线?它们传送的是什么信息? 答:

有数据总线(DB,双向,传送数据),地址总线(AB,单向,传送CPU要访问的内存单元地址或IO端口的端口号),控制总线(CB,双向,传送总线控制信息)。

1.5 什么叫微处理器?什么叫微型计算机?什么叫微型计算机系统?三者有什么区别和联系? 答:

微型计算机系统可分为三个层次,即:微处理器,微型计算机和微型计算机系统。微处理器即CPU,是一片主要包含运算器、控制器、寄存器组和总线访问逻辑电路的芯片;微型计算机是以微处理器为核心,配上存储器(ROM、RAM)、I/O接口电路及系统总线等所组成的计算机;以微型计算机为中心,配以相应的外围设备以及控制微型计算机工作的软件,就构成了完整的微型计算机系统。

1.7 试用示意图说明内存单元的地址和内存单元的内容,二者有何联系和区别? 答:

内存单元、内存单元的地址、内存单元的内容---这三个名词可类比为:房子、房子的地址、房子里住的人。也就是说,内存单元是物理器件,8086CPU有二十根地址线,最多可访问1M(2^20)个内存单元。内存单元按顺序被分配一个地址---第一个单元:0,第二个单元:1...最后一个单元:FFFFFH(或1048575D)。每个内存单元可存储一个字节的数据。图略,参考P7。

第二次作业:P54 1,2,3,6,7,9,11,13

2.1 8086从功能上分为哪两个部件?每个工作部件的功能、组成和特点分别是什么? 答:

分为执行部件(EU)和总线功能部件(BIU)两部分。 EU功能:执行算术/逻辑命令。

BIU功能:访问内存或I/O端口,从中读/写数据和读指令。

EU组成:ALU、EU控制器、寄存器组(通用、指针变址、标志)

BIU组成:指令队列、总线控制逻辑、物理地址生成逻辑(地址加法器、段寄存器、IP) EU、BIU的特点和更详细的功能说明:参考P19。

2.2 8086中有几个通用寄存器,有几个变址寄存器,有几个地址指针寄存器?它们中通常哪几个寄存器可作为地址寄存器使用? 答:

通用寄存器:AX,BX,CX,DX;变址寄存器:SI、DI;地址指针寄存器:BP、SP。地址寄存器:BX,BP,SI,DI,SP(这里把“地址寄存器”理解为可以存放EA的寄存器)。

2.3 8086的标志寄存器中有哪些标志位?它们的含义和作用是什么? 答:

参考P22~23

2.6 8086工作在最小模式时,1)当CPU访问存储器时,要利用哪些信号?2)当CPU访问外设时,要利用哪些信号?3)当HOLD有效并得到响应时,CPU的哪些信号是高阻? 答:

1),2)如图2-9、2-10(P35),访问内存和外设时用到的信号有:20位地址信号、M/IO、BHE、ALE、RD、DT/R、DEN信号。

3)HOLD得到响应时,所有具有三态功能的引脚处于高阻态。

2.7 8086工作在最大模式时,s2,s1,s0在cpu访问存储器与cpu访问外设时,分别是什么状态? 答:

参考p27:表2-4

2.9 8086采用什么方式管理内存?1MB的内存空间分为哪两个存储体?它们如何与地址总线、数据总线相连? 答:

8086采用逻辑分段的方式管理内存,对内存单元的寻址通过段基址+段内偏移地址的方式来完成。后面两个问参考P31~32。

2.11 对于8086,已知(DS)=1050H,(CS)=2080H,(SS)=0400H,(SP)=2000H,问:1)在数据段中可存放的数据最多为多少字节?首地址和末地址各为多少?2)堆栈段中可存放多少个16位的字?首地址和末地址各为多少?3)代码段最大的程序可存放多少字节?首地址和末地址各为多少?4)如果先后将FLAGS、AX、BX、CX、SI和DI压入堆栈,则(SP)为多少?如果此时(SP)=2300H,则原来的(SP)为多少? 答:

逻辑段容量<=64KB,根据题目给出的CS,SS,DS的值,可知堆栈段的起址为04000H,数据段的起始地址为10500H,代码段起始地址为20800。因而,堆栈段的容量最大为10500H-04000H=0C500H;由于数据段和代码段不会重叠,容量可达64KB。 1)数据段中可存放最多64KB。首地址:(DS)*16=10500H, 末地址:(DS)*16+0FFFFH=204FFH。

2)堆栈段中可存放最多6280个字。首地址:(SS)*16=04000H, 末地址:(SS)*16+0C500H=10500H。 3)代码段中可存放最多64KB。首地址:(CS)*16=20800H, 末地址:(CS)*16+0FFFFH=307FFH。 4)(SP)=(SP)-0CH=1FF4H,若(SP)=2300H,则原来的(SP)=2300H+0CH=230CH

2.13 什么是总线周期?什么是时钟周期?一个典型的总线周期最小包括几个时钟周期?什么情况下需要插入等待周期Tw?

答:

一次总线操作所需的时间称总线周期,一般由4个时钟周期组成:T1,T2,T3,T4。在存储器或外设的速度较慢时,要在T3之后插入一个或多个等待周期Tw。

第三次作业:P91 1,2,4

3.1什么叫寻址方式?8086CPU有哪几种寻址方式? 答:

寻址方式指寻找操作数或操作数地址的方式。操作数有立即数、寄存器操作数和内存操的寻址方式有:直接寻址,寄存器间接寻址,寄存器相对寻址,基址变址寻址,基址变址相对寻址

3.2指出下列指令中源操作数和目的操作数的寻址方式: 题目 1)MOV AX,0AH 2)ADD [BX],DX 3)PUSH CS 目的操作数寻址方式 寄存器寻址 寄存器间接寻址 源操作数寻址方式 立即数寻址 寄存器寻址 (SP+1):(SP)为隐含操作数,寄存器寻址 使用了SP的值寻址内存单元,故寻址方式为:寄存器间接寻址 寄存器寻址 寄存器寻址(AL为隐含操作数) 寄存器寻址 目的操作数由DI寻址,故寻址方式为:寄存器间接寻址 寄存器寻址 寄存器间接寻址 寄存器寻址 直接寻址 源操作数由SI寻址,故寻址方式为:寄存器间接寻址 基址变址相对寻址 4)POP DS 5)MUL BL 6)MOV DX,[1200H] 7)MOVSB 8)SUB AX,5[BP+DI]

3.4 当用寄存器间接寻址方式时,试问:BX、BP、SI、DI分别在什么情况下使用?它们的物理地址如何计算? 答:

寻址数据段中的数据时使用BX、SI、DI寄存器; 物理地址=(DS)*16+(BX)/(SI)/(DI) 寻址堆栈段中的数据时使用BP寄存器 物理地址=(SS)*16+(BP)

第四次作业 P91 5,6,9

3.5分别指出下列指令中源操作数和目的操作数的寻址方式。若是存储器寻址,试定出其有效地址和物理地址。设(DS)=6000H,(ES)=2000H,(SS)=1500H,(SI)=00A0H,(DI)=6010H,(BX)=0800H,(BP)=1200H,数据变量VAR为0050H(这里有歧义,且把0050H作为VAR变量所代表的内存操作数的首地址)。

题目 1)MOV AX,3050H 2)MOV DL,80H 3)MOV AX,VAR 目的操作数寻址方式 寄存器寻址 寄存器寻址 寄存器寻址 源操作数寻址方式 立即数寻址 立即数寻址 直接寻址 EA=0050H 物理地址=(DS)*16+EA =60060H 基址变址相对寻址 EA=0050H+(BX)+(SI)=0050H+0800H+00A0H=08F0H 物理地址=(DS)*16+EA =608F0H 4)MOV AX,VAR[BX][SI] 寄存器寻址 5)MOV AX,[BX+25H] 寄存器寻址 寄存器相对寻址 EA=0800H+25H=0825H 物理地址=(DS)*16+EA =60825H 6)MOV DI,ES:[BX] 寄存器寻址 寄存器间接寻址 EA=(BX)=0800H 物理地址=(ES)*16+EA =20800H 寄存器间接寻址 EA=(BP)=1200H 物理地址=(SS)*16+EA =16200H 寄存器相对寻址 EA=(BX)+20H=0820H 物理地址=(DS)*16+EA =60820H 寄存器寻址 寄存器间接寻址 EA=(SI)=00A0H 物理地址=(ES)*16+EA =200A0H 基址变址寻址 EA=(BX)+(DI)=6810H 物理地址=(DS)*16+EA =66810H 寄存器寻址 7)MOV DX,[BP] 寄存器寻址 8)MOV BX,20H[BX] 寄存器寻址 9)AND AX,BX 10)MOV BX,ES:[SI] 寄存器寻址 寄存器寻址 11)ADC AX,[BX+DI] 寄存器寻址 12)PUSH DS 寄存器间接寻址 EA=(SP)- 2 物理地址=(SS)*16+EA

3.6 设堆栈指针SP的初值为2300H,(AX)=5000H,(BX)=4200H。执行指令PUSH AX后,(SP)的值为多少?再执行指令PUSH BX及POP AX之后,(SP)的值为多少?(AX)的值为多少?(BX)的值为多少?