微机原理第6章习题参考答案

合集下载

微机原理第六章习题答案

微机原理第六章习题答案

微机原理第六章习题答案微机原理第六章习题答案第一节:数制转换在微机原理课程中,数制转换是一个非常重要的概念。

在计算机中,常用的数制有二进制、十进制和十六进制。

数制转换是指将一个数从一种进制表示转换为另一种进制表示的过程。

1. 将二进制数1101.101转换为十进制数。

首先,我们需要了解二进制数的权重计算方法。

对于二进制数1101.101,从小数点开始,从右到左,每一位的权重依次是2^(-1),2^(-2),2^(-3),2^0,2^1,2^2,2^3。

将每一位的值与对应的权重相乘,并将结果相加,即可得到十进制数的值。

计算过程如下:(1 * 2^3) + (1 * 2^2) + (0 * 2^1) + (1 * 2^0) + (1 * 2^(-1)) + (0 * 2^(-2)) + (1 * 2^(-3))= 8 + 4 + 0 + 1 + 0.5 + 0 + 0.125= 13.625所以,二进制数1101.101转换为十进制数为13.625。

2. 将十进制数45转换为二进制数。

将十进制数45除以2,得到商22和余数1。

将商22再次除以2,得到商11和余数0。

将商11再次除以2,得到商5和余数1。

将商5再次除以2,得到商2和余数1。

将商2再次除以2,得到商1和余数0。

将商1再次除以2,得到商0和余数1。

将每一次得到的余数从下往上排列,得到二进制数101101。

所以,十进制数45转换为二进制数为101101。

3. 将十六进制数3F转换为二进制数。

首先,我们需要了解十六进制数的权重计算方法。

对于十六进制数3F,从右到左,每一位的权重依次是16^0,16^1。

将每一位的值与对应的权重相乘,并将结果相加,即可得到二进制数的值。

计算过程如下:(15 * 16^0) + (3 * 16^1)= (15 * 1) + (3 * 16)= 15 + 48= 63所以,十六进制数3F转换为二进制数为63。

第二节:逻辑运算在微机原理中,逻辑运算是指对二进制数进行的与、或、非等运算。

微机原理与接口第六章答案

微机原理与接口第六章答案

出问题较多的题目6.4 在CPU与外设之间的数据接口上一般加有三态缓冲器,其作用如何?参考答案要点:1)实现CPU和不同外设的速度匹配。

CPU通过数据总线和I/O设备交换数据,但大多数外设的速度比CPU慢很多,无法在时序上和CPU同步,因此,需在I/O接口电路中设置缓冲器,暂存数据,以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。

2)实现外设和数据总线的有效隔离。

众多外设中,在某一时段仅允许被CPU 选中的设备通过接口享用总线与CPU 交换信息,这就要求接口电路具备使外设与总线隔离的作用。

因此,需选用起缓冲和隔离作用的三态门电路,只有当CPU 选中此接口,三态门选通时,才允许选定的输入设备将数据送至系统数据总线,而其他没有被选中的输入设备,此时相应的接口三态门“关闭”,从而达到与数据总线隔离的目的。

存在的问题:大多数同学对于第2点的回答有欠缺。

6.8 CPU响应(可屏蔽)中断有哪些条件?为什么需要这些条件?参考答案要点:三个条件:1)CPU执行完当前指令;2)有中断请求,且无NMI请求和DMA请求;3)CPU开放中断(或中断允许标志IF=1)。

存在的问题:部分同学把有中断请求这个条件忽略了。

6.9 CPU在中断周期要完成那些主要的操作?参考答案要点:1)关中断;2)保存程序断点和PSW;3)获取中断服务程序入口地址,转入相应的中断服务程序。

存在的问题:中断周期IT这个概念有明确的含义,是响应过程的一个专用的过渡周期,有的机器称之为中断响应总线周期。

在这个周期中依靠硬件(也称中断隐指令)实现程序切换。

中断周期结束后,就进入取指周期。

我们教科书(P213)把中断周期和中断的全过程混为一谈了,容易误导大家。

6.16试比较保护断点与保护现场的主要异同点。

参考答案要点:相同点:二者均用于程序切换时保存原程序的运行数据或状态信息。

不同点:1)保护断点是把程序的断点值(IP和CS值)压栈保存;而保护现场则是把相关寄存器和PSW的值保存起来(通常是压栈保存);2)保护断点通常是在中断响应阶段完成,而保护现场则通常在中断处理阶段完成(8086/8088系统保存PSW的值在中断响应阶段完成)。

微机原理习题答案6章

微机原理习题答案6章

第6章存储器设计1.简述内存储器的分类及每种存储器的用途?解:内存储器按其工作方式的不同,可以分为随机存取存储器(简称随机存储器或RAM)和只读存储器(简称ROM)。

随机存储器。

随机存储器允许随机的按任意指定地址向内存单元存入或从该单元取出信息,对任一地址的存取时间都是相同的。

由于信息是通过电信号写入存储器的,所以断电时RAM中的信息就会消失。

计算机工作时使用的程序和数据等都存储在RAM中,如果对程序或数据进行了修改之后,应该将它存储到外存储器中,否则关机后信息将丢失。

通常所说的内存大小就是指RAM的大小,一般以KB或MB为单位。

只读存储器。

只读存储器是只能读出而不能随意写入信息的存储器。

ROM中的内容是由厂家制造时用特殊方法写入的,或者要利用特殊的写入器才能写入。

当计算机断电后,ROM中的信息不会丢失。

当计算机重新被加电后,其中的信息保持原来的不变,仍可被读出。

ROM适宜存放计算机启动的引导程序、启动后的检测程序、系统最基本的输入输出程序、时钟控制程序以及计算机的系统配置和磁盘参数等重要信息。

2.简述存储器的主要技术指标有哪些?解:存储器的主要技术指标有:存储容量、读写速度、非易失性、可靠性等。

3.在实际工程应用中,存储器芯片的速度怎样估算?解:在选择存储器芯片时应注意是否与微处理器的总线周期时序匹配。

作为一种保守的估计,在存储器芯片的手册中可以查得最小读出周期t cyc(R)(Read Cycle Time)和最小写周期t cyc(W)(Write Cycle Time)。

如果根据计算,微处理器对存储器的读写周期都比存储器芯片手册中的最小读写周期大,那么我们认为该存储器芯片是符合要求的,否则要另选速度更高的存储器芯片。

8086CPU对存储器的读写周期需要4个时钟周期(一个基本的总线周期)。

因此,作为一种保守的工程估计,存储器芯片的最小读出时间应满足如下表达式:t cyc(R)<4T-t da-t D-T其中:T为8086微处理器的时钟周期;t da为8086微处理器的地址总线延时时间;t D为各种因素引起的总线附加延时。

《微机原理与接口技术》第六章作业答案

《微机原理与接口技术》第六章作业答案

《微机原理与接口技术》第六章作业一、P207:1,3,5,10,1418,19,201、什么叫中断?中断系统的主要功能有哪些?中断:是指CPU在执行程序的过程中,由于某种外部或内部事件的作用,强迫CPU停止当前正在执行的程序,转去为该事件服务,待事件服务结束后,能自动地返回到被中断的程序中继续执行。

中断系统的功能:1、设置中断源2、中断源识别3、中断源判优4、中断与返回3、CPU 响应中断时的处理过程是什么?在各个处理环节主要完成哪些操作?过程是:中断请求、中断响应、中断处理和中断返回。

(1)中断请求:中断源需要进行中断服务时,由硬件产生一个中断信号INTR 发给CPU 且保持到CPU 响应。

(2)中断响应:CPU 在当前指令执行结束后采样查询INTR ,若中断请求信号有效且允许响应INTR 中断(IF=1),则向请求设备送回低电平有效的中断响应信号INTR , 自此系统自动进入中断响应周期,并由硬件自动完成内容入栈,清除TF 和IF标志、断点入栈,取中断服务程序的入口地址等一系列操作,继而转去执行中断服务程序。

(3)中断处理:执行中断的主体部分。

不同的中断请求源,其中断处理的内容是不同的。

需要根据中断请求源所要完成的功能,编写相应的中断服务程序存入内存。

等待中断响应后调用执行。

(4)中断返回:又中断服务程序中的中断返回指令IRET 完成。

执行该指令时,将压入对战的断点和标志位弹出,使CPU 转向被中断的现行程序中继续执行。

5、中断允许标志IF的作用是什么? 可以用什么指令对它置1或清0。

IF用来控制INTR和单步中断。

IF=1允许中断 IF=0不允许中断STI:IF=1CLI:IF=010、中断向量表用来存放什么内容?它占用多大的存储空间?存放在内存的哪个区域?可以用什么方法写入或者读取中断向量表的内容?中断向量表存放中断向量,即中断服务程序的段基址+偏移地址。

中断向量表占1KB 内存RAM区,地址范围:000H—3FFH。

微机原理第五版6-10章习题解答讲课讲稿

微机原理第五版6-10章习题解答讲课讲稿

微机原理第五版6-10章习题解答第6章习题解答(P271)⒊依照编程方式的不同,ROM分为哪几类?各有何特点(重点说明E2PROM与FLASH存储器的区别)?解:依照编程方式的不同,ROM分为三类:⑴掩膜型ROM(ROM),其特点是:用户将要写入芯片的数据提供给芯片生产商,在生产该芯片的最后一道掩膜工艺时,将数据写入芯片,用户以后只能读出不能写入;⑵现场可编程ROM(PROM),其特点是:由于内部器件的一次性编程,不可再生特性,所以用户只可在现场一次性对芯片编程,不能更改;⑶可改写的ROM(EPROM),其特点是:用户可多次对其编程。

其中用紫外线擦除再用电编程的EPROM,必须从用户板上拆下后用紫外线照射擦除,再用专用编程器对其进行改写,使用不方便,目前很少使用;可用电擦除的E2PROM,可在用户板上用电信号对其进行字节或全部擦除和改写,使用很方便;FLASH是一种新型的电擦除EPROM,它具有E2PROM的所有特性,还具有集成度高,速度快,成本低等特点,是目前使用最广泛的ROM存储器。

⒍对下列RAM芯片组排列,各需要多少个RAM芯片?多少个芯片组?多少根片内地址线?若和8088 CPU相连,则又有多少根片选地址线?(1) 1K×4位芯片组成16K×8位存储空间;解:当用单片容量为1K×4的RAM组成总容量为16K×8的存储器时:①需要的总芯片数为(16×1024/1×1024)×(8/4)=32(片)②需要的芯片组数为16×1024/1×1024=16 (组)③片内地址线数为log2(210)=10(根)④芯片组选择地址线数为log2(16×210)-10=4 (根)(2) 8K×8位芯片组成512K×8位存储空间。

解:当用单片容量为8K×8位的RAM组成总容量为512K×8的存储器时:①需要的总芯片数为(512×1024/8×1024)×(8/8)=64(片)②需要的芯片组数为512×1024/8×1024=64 (组)③片内地址线数为 log2(8×210)=13(根)④芯片组选择地址线数为log2(512×210)-13=6 (根)⒎某微机系统的RAM存储器由4个模块组成,每个模块的容量为128KB,若4个模块的地址连续,起始地址为10000H,则每个模块的首末地址是什么?解:根据题意,128KB模块的末地址为217-1=1FFFFH,所以各模块的首末地址分别为:模块1首地址:10000H,末地址:10000H+1FFFFH=2FFFFH模块2首地址:30000H,末地址:30000H+1FFFFH=4FFFFH模块3首地址:50000H,末地址:50000H+1FFFFH=6FFFFH模块4首地址:70000H,末地址:70000H+1FFFFH=8FFFFH⒏设有4K×4位SRAM芯片及8K×8位EPROM芯片,欲与8088 CPU组成16K×8位的存储器空间,请问需要此SRAM及EPROM多少片?它们的片内地址线及片选地址线分别是多少根?假若该16K×8位存储器空间连续,且末地址为FFFFFH,请画出SRAM、EPROM与8088 CPU的连线,并写出各芯片组的地址域。

微机原理课后习题解答

微机原理课后习题解答

微机原理习题第一章 ?绪论习题与答案1.? 把下列二进制数转换成十进制数、十六进制数及BCD码形式。

(2)?? 01011101.101B =解:(2)?????????? 01011101.101B = 93.625D = 5D.AH= (1001 0011.0110 0010 0101)BCD2.? 把下列十进制数转换成二进制数。

(1)?? 100D =(2)?? 1000D =(3)?? 67.21D =解:(1)?? ?100D = 01100100B(3)?? 67.21D = 1000011.0011B3.? 把下列十六进制数转换成十进制数、二进制数。

(1)?????? 2B5H? =(2)?????? 4CD.A5H =解:?????????? (1)????????????? 2B5H? =? 693D = 0010 1011 0101B ?????????? (2)????????????? 4CD.A5H = 1229.6445D = 0100 1100 1101.1010 0101 B 4.? 计算下列各式。

(1)?? A7H+B8H? =(2)?? E4H-A6H? =解:(1)?????????? A7H+B8H? = 15FH(2)?????????? E4H-A6H? = 3EH5.? 写出下列十进制数的原码、反码和补码。

(1)+89(2)-37解:(1)[+89 ] 原码、反码和补码为: 01011001B6.求下列用二进制补码表示的十进制数??? (1)(01001101)补=解:??? (1)(01001101)补= 77D7.请用8位二进制数写出下列字符带奇校验的ASCII码。

??? (1)C:1000011??? (2)O:? 1001111??? (3)M:1001101??? (4)P:? 1010000解:??? (1)C:0 1000011?? (2)O:0 1001111??? (3)M:1 1001101?? (4)P:1 10100008.请用8位二进制数写出下列字符带偶校验的ASCII码。

微机原理习题答案-第六章培训资料

微机原理习题答案-第六章培训资料

微机原理习题答案-第六章培训资料习题61.什么是接口?接口的功能是什么?答:位于主机与外设之间,用来协助完成数据传送和控制任务的逻辑电路称为接口电路,接口电路对输入/输出过程起缓冲和联络作用。

接口的功能是有,数据缓冲功能,联络功能,寻址功能,预处理功能,中断管理功能。

2.计算机对I/O端口编址时通常采用哪两种方法?在8086系统中,用哪种方法进行编址?答:I/O端口和存储器统一编址;I/O端口单独编址。

8086系统采用I/O端口单独编址方式。

3.CPU和输入/输出设备之间传送的信息有哪几类?答: 数据信息,控制信息,与状态信息。

4.简述CPU与外设进行数据交换的几种常用方式.答: 程序控制方式: 特点是依靠程序的控制来实现主机和外设的数据传送,可分为无条件传送方式和查询方式.中断控制方式: 每次输入和输出一个数据,CPU都要检查外设的状态。

直接存储器存取控制方式:cpu不参加数据传送,而是由DMA控制器来实现内存与外设,外设与外设之间的直接传递。

通道方式:可以实现对外围设备的统一管理和外围设备与内存之间的数据传送。

外围处理机方式:由PPU独立于主机工作,减少了CPU控制外设的负担。

5.无条件传送方式适用哪些场合?查询方式原理怎样?主要用在什么场合?答:无条件传送适用于简单的输入/输出设备,CPU可以随时读取或接受状态。

这些信号变化缓慢,当需要采集数据时,无需检查端口,就可以立即采集数据,直接用输入/输出指令完成。

无条件传送方式主要用于控制CPU与低俗I/O接口之间的信息交换。

6.现有一输入设备,其数据端口的地址为FFE0H,并于端口FFE2H提供状态,当其D0位为1时表明输入数据准备好。

请编写采用查询方式进行数据传送的程序段,要求从该设备读取100B并输入到1000H:2000H开始的内存中。

MOV DX, 0FFE2HL1:IN AL, DX 这是习题6的第6题的答案,TEST AL, 01H 这个程序写不出来,建议删这一问JZ L1MOV AX, 1000HMOV DS, AXMOV DX, 2000HMOV CX, 100MOV DX, 0FFE0HL2: IN AL, DXMOV [DX], ALINC BXLOOPN L27.查询式传送方式有什么优缺点?中断方式为什么能弥补查询方式的缺点?答:查询传送方式CPU通过程序不断查询相应设备的状态,状态不符合要求,则CPU需要等待;只有当状态信号符合要求时,CPU才能进行相应的操作。

习题6参考答案-微机原理与接口技术(第2版)-李珍香-清华大学出版社

习题6参考答案-微机原理与接口技术(第2版)-李珍香-清华大学出版社

习题与思考题66.1 参考答案:按总线功能或信号类型来分,有数据总线、地址总线和控制总线。

按总线的层次结构分来为,有:CPU总线:微机系统中速度最快的总线,主要在CPU内部,连接CPU内部部件,在CPU周围的小范围内也分布该总线,提供系统原始的控制和命令。

局部总线:在系统总线和CPU总线之间的一级总线,提供CPU和主板器件之间以及CPU到高速外设之间的快速信息通道。

系统总线:也称为I/O总线,是传统的通过总线扩展卡连接外部设备的总线。

由于速度慢,其功能已经被局部总线替代。

通信总线:也称为外部总线,是微机与微机,微机与外设之间进行通信的总线。

常用的系统总线有:ISA总线、PCI总线、AGP总线、PCI-Express总线常用的外总线有:USB总线、IEEE 1394总线6.2 参考答案:(1)可以简化系统结构,便于系统设计制造。

(2)大大减少连线数目,便于布线,减小体积,提高系统的可靠性。

(3)便于接口设计,所有与总线连接的设备均可采用类似的接口。

(4)便于系统的扩充、更新与灵活配置,易于实现系统模块化。

(5)便于设备的软件设计和故障的诊断、维修等。

6.3参考答案:使用标准总线,不仅可以简化设计,有利于组织大规模专业化生产,缩短研制周期,同时也为灵活配置系统以及系统的升级、改造和维护带来了方便。

总线标准的一般特性规范包含:(1)物理特性定义总线物理形态和结构布局,规定总线的形式(电缆、印制线或接插件)及具体位置等。

(2)机械特性定义总线机械连接特性,其性能包括接插件的类型、形状、尺寸、牢靠等级、数量和次序等。

(3)功能特性定义总线各信号线功能,不同信号实现不同功能。

(4)电气特性定义信号的传递方向、工作电平、负载能力的最大额定值等。

6.4总线位宽:是指总线上能同时传送的数据位数,用bit(位)表示。

总线带宽(总线最大传输率):是指单位时间内总线上可传送的数据量,可用字节数/秒(B/s)或比特数/秒(b/s)表示总线工作频率:是指用于控制总线操作周期的时钟信号频率,所以也叫总线时钟频率,通常以MHz 为单位。

微机原理与接口技术课后习题答案_清华大学出版社

微机原理与接口技术课后习题答案_清华大学出版社

微机原理与接口技术课后部分习题参考答案第一章2. 第3项任务,状态标志位的状态决定转移方向。

3. 程序存储是将要执行的程序的全部指令存储到存储器中,程序控制指程序开始执行后,通过指令流控制数据或计算机,完成设定的任务。

4. 分BIU 总线接口部件和EI执行部件两大部件,其中总线接口部件BIU负责取指令和数据,执行部件EI负责执行指令及运算。

在执行一条指令的同时可以取下一条指令,重叠运行,速度快。

5. 有6个状态标志,分别为进位标志CF、溢出标志OF、零标志ZF、奇偶标志PF、负标志SF、辅助进位标志AF。

3个控制标志分别为中断允许标志IF、单步标志TF、方向标志DF。

标志位的内容可以通过标志位操作指令来操作,例如CLC指令清除进位位,即使CF=0,STC指令使CF=1,CLI指令使IF=0,禁止中断,STI指令使IF=1,允许中断。

还可以通过LAHF指令取来标识寄存器的内容修改后用SAHF指令送回去。

也可以用PUSHF/POPF指令来修改标志寄存器的内容。

6. 实模式下分段靠4个段寄存器实现。

段寄存器中的值就是段地址,当偏移地址为0时的段地址+偏移地址就是该段的起始地址。

物理地址是由段地址左移4位后与偏移地址相加形成的20位地址。

7. 说法不一定正确。

对顺序执行指令的计算机是对的。

对重叠或流水线的计算机就不对了。

例如对8086CPU,由于采用了取指令与执行指令的一次重叠,尽管执行一条指令的总时间并没有变化,但连续执行n条指令时,总的时间会大大缩短,可以简单的比喻成总时间为原时间的二分之一,快了一倍。

8. 引入流水线后,执行一条指令的总时间并没有变化。

9. 高速缓存的目的是提高存储器的速度,进而提高了CPU的速度。

虚拟存储器的目的是为了给程序员或程序一个大的存储或运行空间。

10。

8086采用总线接口部件BIU与执行部件EU分开提高了速度,286将8086的BIU进一步分成3个部件,提高了并行性。

386在286基础上进一步增加成6个逻辑部件,实现多条指令重叠,进一步提高了速度,486采用硬组合逻辑控制器,同时采用内嵌高速缓存,提高速度。

微机原理与接口技术(楼顺天第二版)第六章习题解答

微机原理与接口技术(楼顺天第二版)第六章习题解答

微机原理与接口技术(楼顺天第二版)第六章习题解答微机原理与接口技术(楼顺天第二版)习题解答第6章总线及其形成6.1答:内存储器按其工作方式的不同,可以分为随机存取存储器(简称随机存储器或RAM)和只读存储器(简称ROM)。

随机存储器。

随机存储器允许随机的按任意指定地址向内存单元存入或从该单元取出信息,对任一地址的存取时间都是相同的。

由于信息是通过电信号写入存储器的,所以断电时RAM中的信息就会消失。

计算机工作时使用的程序和数据等都存储在RAM中,如果对程序或数据进行了修改之后,应该将它存储到外存储器中,否则关机后信息将丢失。

通常所说的内存大小就是指RAM 的大小,一般以KB或MB为单位。

只读存储器。

只读存储器是只能读出而不能随意写入信息的存储器。

ROM中的内容是由厂家制造时用特殊方法写入的,或者要利用特殊的写入器才能写入。

当计算机断电后,ROM中的信息不会丢失。

当计算机重新被加电后,其中的信息保持原来的不变,仍可被读出。

ROM适宜存放计算机启动的引导程序、启动后的检测程序、系统最基本的输入输出程序、时钟控制程序以及计算机的系统配置和磁盘参数等重要信息。

6.2 答:存储器的主要技术指标有:存储容量、读写速度、非易失性、可靠性等。

6.3答:在选择存储器芯片时应注意是否与微处理器的总线周期时序匹配。

作为一种保守的估计,在存储器芯片的手册中可以查得最小读出周(R)(Read Cycle Time)和最小写周期期tcyct(W)(Write Cycle Time)。

如果根据计算,微cyc处理器对存储器的读写周期都比存储器芯片手册中的最小读写周期大,那么我们认为该存储器芯片是符合要求的,否则要另选速度更高的存储器芯片。

8086CPU对存储器的读写周期需要4个时钟周期(一个基本的总线周期)。

因此,作为一种保守的工程估计,存储器芯片的最小读出时间应满足如下表达式:t cyc(R)<4T-t da-t D-T其中:T为8086微处理器的时钟周期;t da 为8086微处理器的地址总线延时时间;t D为各种因素引起的总线附加延时。

微机原理第6章习题参考答案

微机原理第6章习题参考答案

第6章习题参考答案1.CPU与外部设备通信为什么要使用接口?答:CPU要与外部设备直接通信会存在以下两个方面的问题:首先是速度问题,CPU的运行速度要比外设的处理速度高得多,通常仅使用简单的一条输入/输出指令是无法完成CPU与外设之间的信息交换的;其次,外设的数据和控制线也不可能与CPU直接相连,如一台打印机不能将其数据线与CPU的管脚相连,键盘或者其他外设也是如此,同时外设的数据格式千差万别,也不可能直接与CPU 连接。

所以,要完成CPU与外部各通信设备的信息交换,就需要接口电路以解决以上问题。

2. I/O接口有什么用途?答:主要由以下几个方面的用途:a完成地址译码或设备选择,使CPU能与某一指定的外部设备通信。

b状态信息的应答,以协调数据传输之前的准备工作。

c进行中断管理,提供中断信号。

d进行数据格式转换,如正负逻辑转换、串行与并行数据转换。

e进行电平转换,如TTL电平与MOS电平间的转换。

f协调速度,如采用锁存、缓冲、驱动等。

h时序控制,提供实时时钟信号。

3.I/O端口有哪两种寻址方式?各有何优缺点?答:I/O端口的寻址方式有存储器映像I/O和I/O映像I/O两种寻址方式。

存储器映像I/O方式是将系统中存储单元和I/O端口的地址统一编址,这样一个I/O端口地址就是一个存储单元地址,在硬件上没有区别,对I/O端口的访问与存储器的访问相同。

其缺点是占用了储存器的地址空间,同时由于存储器地址和I/O端口在指令形式上没有区别,增加了程序设计的难度。

其优点是不需要专门为I/O端口设计电路,可与存储器地址访问硬件混合设计。

另一个优点是,由于I/O端口和存储器地址是相同的形式,就可以直接使用与存储器相同的指令,这将会丰富对I/O端口的操作指令。

与存储器映像I/O相反,I/O映像I/O就必须为I/O端口设计专门的硬件电路,其端口地址也是独立于存储器,也有专门的输入/输出指令等其优缺点与存储器映像I/O正好相反。

微机原理课后习题参考答案

微机原理课后习题参考答案

上册第一章P91.1 微处理器、微型计算机、微型计算机系统的区别是什么?答:(1)微型计算机中的运算器和控制器合起来称为中央处理器,也就是微处理器,又称微处理机。

(2)微型计算机是由cpu、主存储器、输入/输出接口电路和系统总线构成。

(3)微型计算机系统由微型计算机、输入/输出设备、外存储器、系统软件、电源、面板和机架等组成。

1.2微型计算机由哪些基本部分构成?微型计算机是由cpu、主存储器、输入/输出接口电路和系统总线构成。

1.4 说明CISC、RISC及其主要区别。

CISC是指复杂指令系统计算机,RISC是指精简指令系统计算机。

他们的区别在于不同的CPU设计理念和方法。

RISC指令系统仅包含哪些必要的经常使用的指令,不经常使用的功能,往往通过基本指令组合来完成。

完成特殊功能时效率比较低。

CISC的指令系统比较丰富,一些特殊功能都有相应的指令。

处理特殊任务效率较高。

RISC对存储器操作相对简单,使对存储器访问的控制简化;而CISC机器的存储器操作指令较多,对存储器的访问有更多的指令直接操作,要求的控制逻辑比较复杂。

RISC在一条指令执行的适当地方可以响应中断;而CISC机器是在一条指令执行结束后响应中断。

RISC CPU的电路构成比CISC CPU简单,因此面积小、功耗也更低;CISC电路CPU电路复杂,同水平比RISC CPU面积大、功耗大。

RISC CPU结构比较简单,布局紧凑规整,设计周期较短,比较容易采用一些并行计算的最新技术;CISC CPU结构复杂,设计周期长,技术更新难度大。

从使用角度看,RISC微处理器结构简单,指令规整,性能容易把握,易学易用;CISC微处理器结构复杂,功能强大,实现特殊功能容易。

第二章2.1 8086CPU 由哪两大部分组成?简述它们的主要功能。

总线接口部件BIU跟执行部件EU。

总线接口部件(BIU)是联系微处理器内部与外部的重要通道,其主要功能是负责微处理器内部与外部的信息传递。

微机原理习题参考答案(黄冰版)

微机原理习题参考答案(黄冰版)

微机原理与接口技术第一章绪论1.2①[+65]10=01000001B [+65]补=[+65]原=01000001B②[+115]10=01110011B [+115]补=[+115]原=01110011B③[-65]10=11000001B [-65]补=10111111B[-115]10=11110011B [-115]补=10001101B方法:正数的原码、反码、补码相同负数的补码在原码的基础上除过符号外,先取反,再加1.1.3①[+120]10=0000000001111000B [+120]补=[+120]原=000000001111000B②[-120]10补③[+230]10=0000000011100110B [+230]补=[+230]原=0000000011100110B④[-230]10补方法:与上题相同,只是扩展了位数,用16位表示1.4①55 〔00110111〕②89 〔01011001〕③-115 〔11110011〕④-7总结:知道补码,求原码<或数值>的方法:如果是正数,直接转换.如果是负数用以下三种方法:①根据[[X]补]补=X 求得例如10001101 各位取反11110010 加一11110011转换-115②求补的逆运算例如:11111001 先减一11111000 各位取反10000111 转换-7③-<模+补码转换结果>例如:10001101转换-13模+补码转换结果128-13=115 加负号–1151.9本题问题不太明确例如:如果手边有手册或是知道产品的型号,就可从手册中查到微处理器的处理位数.也可以根据系统总线得知.因为系统总线是公共的数据通道,表现为数据传输位数和总线工作时钟频率.第二章intel 8086 微处理器2.2 75422H 字节单元:9CH 字单元:249CH75424H 字节单元:5DH 字单元:0E65Dh我们可以看到不同段的段地址,在不同的偏移地址下,可以对应相同的物理地址,也就相同的存储空间.说明在分配段时是重叠的.2.4 每个段区最大可占用64KB的地址范围,因为寄存器都是16位的,216B=64KB.不允许重叠,则最多可分16个段区,因为8086CPU有20条地址线,寻址范围1MB,1MB/64KB=16个.2.7①源操作数是立即数寻址,AX=1200H②源操作数是寄存器寻址,AX=BX=0100H③源操作数是直接寻址,将2000H×10H+1200H=21200H和21201H的内容取出,赋给AX=4C2AH④源操作数是寄存器间接寻址,将2000H×10H+0100H=20100H和20101H的内容取出,赋给AX=3412H⑤源操作数是寄存器相对寻址,将2000H×10H+0100H+1100H=21200H和21201H的内容取出,赋给AX=4C2AH⑥源操作数是基址变址寻址,将2000H×10H+0100H+0002H=201002和201003H的内容取出,赋给AX=7856H⑦源操作数是基址变址相对寻址, 将2000H×10H+0100H+0002H+1100H=21202H和21203H的的内容取出,赋给AX=65B7H2.92.102.110110 0010 1010 0000B+ 1001 1101 0110 0000B1 0000 0000 0000 0000B <0000H> AF=0,SF=0,ZF=1,CF=1,OF=0,PF=10110 0010 1010 0000B+ 0100 0011 0010 0001B1010 0101 1100 0001B <0A5C1H> AF=0,SF=1,ZF=0,CF=0,OF=1,PF=0 2.120001 0010 0011 0100B-0100 1010 1110 0000B [1011 0101 0010 0000B]补码形式1100 0111 0101 0100B〔0C754H〕AF=0 SF=1 ZF=0 CF=1 OF=0 PF=01001 0000 1001 0000B-0100 1010 1110 0000B [1011 0101 0010 0000B]补码形式0100 0101 1011 0000B <45B0H> AF=0 SF=0 ZF=0 CF=0 OF=1 PF=12.13①BX=009AH②BX=0061H③BX=00FBH④BX=001CH⑤BX=0000H⑥BX=00E3H <本条语句只对标志位有影响,不存贮结果>2.14BX=0110 1101 0001 0110=6D16HBX=0000 0000 1101 1010=00DAH2.15①DX=0000 0000 1011 1001 DX= 0000 0000 0101 1100=005CH②DX=0000 0000 1011 1001 DX= 0000 0000 0001 0111=0017H③DX=0000 0000 1011 1001 DX= 0000 0101 1100 1000=05C8H④DL= 1011 1001 DX=0000 0000 0111 0010=0072H⑤DX=0000 0000 1011 1001 DX=0010 0000 0001 0111=2017H⑥DL= 1011 1001DX= 0000 0000 11001101=00CDH⑦DH=0000 0000 DX=0000 0000 1011 1001=00B9H⑧DX=0000 0000 1011 1001DX=0000010111001100=05CCH CF=0⑨DL= 1011 1001DL=0000 0000 11011100=00DCH CF=12.16方法一: 循环移位方法二:逻辑右移MOV CL,04H MOV CL,04HROL AL,CL SHR AL,CL第三章宏汇编语言程序设计3.11〕AX=0001H;2〕AX=0002H3〕CX=0014H4〕DX=0028H5〕CX=0001H3.21〕ARRAY DB 56H,78,0B3H,1002〕DA TA DW 2965H,45H,2965,0A6H3〕ALPHA DW 0C656H,1278H4〕BETA DB 2 DUP〔23〕,5 DUP〔‘A’〕,10 DUP〔1,2〕,20 DUP〔?〕5〕STRING DB ‘THIS IS A EXAMPE’6〕COUNT EQU 1003.3<1> <2>3.4DA TA_SEG SEGMENTDA TA1 DB ‘DATA SEG,MENT ’ DA TA2 DB 72,65,-10 DA TA3 DB 109,98,21,40 DA TA4 DB 10 DUP<0> DA TA5 DB ‘12345’DA TA6 DW 7,9,298,1967 DA TA7 DW 785,13475DA TA8 DW DB <$-DA TA6>-<DA TA6-DA TA1> DA TA_SEG ENDS 3.51〕 MOV BX, OFFSET BUF12> MOV CL BYTE PTR [BUF2+2] 3> MOV [BUF3+9], A6H4> COUNT EQU BUF3-BUF1 3.8DA TA_SEG SEGMENTAPPAY DB 10 DUP <29H> ALPHA DB -25,4,10,76,3 BUFFER DB 100 DUP<?> DA TA_SEG ENDS 3.9DA TA_SEG SEGMENTBCD1 DB ?,? BCD2 DB ? DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG,ES:DA TA_SEG START: MOV AX,DA TA_SEGMOV DS,AXMOV DS,AXMOV CL, 04HMOV SI, OFFSET BCD1MOV AL, [SI]SAL AL,CLMOV BL,[SI+1]AND BL,0FHADD AL,BLMOV BCD2,ALMOV AH,4CHINT 21HCODE ENDSEND START3.111> MOV CH, 32H CH=32H2> ADD CH, 2AH CH=5CH3> SHL CH, 1 CH=0B8H4> MOV [BX][NUM+9],CH CH=0B8H3.12DA TA_SEG SEGMENTX DB ?Y DB ?W DB ?Z DB ?R DB ?DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG,ES:DA TA_SEG START: MOV AX,DA TA_SEGMOV DS,AXMOV DS,AXMOV AL, WSUB AL, XCBWIDIV 0AHMOV R, AHIMUL YIMUL AXMOV AH, 4CHINT 21HCODE ENDSEND START3.14DA TA_SEG SEGMENTSTR1 DB 'THIS IS A DOG'STR2 DB 'THIS IS A COCK'COUNT DB $-STR2NUM DB ?DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG,ES:DA TA_SEG START: MOV AX,DATA_SEGMOV DS,AXMOV DS,AXMOV ES, AXMOV CH,0MOV CL,COUNTCLDMOV SI,OFFSET STR1MOV DI,OFFSET STR2REPZ CMPSBAND SI,000FHMOV AX,SIMOV NUM, ALCODE ENDSEND START3.16DATA SEGMENTSRCBUF DB 80 DUP〔?〕DSTBUF DB 80 DUP〔?〕DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA START:MOV AX,DA TAMOV DS, AXMOV SI, OFFSET SRCBUFMOV DI, OFFSET DSTBUFMOV CX, 80LOP1:MOV AL,[SI]INC SICMP AL,ODHJE NEXTMOV [DI],ALINC DINEXT:LOOP LOP1MOV AH,4CHINT 21HCODE ENDSEND START3.17DATA SEGMENTBUF DB n DUP <?>SUM DB ODATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV CX, nMOV SI, OFFSET BUFLOP1: MOV AL, [SI]INC SICMP AL,OJGE NEXTINC SUMNEXT: LOOP LOP1MOV AH, 4CHINT 21HCODE ENDSEND STARTDATA SEGMENTBUF DW n DUP<?>BUF1 DW n DUP<?>BUF2 DW n DUP<?>DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TASTART: MOV AX, DATAMOV DS, AXMOV CX, nMOV SI, OFFSET BUFMOV DI, OFFSET BUF1MOV BX, OFFSET BUF2 LOP1: MOV AX, [SI]INC SIINC SICMP AX, 0000HJGE NEXT1MOV [BX], AXADD BX, 02HJMP LOP2NEXT1: MOV [DI], AXADD DI, 2LOP2: LOOP LOP1MOV AH, 4CHINT 21HCODE ENDSEND START3.19STACK SEGMENT STACKDB 256 DUP〔?〕STACK ENDSDATA SEGMENTBUF DB ‘This is a string’,’$’DA TA ENDSCODE SEGMENTASSUME CS:CODE. DS:DA TA; SS:STACKSTART: MOV AX, DA TAMOV DS, AXMOV SI,OFFSET BUF TACKCHAR: MOV DL,[SI]CMP DL,’$’JZ DONECMP DL,’a’NEXTSUB DL,20HNEXT:MOV AH,02HINT 21HINC SIMP TAKECHARDONE: MOV AH,4CHINT 21HCODE ENDSEND START3.20DA TA_SEG SEGMENTDA TX DB ?DA TY DB ?DA TZ DB ?DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEG START: MOV AX,DA TA_SEGMOV DS,AXMOV AL,DATXMOV BL,DATYCMP AL,BLJS NEXTMOV DATZ,ALJMP DONENEXT: MOV DA TZ,BLDONE: MOV AH,4CHINT 21HCODE ENDSEND START3.21DATA_SEG SEGMENTDATA DB ?DATB DB ?DATC DB ?DATD DB ?DATA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEGSTART: MOV AX,DA TA_SEGMOV DS,AXCMP DA TA,0JZ NEXTCMP DATB,0JZ NEXTCMP DATC,0JZ NEXTMOV AL,DA TAADD AL,DA TBADC AL,DA TCMOV DATD,ALJMP DONENEXT: MOV DA TA,0MOV DATB,0MOV DATC,0DONE: MOV AH,4CHINT 21HCODE ENDSEND START3.22 程序段是将十六进制数的ASSII码转化为十六进制数.本例是将大写字母A的ASCII 变为十六进制数,将结果存入字符变量HEXNUM中.HEXNUM变量中原来的内容未知,程序段执行后的内容是字符A的十六进制数0A3.24DA TA_SEG SEGMENTN=10DA TA1 DB N DUP<?>DA TA2 DB N DUP<?>ADR1 DW ?ADR2 DW ?DATA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEGSTART: MOV AX,DA TA_SEGMOV DS,AXLEA SI, DA TA1LEA DI,DA TA2MOV CX, NLOP1: MOV AH,[SI]CMP AH,[DI]JNZ NOTEQUINC SIINC DILOOP LOP1MOV AH,0FFHSAHFJMP DONENOTEQU: MOV AH,0SAHFMOV ADR1,[SI]MOV ADR2,[DI]DONE:MOV AH,4CHINT 21HCODE ENDSEND START3.26DA TA_SEG SEGMENTCOUNT=100BUF DB COUNT NUP<?>MAX DB ?DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEGSTART: MOV AX, DA TA_SEGMOV DS, AXMOV SI, OFFSET BUFMOV CX,COUNTLOP1:MOV AH,1INT 21HMOV [SI], ALINC SILOOP LOP1MOV SI,OFFSET BUFMOV CX,COUNTMOV AL, [SI]LOP2:CMP AL, [SI+1]JA NEXT2XCHG AL,[SI+1]INC SINEXT2:LOOP LOP2MOV MAX,ALMOV AH, 4CHINT 21HCODE ENDSEND START3.27DA TA_SEG SEGMENTBUF DB 10 DUP<?>STR1 DB ‘Do you want input number<y/n>?’,0DH,0AH,’$’STR2 DB ‘Please input the numbers’ ,0DH,0AH,’$’MAX DB ?MIN DB ?DA TA_SEG ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA_SEGSTART: MOV AX, DA TA_SEGMOV DS, AXMOV DX,OFFSET STR1MOV AH,09HINT 21HMOV DX,OFFSET STR2MOV AH,09HINT 21HMOV SI, OFFSET BUFMOV CX,10LOP1:MOV AH,1INT 21HMOV [SI], ALINC SILOOP LOP1MOV SI,OFFSET BUFMOV CX,9MOV AL, [SI]LOP2:CMP AL, [SI+1]JA NEXT2XCHG AL,[SI+1]INC SINEXT2:LOOP LOP2MOV MAX,ALMOV SI,OFFSET BUFMOV CX,9MOV AL, [SI]LOP3:CMP AL, [SI+1]NEXT3XCHG AL,[SI+1]INC SINEXT3:LOOP LOP3MOV MIN,ALMOV AH,4CHINT 21HCODE ENDSEND START3.28DA TA SEGMENTBUFF DB 10 DUP<?>DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DA TA START: MOV AX,DATAMOV DS,AXMOV SI , OFFSET BUFFMOV CX,0AHLOP1:MOV AH,7INT 21HCMP AL,'$'JZ DONENEXT1 :CMP AL,'a'JGE NEXT2CMP AL,'z'JGE DONEJMP SHOWNEXT2:SUB AL,20HSHOW:MOV DL,ALMOV AH,2INT 21HLOOP LOP1DONE:MOV AH,4CHINT 21HCODE ENDSEND START3.29DA TA SEGMENTSTRBUF DB 'ABCDEFGIJKLMN$OPQRSTUVWSXYZ'COUNT DB $-STRBUFADRBUF DB ?DA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DA TAMOV DS, AXLEA SI, STRBUFMOV CH,0MOV CL,COUNTLOP1: MOV AL, [SI]CMP AL,'$'JZ DONEINC SILOOP LOP1DONE: MOV ADRBUF,ALMOV AH,4CHINT 21HCODE ENDSEND START3.30STACK SEGMENT STACKDW 256 DUP<?>TOP LABEL WORDSTACK ENDSDA TA SEGMENTBUFF DB 1,2,3,4,5,6,7,8SUM DW 0000HDA TA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA,SS:STACKSTART: MOV AX,DA TAMOV DS,AXMOV AX,STACKMOV SS,AXMOV SP,OFFSET TOPMOV CH,0MOV CL,8LOP1:MOV SI,OFFSET BUFFMOV AX,OFFSET SUMPUSH AXMOV AH,0MOV AL, [SI]PUSH AXCALL FAR PTR FACTMOV DX,SUMADD SUM,DXINC SILOOP LOP1MOV AH,4CHINT 21HCODE ENDSCODES SEGMENTASSUME CS:CODES FACT PROC FARPUSH BPMOV BP,SPPUSH BXPUSH AXMOV BX,[BP+8]MOV AX,[BP+6]CMP AX,0JE DONEPUSH BXDEC AXPUSH AXCALL FACTMOV BX,[BP+8]MOV AX,[BX]MUL WORD PTR [BP+6]JMP RETURNDONE: MOV AX,01H RETURN:MOV [BX],AXPOP AXPOP BXPOP BPRET 4FACT ENDPCODES ENDSEND START第五章半导体存储器5.11> Intel 1024<1K ×1位> :118128⨯⨯=1024〔片〕2〕 Intel 2114〔1K ×4位〕:418128⨯⨯=256〔片〕3〕 Intel 2128〔2K ×8位〕:828128⨯⨯=64〔片〕4〕 Intel 2167〔16K ×1位〕:1648128⨯⨯=16〔片〕 5.21〕11816⨯⨯K K =128<片> 2〕1K=210 ⇒ 有十条用作片内寻址3〕16K=214⇒ 14-10=4,有四条用作片间寻址6.5答:1〕程序控制方式2〕中断控制方式3〕直接存储访问〔DMA 〕方式区别:程序控制方式和中断控制方式都是采用软件形式,实现CPU 与外设的数据传送,都要占用CPU 的宝贵时间.DMA 方式则是一种由硬件实现的数据传送方式,无需占用CPU 的时间就可实现数据高速传送.6.86.11INPUT PROC NEARMOV CX,80HLEA DI,BUFFPOLL:IN AL,29H TEST AL,01HJNZ POLLIN AL ,28H第七章中断系统7.5中断向量表<SS>=0300H<IP>=0040H<CS>=0100H<FLAGS>=0040H7.6方法一:直接置入法PUSH DSMOV AX,0MOV DS,AXMOV BX,36LEA AX,INT_POUTMOV [BX],AXMOV AX,SEG INT_POUTMOV[BX+2],AXPOP DS方法二:dos功能调用PUSH DSMOV AX,SEG INT_OUTMOV DS,AXLEA DX,INT_OUTMOV AX,2509HINT 21HPOP DS7.9主程序段: PUSH DSMOV AX, SEG TRANINTMOV DS,AXLEA DX, TRANINTMOV AX,2579HINT 21HPOP DSMOV SI,OFFSET ASCNUMMOV CX,NUMBMOV DI,OFFSET BCDMMTRANINT: MOV AL,[SI]AND AL,0FHMOV [DI],ALINC DIINC SIIRET7.10MOV DX, 02C0HMOV AL,1BHOUT DX,AL ;ICW1MOV DX, 02C1HMOV AL,10HOUT DX,AL ;ICW2MOV DX, 02C1HMOV AL,0DHOUT DX,AL ;ICW47.11 此题根据OCW3的设置来决定…..….. 以上包括初始化8259的部分IN AL,51HMOV [REG-ARR],AL ;读IMR的内容并存储IN AL,50HMOV AL,00001010B ;读取OCW3的内容,并进行设置OUT 50H,ALIN AL,50HMOV [REG-ARR+1] ,AL ;读取IRR的内容并存储IN AL,50H ;读取OCW3的内容,并进行设置MOV AL,00001011BOUT 50H,ALIN AL,50HMOV [REG-ARR+2],AL ;读取ISR的内容并存储…..7.12设置中断向量表:PUSH DSMOV AX,0 ;中断向量表段地址送入DSMOV DS,AXMOV BX,3500H ;中断向量地址送入BXMOV AX,OFFSET IRQ0 ;中断向量填入中断向量表MOV [BX],AXMOV AX,SEG IRQ0MOV [BX+2],AXPOP DS<其他四个中断向量地址分别设为4080H、4505H、5540H、6000H,向量名改为相应的即可,在此省略>初始化8259A:MOV AL,13H ;ICW1OUT 20H,ALMOV AL,4BH ;ICW2〔IRQ0的中断类型码为4BH〕OUT 21H,ALMOV AL,01H ;ICW4OUT 21H,AL7.16DA TA SEGMENTBUF DB 256 DUP<?>DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART:,MOV DX,DATAMOV DS,AXPUSH DSMOV AX,SEG INTPRMOV DS,AXLEA DX,INTPRMOV AX,250AHINT 21HPOP DS ;用dos功能调用,设置中断向量MOV DX,21HIN AL,DXAND AL,0FBH ;开放IRQ2中断OUT DX,ALSTIHLTMOV DX,21HIN AL,DX0R AL,04HOUT DX,AL ;关闭IRQ2中断MOV AH,4CHINT 21H;中断服务程序INTPR: PUSH CXMOV CX,8MOV DL,0MOV DX,200HIN AL,DXMOV BL,ALLOP: RCL BL,1JCZ NEXTLOOP LOP ;计算1的个数NEXT: INC DLCMP DL MOD 2,0 ;判断1的个数是奇数还是偶数JNZ DISPMOV DX,201HOUT DX,ALDISP:MOV DL,’N’MOV AH,02HINT 21HMOV AL,20HOUT 20H,AL ;中断结束IRET第八章常用接口芯片8.1①MOV AL,10011001MOV DX,0063HOUT DX,AL②MOV AL,11000000MOV DX,0063HOUT DX,AL③MOV AL,10110110MOV DX,0063HOUT DX,AL8.2 A9 A8 A7 A6 A5 A4 A3 A2 A1 A00 0 0 1 1 ×××0 0 A口地址060H0 0 0 1 1 ×××0 1 B口地址061H0 0 0 1 1 ××× 1 0 C口地址062H0 0 0 1 1 ××× 1 1 控制字地址063H 8.3注意:下面是课件P95页题目和图形,其中的口地址可通过一个138译码器获得主程序段:MOV CX,100;MOV SI,OFFSET BUFF;MOV AL,10000001B;控制字,A组方式0,OUT 0EFH,AL;PA口输出,PC口高4位输出,低4位输入MOV AL,00001100B;置PC6为1OUT 0EFH,AL;LOP:IN AL,0EEH;读打印机状态TESTAL,04H;测试PC2〔D2〕位JNZ LOP;打印机忙,继续测试MOV AL,[SI];打印机闲,输出1个字符OUT 0ECH,AL;MOV AL,00001100B;使PC6产生选通脉冲OUT 0EFH,AL;INC AL;OUT 0EFH,AL;INC SI;修改地址指针LOOP LOP8.6<1>注意:本题图只是示意的将地址按照要求画出来了,其余的引脚没有画出计数器0工作于方式3,2000000/10000 =200〔H〕为初值N计数器1工作于方式2,N=10000〔H〕计数器2工作于方式2,N=10<H>MOV AL,00010111B;计数器0工作于方式3,读低MOV DX,0DODFHOUT DX,AL;MOV AL,200H;MOV DX, 0DODCHOUT DX,ALMOV AL,01010101B;计数器1工作于方式2,读低,MOV DX,0DODFHOUT DX,AL;MOV AX,10000H;MOV DX,0DODDHOUT DX,ALMOV AL,AHMOV DX,ALMOV AL,10010101B;计数器2工作于方式2,读低,MOV DX,0DODFHOUT DX,AL;MOV DX ,0ODODCMOV AL,10HOUT DX,AL<2>计数器0工作在主程序段:MOV AL,00010111B;置计数器0方式,MOV DX,0D0DFHOUT DX,AL;MOV AL,40H;装初值MOV DX,0D0DCHOUT DX,AL;MOV AL,00H;关8255的PC0OUT 63H,AL;MOV AL,01010110;置计数器1方式MOV AL,40H;装初值MOV DX,0D0DDHOUT DX,AL;STI;LOP:HLT;JMP LOP;中断服务程序:INTP:MOV AL,01H;开8255的PC0OUT 63H,AL;CALL DLY5S;调5S延迟子程序MOV AL,01H;关8255的PC0OUT 63H,AL;IRET;8.7在时钟频率是2MHZ的条件下一个计数器可以完成的最大定时是65536/5/1000000可以通过级连实现,参考课件的内容.8.9START:,MOV DX,DATAMOV DS,AXPUSH DSMOV AX,SEG INTPRMOV DS,AXLEA DX,INTPRMOV AX,250AHINT 21HPOP DS ;中断向量表的设置,用dos功能调用设置MOV AL,00011000B<14h>;置计数器0方式,方式四,低八位,二进制计数MOV DX,0233HOUT DX,AL;MOVAL,00H;装初值MOV DX,0230HOUT DX,AL;MOV AL,01011000<54h>;置计数器1方式, 方式四,低八位,二进制计数MOV DX,0233HOUT DX,ALMOV AL,40H<任意允许值>;装初值MOV DX,0231HOUT DX,AL;IN AL,21HAND AL.0FBH ;开放IRQ2中断STI;LOP:HLT;JMP LOP;8.13延时时间是0.1/200=0.5msAUB:MOV DX,PORT0MOV AL,00HLOP1:OUT DX,ALCALL DL Y0.5MSINC ALCMP AL,0FFHJZ LOP2JMP LOP1 ;输出三角波向上的部分LOP2: OUT DX,ALCALL DL Y0.5MSDEC ALCMP AL,00HJZ LOP1JMP LOP1 ;输出三角波向下的部分RETDL Y0.5MS: MOV CX,DA TA1LOP3:NOPJMP LOP3RET ;延迟0.5秒8.16DA TA SEGMENTBUF DB ?DA TA ENDS ;数据段定义CODE SEGMENTASSUME:CS:CODE,DS:DATASTART:,MOV DX,DATAMOV DS,AXPUSH DSMOV AX,SEG INTPRMOV DS,AXLEA DX,INTPRMOV AX,250AHINT 21HPOP DS ;以上为程序初始化,不包括8259的初始部分MOV DX,021HIN AL,DXAND AL,11111011OUT DX,AL ;开放IRQ2中断STIMOV AL,05HMOV DX,084HOUT DX,AL ;启动0809HLT ;等待中断IN AL,21HOR AL,04HOUT 21H,21H ;关8259中断CLI ;关CPU中断MOV AH,4CHINT 21H;中断服务程序ADINT PROC NEARIN AL,DXMOV BUF,AL MOV AL,20HOUT 20H, ALIRETADINT ENDPCODE ENDS END START。

微机原理第五版6-10章习题解答

微机原理第五版6-10章习题解答

第6章习题解答(P271)⒊依照编程方式的不同,ROM分为哪几类各有何特点(重点说明E2PROM与FLASH存储器的区别)解:依照编程方式的不同,ROM分为三类:⑴掩膜型ROM(ROM),其特点是:用户将要写入芯片的数据提供给芯片生产商,在生产该芯片的最后一道掩膜工艺时,将数据写入芯片,用户以后只能读出不能写入;⑵现场可编程ROM(PROM),其特点是:由于内部器件的一次性编程,不可再生特性,所以用户只可在现场一次性对芯片编程,不能更改;⑶可改写的ROM(EPROM),其特点是:用户可多次对其编程。

其中用紫外线擦除再用电编程的EPROM,必须从用户板上拆下后用紫外线照射擦除,再用专用编程器对其进行改写,使用不方便,目前很少使用;可用电擦除的E2PROM,可在用户板上用电信号对其进行字节或全部擦除和改写,使用很方便;FLASH是一种新型的电擦除EPROM,它具有E2PROM 的所有特性,还具有集成度高,速度快,成本低等特点,是目前使用最广泛的ROM存储器。

⒍对下列RAM芯片组排列,各需要多少个RAM芯片多少个芯片组多少根片内地址线若和8088 CPU相连,则又有多少根片选地址线(1) 1K×4位芯片组成16K×8位存储空间;解:当用单片容量为1K×4的RAM组成总容量为16K×8的存储器时:①需要的总芯片数为(16×1024/1×1024)×(8/4)=32(片)②需要的芯片组数为16×1024/1×1024=16 (组)③片内地址线数为log2(210)=10(根)④芯片组选择地址线数为log2(16×210)-10=4 (根)(2) 8K×8位芯片组成512K×8位存储空间。

解:当用单片容量为8K×8位的RAM组成总容量为512K×8的存储器时:①需要的总芯片数为(512×1024/8×1024)×(8/8)=64(片)②需要的芯片组数为512×1024/8×1024=64 (组)③片内地址线数为 log2(8×210)=13(根)④芯片组选择地址线数为log2(512×210)-13=6 (根)⒎某微机系统的RAM存储器由4个模块组成,每个模块的容量为128KB,若4个模块的地址连续,起始地址为10000H,则每个模块的首末地址是什么解:根据题意,128KB模块的末地址为217-1=1FFFFH,所以各模块的首末地址分别为:模块1首地址:10000H,末地址:10000H+1FFFFH=2FFFFH模块2首地址:30000H,末地址:30000H+1FFFFH=4FFFFH模块3首地址:50000H,末地址:50000H+1FFFFH=6FFFFH模块4首地址:70000H,末地址:70000H+1FFFFH=8FFFFH⒏设有4K×4位SRAM芯片及8K×8位EPROM芯片,欲与8088 CPU组成16K×8位的存储器空间,请问需要此SRAM 及EPROM多少片它们的片内地址线及片选地址线分别是多少根假若该16K×8位存储器空间连续,且末地址为FFFFFH,请画出SRAM、EPROM与8088 CPU的连线,并写出各芯片组的地址域。

第六章 存储器系统 微机原理 第2版 课后答案

第六章  存储器系统 微机原理 第2版 课后答案

第六章存储器系统本章主要讨论内存储器系统,在介绍三类典型的半导体存储器芯片的结构原理与工作特性的基础上,着重讲述半导体存储器芯片与微处理器的接口技术。

6.1 重点与难点本章的学习重点是8088的存储器组织;存储芯片的片选方法(全译码、部分译码、线选);存储器的扩展方法(位扩展、字节容量扩展)。

主要掌握的知识要点如下:6.1.1 半导体存储器的基本知识1.SRAM、DRAM、EPROM和ROM的区别RAM的特点是存储器中信息能读能写,且对存储器中任一存储单元进行读写操作所需时间基本上是一样的,RAM中信息在关机后立即消失。

根据是否采用刷新技术,又可分为静态RAM(SRAM)和动态RAM(DRAM)两种。

SRAM是利用半导体触发器的两个稳定状态表示“1”和“0”;DRAM是利用MOS管的栅极对其衬间的分布电容来保存信息,以存储电荷的多少,即电容端电压的高低来表示“1”和“0”;ROM的特点是用户在使用时只能读出其中信息,不能修改和写入新的信息;EPROM可由用户自行写入程序和数据,写入后的内容可由紫外线照射擦除,然后再重新写入新的内容,EPROM可多次擦除,多次写入。

一般工作条件下,EPROM 是只读的。

2.导体存储器芯片的主要性能指标(1)存储容量:存储容量是指存储器可以容纳的二进制信息量,以存储单元的总位数表示,通常也用存储器的地址寄存器的编址数与存储字位数的乘积来表示。

(2)存储速度:有关存储器的存储速度主要有两个时间参数:TA:访问时间(Access Time),从启动一次存储器操作,到完成该操作所经历的时间。

TMC:存储周期(Memory Cycle),启动两次独立的存储器操作之间所需的最小时间间隔。

(3)存储器的可靠性:用MTBF—平均故障间隔时间(Mean Time Between Failures)来衡量。

MTBF越长,可靠性越高。

(4)性能/价格比:是一个综合性指标,性能主要包括存储容量、存储速度和可靠性。

微机原理、汇编与接口技术习题答案 第6章习题答案

微机原理、汇编与接口技术习题答案 第6章习题答案

微机原理、汇编与接口技术第六章习题答案6.16.26.36.4stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codepush dssub ax, axpush axCALL I6116 ;调用写入6116子程序MOV AH, 2 ;回车换行MOV DL, 0DHINT 21HMOV DL, 0AHINT 21HCALL O6116 ;调用读出6116子程序retstart endp;写入6116:将键入字符的ASCII码写入6116I6116 PROCMOV BL, 0 ;定义页地址码(16个地址为一页)MOV CX, 128 ;定义页数LOP1: PUSH CXMOV DX, 380H ;将页地址从74LS273输出MOV AL, BLOUT DX, ALMOV CX, 16 ;定义页内单元数MOV DX, 390H ;将键入数写入16个单元LOP2: MOV AH, 1INT 21HOUT DX, ALINC DXLOOP LOP2INC BL ;换页POP CXLOOP LOP1 ;页数未满换页重新写入16个单元RETI6116 ENDP;读出6116:将写入6116的数据读出送显示O6116 PROCMOV BL, 0MOV CX, 128LOP3 PUSH CXMOV DX, 390HMOV AL, BLOUT DX, ALMOV CX, 16MOV DX 380H ;将16个单元的数据送显示LOP4: IN AL, DXPUSH DXMOV DL, AL ;将6116中读出的ASCII码送DLMOV AH, 2 ;2号功能调用显示DL中的字符INT 21HPOP DXINC DXLOOP LOP4INC BLPOP CXLOOP LOP3RETO6116 ENDPcode endsend start6.5stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codepush dssub ax, axpush axMOV AH, 2 ;用2号功能调用输出字符,调用号送AHMOV CX, 100 ;字符个数送计数器MOV DX, 380HWAIT0: IN AL, DX ;从244读入TEST AL, 80H ;测试状态位是否为0JNZ WAIT0 ;不为0,等待继续测试状态WAIT1: IN AL, DX ;状态为0,继续读入TEST AL, 80H ;测试状态是否为1JZ WAIT1 ;不为1,等待继续测试状态IN AL, DX ;状态为1,读入数据即ASCII码AND AL, 7FH ;去掉状态位MOV DL, AL ;ASCII码送DL,输出字符INT 21HLOOP WAIT0-3 ;跳到给DX赋值380H的MOV指令,该指令为3字节retstart endpcode endsend start6.6stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentOBUF DB 4 DUP(0)data endscode segmentbegin proc farassume ss: stack, cs: code, ds: datapush dssub ax,axpush axmov ax,datamov ds,axMOV BX,0FFSET OBUF+3 ;建立指针MOV BYTE PTR [BX],'$';存字符串结束符$MOV DX,380H ;读入二进制数IN AL,DXMOV CH,10AG: MOV AH,0 ;无符号数扩展为16位DIV CHADD AH,30H ;转换为ASCII码DEC BXMOV [BX],AH ;存入输出数据区中OR AL,ALJNZ AGMOV DX,BXMOV AH,9INT 21Hretbegin endpcode endsend begin6.7用除2取余法将BCD数转换为二进制数的程序如下:stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentIBUF DB 4, 0, 4 dup(0)data endscode segmentstart proc farassume ss: stack, cs: code, ds: datapush dssub ax,axpush axmov ax,datamov ds,axMOV DX,OFFSET IBUF ;键入十进制数MOV AH,10INT 21HMOV DX,0 ;将键入数以压缩BCD数形式放AX中MOV CH,IBUF+1 ;将键入数的个数送计数器CH中MOV CL,4MOV BX,2AGAIN1: AND IBUF[BX],0FH ;将数据区中的ASCII码转换为BCD数SHL AX,CL ;将BCD数左移1位OR DL,IBUF[BX] ;将数据区中的1位BCD放入DX的最低4位INC BXDEC CHJNZ AGAIN1MOV CX,8 ;用除2取余法将DX中的压缩BCD数转换为二进制数AGAIN2: SHR DX,1RCR AL,1MOV AH,DLAND AH,88HSHR AH,1SHR AH,1SUB DL,AHSHR AH,1SUB DL,AHLOOP AGAIN2MOV DX,380H ;二进制数从74LS273输出OUT DX,ALretstart endpcode endsend start用(百位⨯10+十位)⨯10+个位的方法将BCD数转换为二进制数的程序段如下:MOV CL,IBUF+1 ;将键入数的个数送计数器CX中MOV CH,0MOV SI,2MOV AL, 0 ;开始将十进制数转换为二进制数AGAIN: MOV AH, 10 ;((0×10+a2)×10+…)×10+a0MUL AHAND BYTE PTR [SI], 0FH ;将十进制数的ASCII码转换为BCD数ADD AL,[SI]INC SILOOP AGAIN6.8stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentSEGPT DB 3FH,6,5BH,4FH,66H,7,7FH,6FH,6FH,76H,77H,7CH,39H,5EH,79H,71H data endscode segmentstart proc farassume ss: stack, cs: code, ds: datapush dssub ax,axpush axmov ax,datamov ds,axMOV DX,380HIN AL,DXSUB AL,30HCMP AL,0AHJB NS7SUB AL,7MOV BL,ALMOV BH,0MOV AL,SEGPT[BX]OUT DX,ALretstart endpcode endsend start6.9stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codepush dssub ax, axpush axMOV DX, 380HLOP1: IN AL, DX ;读入设备1和设置2的状态AND AL, 6 ;测试2台设备的状态,同时使AL的D0位为0JZ LOP2 ;都正常,即AL的D1位和D2位都为0,AL为0MOV AL, 1 ;有一台异常AL不为0,AL置1,即AL的D0位为1 LOP2: OUT DX, ALMOV AH, 11 ;11号功能调用,键入任一键退出程序INT 21HCMP AL, 0 ;无键入AL=0,有键入AL=FFHJE LOP1 ;无键入,去LOP1继续监视2台设备retstart endpcode endsend start6.10stack segment stack 'stack'dw 32 dup(0)stack endscode segmentbegin proc farassume ss: stack, cs: codepush dssub ax, axpush axMOV DX, 380HIN AL, DX ;读入原码TEST AL, 80H ;判原码数的符号JZ NONEG ;正数的原码和补码相同,不用求补AND AL, 7FH ;负数,求其绝对值NEG AL ;对绝对值求补得该负数的补码NONEG: OUT DX, ALretbegin endpcode endsend begin6.11在显示器上显示:行*列的程序如下:stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codepush dssub ax, axpush axMOV DX, 380H ;检测全键盘MOV AL, 0 ;键盘的8行全为低电平OUT DX, ALLOP1: IN AL, DX ;读入列值CMP AL, 0FFH ;列值是FFH吗?JE LOP1 ;是,全键盘无键闭合,继续检测MOV AH, 7FH ;键盘的行检测的输出值,被检测行为0,其余行为1 LOP2: MOV AL, AH ;检测键盘的一行OUT DX, AL ;输出行检测值IN AL, DX ;读入列值,列值不为FFH有键闭合CMP AL, 0FFH ;被检测行有键闭合吗?JNE LOP3 ;有键闭合,结束逐行扫描去LOP3ROR AH, 1 ;该行无键闭合,改变行检测的输出值检测另一行JMP LOP2LOP3: MOV DL, 0 ;求行值0~7,即AH中的那个0的位置AS1: SHR AH ,1 ;0在最低位DL=0,……,0在最高位DL=7JNC AS2JMP AS1AS2: ADD DL, 30H ;将行值转换为ASCII码MOV AH, 2 ;输出行值INT 21HMOV DL, '*';输出乘号:*INT 21HMOV DL, 0 ;求列值0~7,即AL中的那个0的位置AS3: SHR AL, 1JNC AS4INC DLJMP AS3AS4: ADD DL, 30H ;将列值转换为ASCII码INT 21H ;输出列值retstart endpcode endsend start6.12stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentSEGPT DB 77H,7CH,39H,5EH,79H,71H,6FH,76Hdata endscode segmentstart proc farassume ss: stack, cs: code, ds: datapush dssub ax, axMOV DX, 380HLOP: IN AL, DXMOV BX,0LOP1: SHR AL,1JNC LOP2INC BLJMP LOP1LOP2: MOV AL,SEGPT[BX]OUT DX, ALMOV AH,11INT 21HCMP AL,0JE LOPretstart endpcode endsend start6.13stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codepush dssub ax, axpush axMOV DX 260HIN AL, DXMOV AH, ALINC DXCMP AL, AHJNC NXCHGXCHG AL, AHNXCHG: SUB AL, AHDASINC DXINC DXOUT DX, ALretstart endpcode endsend start6.14stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codepush dssub ax, axpush axMOV BL, 240MOV DX, 260HLOP: ADD BL, 16MOV AL, BLOUT DX, ALLOOP $ ;延时MOV AH, 11INT 21HCMP AL, 0JE LOPretstart endpend start6.15输出周期性的方波、锯齿波、三角波、正弦波的程序如下:stack segment stack 'stack'dw 32 dup (0)stack endsdata segmentOBF DB 80H, …, 0FFH, …, 80H, …, 00H, …;正弦波的数据(一周期)N EQU $ -OBFdata endscode segmentstart proc farassume ss: stack, cs: code, ds: datapush dssub ax, axpush axmov ax, datamov ds, axMOV DX, 380HAGAIN: MOV AH, 1 ;键入一字符,应为大写!INT 21HCMP AL, 'F'JE FBCMP AL, 'J'JE JCBCMP AL, 'S'JE SJBCMP AL, 'Z'JE ZXB ;按下F、J、B和Zret ;4个键以外的键退出该程序FB: MOV AL, 0 ;方波输出OUT DX, ALCALL DELAY1CALL DELAY1MOV AH, 11INT 21HCMP AL, 0JE FBJMP AGAINJCB: INC AL ;锯齿波输出OUT DX, ALCALL DELAY2MOV BL, AL ;保护ALMOV AH, 11CMP AL, 0MOV AL, BL ;恢复ALJE JCBJMP AGAINSJB: INC AL ;三角波输出OUT DX, ALCALL DELAY3CMP AL, -1JNE SJBSJB1: DEC ALOUT DX, ALCALL DELAY3CMP AL, 0JNE SJB1MOV AH, 11INT 21HCMP AL, 0JE SJBJMP AGAINZXB: MOV BX, OFFSET OFB ;正弦波输出MOV CX, NZXB1: MOV AL, [BX]OUT DX, ALCALL DELAY4INC BXLOOP ZXB1MOV AH, 11INT 21HCMP AL, 0JE ZXBJMP AGAINstart endpDELAY1: PROCDL11: MOV SI, 0DL12: DEC SIJNZ DL12LOOP DL11POP CXRETDELAY1 ENDPDELAY2 ;延时程序结构一样DELAY3 ;仅CX取值不同;故略DELAY4code endsend start6.1stack segment stack 'stack'dw 32 dup(0)stack endscode segmentstart proc farassume ss: stack, cs: codepush dssub ax,axpush axmov ax,datamov ds,axMOV CL,4LOP1: MOV AX,0LOP2: PUSH AXMOV DX, 381HROR AX,CL ;高8位数据移入ALOUT DX, ALMOV DX, 380HMOV AL,AH ;低4位数据移入AL的低4位SHR AL,CLOUT DX, AL ;再写一遍MOV AH,11 ;检查键盘有无键入INT 21HCMP AL,0JNE BAK ;键盘有键入,退出POP AXINC AXCMP AX,1000HJNE LOP2JMP LOP1BAK: POP AXretstart endpcode endsend start6.17stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentBUF DB 16 DUP(0)data endscode segmentstart proc farassume ss: stack, cs: code, ds: datapush dssub ax,axpush axmov ax,datamov ds,axMOV BX,0MOV DX,260HLOP: OUT DX,ALPUSH DXMOV DX,270HWT: MOV AL,DXSHR AL,1JNC WTPOP DXIN AL,DXMOV BUF[BX],ALINC BXINC DXLOOP LOPretstart endpcode endsend start6.18stack segment stack 'stack'dw 32 dup(0)stack endsdata segmentBUFF DW 100 DUP(0)data endscode segmentstart proc farassume ss: stack, cs: code, ds: datapush dssub ax,axmov ax,datamov ds,axMOV BX,0MOV CX,100LOP: MOV DX, 380H ;两片74LS244都不选中OUT DX, AL ;产生SC信号启动AD转换INC DXWAIT: IN AL, DX ;读取转换结束信号TEST AL, 4 ;测试CC信号JNZ WAIT ;CC信号为1,表明AD转换未结束,等待IN AL, DX ;CC信号为0,转换结束,读取高4位数据AND AL, 0FH ;屏蔽AL的高4位,保留AL的低4位即高4位数据MOV AH, ALINC DXIN AL, DX ;读取低8位,转换结果在AX中MOV BUFF[BX],AXINC BXINC BXLOOP LOPretstart endpcode endsend start。

微型计算机原理与接口技术第六章课后答案pdf

微型计算机原理与接口技术第六章课后答案pdf

第六章1. CPU与外设交换数据时,为什么要通过I/O接口进行?I/O接口电路有哪些主要功能?答:CPU和外设之间的信息交换存在以下一些问题:速度不匹配;信号电平不匹配;信号格式不匹配;时序不匹配。

I/O接口电路是专门为解决CPU与外设之间的不匹配、不能协调工作而设置的,处于总线和外设之间,一般应具有以下基本功能:⑴设置数据缓冲以解决两者速度差异所带来的不协调问题;⑵设置信号电平转换电路,来实现电平转换。

⑶设置信息转换逻辑,如模拟量必须经 A/D变换成数字量后,才能送到计算机去处理,而计算机送出的数字信号也必须经D/A变成模拟信号后,才能驱动某些外设工作。

⑷设置时序控制电路;⑸提供地址译码电路。

2. 在微机系统中,缓冲器和锁存器各起什么作用?答:缓冲器多用在总线上,可提高总线驱动能力、隔离前后级起到缓冲作用,缓冲器多半有三态输出功能。

锁存器具有暂存数据的能力,能在数据传输过程中将数据锁住,然后在此后的任何时刻,在输出控制信号的作用下将数据传送出去。

3. 什么叫I/O端口?一般的接口电路中可以设置哪些端口?计算机对I/O端口编址时采用哪两种方法?在8086/8088CPU中一般采用哪些编址方法?答:在CPU与外设通信时,传送的信息主要包括数据信息、状态信息和控制信息。

在接口电路中,这些信息分别进入不同的寄存器,通常将这些寄存器和它们的控制逻辑统称为I/O 端口。

一般的接口电路中可以设置数据端口、状态端口和命令端口。

计算机对I/O端口编址时采用两种方法:存储器映像寻址方式、I/O单独编址方式。

在8086/8088CPU中一般采用I/O单独编址方式。

4. CPU与外设间传送数据主要有哪几种方式?答:CPU与外设间的数据传送方式主要有:程序控制方式、中断方式、DMA方式。

程序控制传送方式:CPU与外设之间的数据传送是在程序控制下完成的。

⑴无条件传送方式:也称为同步传送方式,主要用于对简单外设进行操作,或者外设的定时是固定的或已知的场合。

微机原理与单片机接口技术课后题参考答案_1-6章_

微机原理与单片机接口技术课后题参考答案_1-6章_

5.若下列字符码(ASCII)中有奇偶校验位,但没有数据错误,采用偶校验的
三、简答题
1.简述微处理器、微计算机及微计算机系统三个术语的内涵。 答:微处理器是微计算机系统的核心硬件部件,它本身具有运算能力和控制功 能,对系统的性能起决定性的影响。微处理器一般也称为 CPU;微计算机是由微处 理器、存储器、I/O 接口电路及系统总线组成的裸机系统。微计算机系统是在微计算 机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系 统。三者之间是有很大不同的,微处理器是微型计算机的组成部分,而微型计算机 又是微型计算机系统的组成部分。 2.什么叫总线?为什么各种微型计算机系统中普遍采用总线结构? 答:总线是模块与模块之间传送信息的一组公用信号线。 总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩 展和升级变得高效、简单、易行。因此微型计算机系统中普遍采用总线结构。 3.微型计算机系统总线从功能上分为哪三类?它们各自的功能是什么? 答:微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类。 地址总线用于指出数据的来源或去向,单向;数据总线提供了模块间数据传输的路 径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的 工作。
2
第 2 章 微处理器及其结构
一、填空题
1.8086/8088 CPU执行指令中所需操作数地址由 EU 计算出 16 位偏移量部分 送 BIU ,由 BIU 最后形成一个 20 位的内存单元物理地址。 2.8086/8088 CPU在总线周期的T1时刻,用A19/S6~A16/S3 输出 20 位地址信息 的最高 4 位,而在其他时钟周期,则输出 状态 信息。 3.8086/8088 CPU复位后,从 0FFFF0H 单元开始读取指令字节,一般这个单 元在 ROM 区中,在其中设置一条 跳转 指令,使CPU对系统进行初始化。 4. 8086系统的存储体系结构中, 1MB存储体分 2 个库, 每个库的容量都是512K 字节, 其中和数据总线D15~D8相连的库全部由 奇地址 单元组成, 称为高位字节库, 并用 BHE 作为此库的选通信号。 5.8086/8088系统中,可以有 64K 个段起始地址,任意相邻的两个段起始地址 相距 16 个存储单元。 6.用段基值及偏移量来指明内存单元地址的方式称为 逻辑地址 。 7.通常8086/8088 CPU中当EU执行一条占用很多时钟周期的指令时,或者在多 处理器系统中在交换总线控制时会出现 空闲 状态。 8.8086 CPU使用 16 根地址线访问I/O端口,最多可访问 64K 个字节端口, 使用 20 根地址线访问存储单元,最多可访问 1M 个字节单元。 9. CPU取一条指令并执行该指令的时间称为 指令 周期, 它通常包含若干个 总 线 周期,而后者又包含有若干个 时钟 周期。 10.设内存中一个数据区的起始地址是1020H:0A1CBH,在存入5个字数据后, 该数据区的下一个可以使用的单元的物理地址是 1020H:0A1D5H 或1A3D5H。 11.8086系统中,默认方式下对指令寻址由寄存器 CS 和 IP 完成,而堆栈段 中的偏移量可由寄存器 SP 或 BP 来指示。 12. 8086的中断向量表位于内存的 00000H~003FFH 区域, 它可以容纳 256 个 中断向量,每个向量占 4 个字节。 13. 8086CPU中典型总线周期由 4 个时钟周期组成, 其中T1期间, CPU输出 地 址 信息;如有必要,可以在 T3和T4 两个时钟周期之间插入1个或多个TW等待周期

微机原理第六章参考答案

微机原理第六章参考答案

一、I/O接口的作用是使微机处理器与外设之间能够有条不紊地协调工作,打到信息交换的目的。

I/O接口的功能有:数据缓冲、设备选择、信号转换、接收、解释并执行CPU命令、中断管理、可编程等功能。

二、I/O端口是接口信息流传送的地址通道。

一般接口电路中有数据端口、命令端口、状态端口等。

三、CPU对I/O端口的编址方式有哪几种?各有什么特点?80X86对I/O端口的编址方式属于哪一种?CPU对I/O端口的编址方式有:统一编址和独立编址。

统一编址的微机系统中,存储器、I/O接口和CPU通常挂接在同一总线上,CPU对I/O端口的访问非常灵活、方便,有利于提高端口数据的处理速度;但是减少了有效的存储空间。

独立编址的微机系统中,I/O地址空间和存储器地址空间可以重叠,CPU需要通过不同的命令来区分端口的存储器。

80X86采用独立编址方式。

四、某微机系统有8个I/O接口芯片,每个接口芯片占用8个端口地址。

若起始地址为9000H,8个接口芯片的地址连续分布,用74LS138作译码器,请画出端口译码电路图,并说明每个芯片的端口地址范围。

74LS138分析下表所列的地址分配情况,可知系统地址信号的译码情况为(图略):●字选:A2~A0直接与接口芯片上的地址信号线连接以寻址每个接口芯片内部的8个端口;●片选:⏹A5~A3接3-8译码器输入端,译码器输出端分别作为8个接口芯片的片选信号;五、由于CPU与外设之间的速度不匹配,所以输入需要缓冲,输出需要锁存。

输入缓冲器就是输入时在外设和CPU之间接一数据缓冲器,当读该缓冲器的控制信号有效时,才将缓冲器的三态门打开,使外设的数据进入系统的数据总线,而其他时间,三态门处于高阻状态,不影响总线上的其他操作。

输出锁存就是在CPU和外设之间接一锁存器,使得有输出指令并且选中该I/O端口时,才使总线上的数据进入锁存器,此后不管总线上的数据如何变化,只要没有再次使锁存器的信号有效,锁存器的输出端就一直保持原来的锁存信息。

第2-6章微机原理习题参考答案

第2-6章微机原理习题参考答案

第二章:PL/0编译程序问答第1题PL/0语言允许过程嵌套定义和递归调用,试问它的编译程序如何解决运行时的存储管理。

答: PL/0语言允许过程嵌套定义和递归调用,它的编译程序在运行时采用了栈式动态存储管理。

(数组CODE存放的只读目标程序,它在运行时不改变。

)运行时的数据区S是由解释程序定义的一维整型数组,解释执行时对数据空间S的管理遵循后进先出规则,当每个过程(包括主程序)被调用时,才分配数据空间,退出过程时,则所分配的数据空间被释放。

应用动态链和静态链的方式分别解决递归调用和非局部变量的引用问题。

问答第2题若PL/0编译程序运行时的存储分配策略采用栈式动态分配,并用动态链和静态链的方式分别解决递归调用和非局部变量的引用问题,试写出下列程序执行到赋值语句b∶=10时运行栈的布局示意图。

var x,y; procedure p; var a; procedure q; var b; begin (q) b∶=10; end (q); procedure s; var c,d; procedure r; var e,f; begin (r) call q; end (r); begin (s) call r; end (s); begin (p) call s; end (p); begin (main) call p; end (main). 答:程序执行到赋值语句b∶=10时运行栈的布局示意图为:问答第3题写出题2中当程序编译到r的过程体时的名字表table的内容。

答题2中当程序编译到r的过程体时的名字表table的内容为:注意:q和s是并列的过程,所以q定义的变量b被覆盖。

问答第4题指出栈顶指针T,最新活动记录基地址指针B,动态链指针DL,静态链指针SL与返回地址RA的用途。

答:栈顶指针T,最新活动记录基地址指针B,动态链指针DL,静态链指针SL与返回地址RA的用途说明如下:T:栈顶寄存器T指出了当前栈中最新分配的单元(T也是数组S的下标)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章习题参考答案
1.CPU与外部设备通信为什么要使用接口
答:
CPU要与外部设备直接通信会存在以下两个方面的问题:首先是速度问题,CPU的运行速度要比外设的处理速度高得多,通常仅使用简单的一条输入/输出指令是无法完成CPU与外设之间的信息交换的;其次,外设的数据和控制线也不可能与CPU直接相连,如一台打印机不能将其数据线与CPU的管脚相连,键盘或者其他外设也是如此,同时外设的数据格式千差万别,也不可能直接与CPU 连接。

所以,要完成CPU与外部各通信设备的信息交换,就需要接口电路以解决以上问题。

2. I/O接口有什么用途
答:
主要由以下几个方面的用途:
a完成地址译码或设备选择,使CPU能与某一指定的外部设备通信。

b状态信息的应答,以协调数据传输之前的准备工作。

c进行中断管理,提供中断信号。

d进行数据格式转换,如正负逻辑转换、串行与并行数据转换。

e进行电平转换,如TTL电平与MOS电平间的转换。

f协调速度,如采用锁存、缓冲、驱动等。

h时序控制,提供实时时钟信号。

O端口有哪两种寻址方式各有何优缺点
答:
I/O端口的寻址方式有存储器映像I/O和I/O映像I/O两种寻址方式。

存储器映像I/O
方式是将系统中存储单元和I/O端口的地址统一编址,这样一个I/O端口
地址就是一个存储单元地址,在硬件上没有区别,对I/O端口的访问与存储器的访问相同。

其缺点是占用了储存器的地址空间,同时由于存储器地址和I/O 端口在指令形式上没有区别,增加了程序设计的难度。

其优点是不需要专门为I/O端口设计电路,可与存储器地址访问硬件混合设计。

另一个优点是,由于I/O端口和存储器地址是相同的形式,就可以直接使用与存储器相同的指令,这将会丰富对I/O端口的操作指令。

与存储器映像I/O相反,I/O映像I/O就必须为I/O端口设计专门的硬件电路,其端口地址也是独立于存储器,也有专门的输入/输出指令等其优缺点与存储器映像I/O正好相反。

4.在8086微机系统中有个外设,使用存储器映像的I/O寻址方式该外设地址为01000H。

试画出其译码器的连接电路,使其译码器输出满足上述地址要求,译码器使用74LS138芯片。

答:
见图6-1
5.微机系统的输入/输出指什么输入和输出有什么不同
答:
微机系统的输入/输出是指计算机从外部获得信息和从外部设备输出信息。

当然,输入是微机系统从外部获得信息,典型的设备如键盘、鼠标等,输出是微机系统将信息送出,典型的设备如显示器、打印机等。

6.在输入/输出电路中为什么常常要用锁存器和缓冲器
答:
输入/输出按方式分为程序控制和DMA两类,程序控制方式又分为同步方式、异步方式和中断方式。

在程序控制方式中,同步方式的软件编程和硬件实现都十分简单,当需要时,就可以直接在需要输入/输出的地方写输入/输出指令。

异步方式由于需要根据状态信息进行输入/输出操作,就需要增加必要的“握手”信号电路,程序设计也要包括对状态信息的判断,根据状态信息再决定是继续等待还是将信息读入或输出。

中断方式在程序控制输入/输出方式中比较复杂,需要有中断控制器等硬件电路和接口芯片,程序也包括了中断处理程序来完成计算机输入、输出。

DMA是另一类输入/输出方式,在进行输入/输出时,不需要CPU直接参加操作,而仅是将总线空出给DMA控制器使用。

当然,DMA方式要求的硬件电路更加复杂。

其优点是响应速度快,缺点是需要增加硬件电路。

7、在输入/输出的电路中,为什么常常要用到锁存器和缓冲器答:
一般来说,I/O设备速度比CPU执行速度慢,故输入设备的数据线锁存在端口的锁存器中,CPU从端口中读入数据;输出时CPU将数据“打入”缓冲器后就可以退出,外设从缓冲器取数据。

8、采用异步查询方式时,输入查询和输出查询有什么不同 答:
异步查询方式是根据外设的状态决定下一步操作。

输入查询方式是在取数之前通过查询外设的状态判断是否把数据已经准备好,而输出方式是判断上次输出的数据是否已经取走,才决定是否再输出下一个数据。

这两种方式的不同是判断缓冲区数据是否存在;对于输入,缓冲区数据已存在时从数据端口读取数据;对于输出,缓冲区为空时才向数据端口输出数据。

9、8086CPU 在执行输入/输出指令时,CPU 的那些控制管脚起作用,什么样的电平有效
答:
8086CPU 的M/IO 管脚是区分输入/输出指令和存储器访问指令的,党委低电平时,是执行输入/输出指令。

当然,8086CPU 的读写信号和BHE 信号都在输入/输出指令时起作用。

10、8086CPU 分配的端口地址有何限制为什么
答:
8086CPU 用15~0A A 或7~0A A 形成端口地址,在指令中寻址方式不同。

由于输入/输出常采用的是8位数据传输方式,其数据只可能从低八位或高八位数据线“走”,同时一般对一个外设的访问需要许多地址,这样其端口地址就会不连续。

相关文档
最新文档