微机原理与接口技术习题答案教学教材

合集下载

《微机原理与接口技术》—习题及参考答案

《微机原理与接口技术》—习题及参考答案

3.
4. 5.
6.错误!未指定书签。集源自-4-编者:喻其山
7. 8. 9.
8086CPU 工作在最大模式时,S 2 、 S1 、 S 0 在 CPU 访问存储器与 CPU 访问外 部设备时,分别是什么状态? 在 8086 最大模式系统中,8288 总线控制器的作用是什么?它产生哪些控制 信号? FFFFF FFFFE 8086 采用什么方式管理内存?1MB 的内存空 间分为哪两个存储体?它们如何与地址总线、 数据总线相连? 答:(1)、8086 采用分段方式管理内存; (2)、 1MB 的内存空间分为偶地址和奇地址 两个存储体; A19~A1 (3)、如右图所示:
错误!未指定书签。集
-
1
-
编者:喻其山
第1章
1.
微型计算机概述
冯· 诺依曼计算机的结构特点是什么? 答:(1)、由运算器、控制器、存储器、输入设备和输出设备五大部分组成。 (2)、数据和程序以二进制代码形式不加区别地存放在存储器中,存放位 置由地址指定,地址码也为二进制。 (3)、控制器是根据存放在存储器中的指令序列及程序来工作的,并由一 个程序计数器(即指令地址计数器)控制指令的执行。控制器具有 判断能力,能以计算结果为基础,选择不同的动作流程。 微处理器内部一般由哪些部分组成?各部分的主要功能是什么? 典型微机有哪三大总线?它们传送的是什么信息? 答:(1)、有数据总线,地址总线和控制总线。 (2)、数据总线用来传输数据信息,是双向总线; 地址总线用于传送 CPU 发出的地址信息,是单向总线; 控制总线用来传送控制信号、时序信号和状态信息等。 其中有的是 CPU 向内存和外设发出的信息,有的则是内存或外设向 CPU 发出的信息。 可见,CB 中每一根线的方向是一定的、单向的,但 CB 作为一个整体是双 向的。 试用示意图说明内存单元的地址和内存单元的内容,二者有何联系和区别? 答:示意图如右所示: 联系:存储单元中存放着信息,该信 息可以是数据, 也可以是另一单元的地址 的一部分, 每个存储单元都包含着地址和 内容两个部分。都用二进制数表示,地址 为无符号整数,书写格式为 16 进制。 区别: 地址是微机用来管理内存单元 而设置的,相当于内存单元的编号;而内 容是存放在各个内存单元中的二进制信 息。

微机原理与接口技术(第二版)课后习题答案

微机原理与接口技术(第二版)课后习题答案

微机原理与接口技术(第二版)课后习题答案微机原理与接口技术(第二版)课后题答案第1章作业答案1.1 微处理器、微型计算机和微型计算机系统的区别是什么?微处理器是将CPU集成在一个芯片上,微型计算机是由微处理器、存储器和外部设备构成,而微型计算机系统则是微型计算机与管理、维护计算机硬件以及支持应用的软件相结合的系统。

1.2 CPU的内部结构由哪些部分组成?它应该具备哪些主要功能?CPU主要由算术逻辑单元、指令寄存器、指令译码器、可编程逻辑阵列和标志寄存器等寄存器组成。

它的主要功能是进行算术和逻辑运算以及控制计算机按照程序的规定自动运行。

1.3 采用总线结构的微型计算机有哪些优点?采用总线结构可以扩大数据传送的灵活性,减少连线。

此外,总线可以标准化,易于兼容和工业化生产。

1.4 数据总线和地址总线在结构上有什么不同?如果一个系统的数据和地址合用一套总线或者合用部分总线,那么要靠什么来区分地址和数据?数据总线是双向的,而地址总线是单向的。

如果一个系统的数据和地址合用一套总线或者部分总线,就要靠信号的时序来区分。

通常在读写数据时,总是先输出地址,过一段时间再读或写数据。

1.8 给定一个模型,如何用累加器实现15×15的程序?LD A。

15LD H。

15LOOP: ADD A。

15DEC HJP NZ。

LOOPHALT第2章作业答案2.1 IA-32结构微处理器直至Pentium 4,有哪几种?IA-32结构微处理器有、、Pentium、Pentium Pro、Pentium II、Pentium III和Pentium 4.2.6 IA-32结构微处理器有哪几种操作模式?IA-32结构支持保护模式、实地址模式和系统管理模式三种操作模式。

操作模式决定了哪些指令和结构特性可以访问。

2.8 IA-32结构微处理器的地址空间是如何形成的?由段寄存器确定的段基地址与各种寻址方式确定的有效地址相加形成了线性地址。

微机原理和接口技术(第三版)课本习题答案解析

微机原理和接口技术(第三版)课本习题答案解析

第二章 8086 体系结构与80x86CPU1.8086CPU 由哪两部份构成?它们的主要功能是什么?答:8086CPU 由两部份组成:指令执行部件<EU,Execution Unit>和总线接口部件<BIU,Bus Interface Unit>。

指令执行部件〔EU 主要由算术逻辑运算单元<ALU>、标志寄存器F R、通用寄存器组和E U 控制器等4个部件组成,其主要功能是执行指令。

总线接口部件<BIU>主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或者I/O 端口读取操作数参加E U 运算或者存放运算结果等。

2.8086CPU 预取指令队列有什么好处? 8086CPU 内部的并行操作体现在哪里?答: 8086CPU 的预取指令队列由6个字节组成,按照8086CPU 的设计要求, 指令执行部件〔EU 在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。

从速度上看,该指令队列是在C PU 内部,EU 从指令队列中获得指令的速度会远远超过直接从内存中读取指令。

8086CPU 内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。

5.简述8086 系统中物理地址的形成过程。

8086 系统中的物理地址最多有多少个?逻辑地址呢?答: 8086 系统中的物理地址是由20 根地址总线形成的。

8086 系统采用分段并附以地址偏移量办法形成20 位的物理地址。

采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部份构成,都是16 位二进制数。

通过一个20 位的地址加法器将这两个地址相加形成物理地址。

具体做法是16 位的段基址左移4位<相当于在段基址最低位后添4个"0">,然后与偏移地址相加获得物理地址。

《微机原理与接口技术》(第四版)周何琴课后习题答案

《微机原理与接口技术》(第四版)周何琴课后习题答案

第1章绪论作业1. 将下列二进制数转换成十进制数。

(1)11001010B=202 (2)00111101B=61(3)01001101B=77 (4)10100100B=1643. 将下列十进制数分别转换为二进制数和十六进制数。

(2)76= 100 1100B =4CH(4)134= 1000 0110B =86H4. 求下列十进制数的BCD码(1)327=11 0010 0111(BCD码)(2)1256=1 0010 0101 0110(BCD码)6. 求出下列10进制数的原码、反码和补码(2)+85 (4)-85解:85=0101 0101B原码:+85= 0101 0101B -85= 1101 0101B反码:+85= 0101 0101B -85= 1010 1010B补码:+85= 0101 0101B -85= 1010 1011B10. 画出微型计算机的基本结构框图,说明各部分的主要功能是什么?解:微型计算机的基本结构框图如下:微处理器CPU:控制微处理器与存储器或I/O设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。

微处理器主要完成:(1)指令控制:从存储器中取指令,指令译码;(2)数据加工:简单的算术逻辑运算;(3)操作控制:在微处理器和存储器或者I/O之间传送数据;(4)时间控制:程序流向控制。

存储器:用来存放数据和指令。

I/O接口:主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。

I/O设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。

输出运算结果。

总线:连接计算机系统中各功能部件的信息通道。

第2章 8086CPU作业2. 8086CPU内部由哪两部分组成?它们的大致是如何工作的?答:(1)8086CPU由指令执行部件EU和总线接口部件BIU两部分组成。

(2)① BIU先执行读存储器操作,从给定地址单元中取出指令,送到先进先出的指令队列中等待执行。

《微机原理与接口技术》(第四版)周何琴课后习题答案

《微机原理与接口技术》(第四版)周何琴课后习题答案

.第1章绪论作业1.将下列二进制数转换成十进制数。

(1)11001010B=202(2)00111101B=61(3)01001101B=77(4)10100100B=1643.将下列十进制数分别转换为二进制数和十六进制数。

(2)76= 100 1100B =4CH(4)134= 1000 0110B =86H4.求下列十进制数的 BCD码(1)327=11 0010 0111 (BCD码)(2)1256=1 0010 0101 0110 ( BCD码)6.求出下列 10 进制数的原码、反码和补码(2)+85 (4)-85解: 85=0101 0101B原码: +85= 0101 0101B-85= 1101 0101B反码: +85= 0101 0101B-85= 1010 1010B补码: +85= 0101 0101B-85= 1010 1011B10.画出微型计算机的基本结构框图,说明各部分的主要功能是什么?解:微型计算机的基本结构框图如下:微处理器地址总线CPU存储器I/O 接口I/O 总线I/O 设备数据总线控制总线微处理器 CPU:控制微处理器与存储器或 I/O 设备间的数据交换;进行算术和逻辑运算等操作;判定和控制程序流向。

微处理器主要完成:(1)指令控制:从存储器中取指令,指令译码;(2)数据加工:简单的算术逻辑运算;(3)操作控制:在微处理器和存储器或者I/O 之间传送数据;(4)时间控制:程序流向控制。

存储器:用来存放数据和指令。

I/O接口:主机和外设间的桥梁,提供数据缓冲驱动、信号电平转换、信息转换、地址译码、定时控制等各种功能。

I/O 设备:输入原始数据和程序,转换成计算机能识别的信息,送入存储器去等待处理。

输出运算结果。

总线:连接计算机系统中各功能部件的信息通道。

第 2 章 8086CPU 作业2. 8086CPU 内部由哪两部分组成?它们的大致是如何工作的?答:(1)8086CPU 由指令执行部件 EU 和总线接口部件 BIU 两部分组成。

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

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

微机原理与接口技术课后部分习题参考答案第一章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采用硬组合逻辑控制器,同时采用内嵌高速缓存,提高速度。

《微型计算机原理与接口技术》(第三版)习题答案

《微型计算机原理与接口技术》(第三版)习题答案

《微机原理与接口技术》习题解答习题11.1 冯·诺依曼型计算机的设计方案有哪些特点?【解答】冯·诺依曼型计算机的设计方案是“存储程序”和“程序控制”,有以下5方面特点:(1)用二进制数表示数据和指令;(2)指令和数据存储在内部存储器中,按顺序自动依次执行指令;(3)由运算器、控制器、存储器、输入设备和输出设备组成基本硬件系统;(4)由控制器来控制程序和数据的存取及程序的执行;(5)以运算器为核心。

1.2 微处理器和微型计算机的发展经历了哪些阶段?各典型芯片具备哪些特点?【解答】经历了6代演变,各典型芯片的特点如表1-1所示。

表1-1 微处理器的发展及典型芯片的特点1.3 微型计算机的特点和主要性能指标有那些?【解答】除具有运算速度快、计算精度高、有记忆能力和逻辑判断能力、可自动连续工作等基本特点以外,还具有功能强、可靠性高、价格低廉、结构灵活、适应性强、体积小、重量轻、功耗低、使用和维护方便等。

微型计算机的性能指标与系统结构、指令系统、硬件组成、外部设备以及软件配备等有关。

常用的微型计算机性能指标主要有:字长、主频、内存容量、指令数、基本指令执行时间、可靠性、兼容性、性能价格比等。

21.4 常见的微型计算机硬件结构由哪些部分组成?各部分的主要功能和特点是什么?【解答】微型计算机硬件一般由微处理器、内存储器、外存储器、系统总线、接口电路、输入/输出设备等部件组成。

主要组成部件的功能和特点分析如下:(1)微处理器:是微型计算机的核心部件,由运算单元ALU、控制单元、寄存器组以及总线接口部件等组成,其功能是负责统一协调、管理和控制系统中的各个部件有机地工作。

(2)内存储器:用来存放计算机工作过程中需要的操作数据和程序。

可分为随机存储器RAM和只读存储器ROM。

RAM存放当前参与运行的各种程序和数据,特点是信息可读可写,存取方便,但信息断电后会丢失;ROM用于存放各种固定的程序和数据,特点是信息固定不变,关机后原存储的信息不会丢失。

《微机原理与接口》习题及参考答案 周明德第五版

《微机原理与接口》习题及参考答案 周明德第五版

《微机原理与接口》课程习题及参考答案2012年秋季第一章习题(教材P29)作业11.1 微处理器、微型计算机和微型计算机系统三者之间有什么不同?【解】把CPU(运算器和控制器)集成在一个芯片上,即为微处理器。

微处理器加上部分存储器和外设(或外设接口)就构成了微型计算机。

微型计算机与管理、维护计算机硬件以及支持应用的软件相结合就形成微型计算机系统。

1.2 CPU在内部结构上由哪几部分组成?CPU应该具备哪些主要功能?【解】CPU主要由算术逻辑单元、指令寄存器、指令译码器、可编程逻辑阵列、寄存器组、标志寄存器等组成。

CPU主要功能是进行算术逻辑运算,以及控制计算机按照程序的规定自动运行。

1.3 微型计算机采用总线结构有什么优点?【解】采用总线结构,扩大了数据传送的灵活性,减少了连线;而且总线可以标准化,易于兼容和工业化生产。

1.4 数据总线和地址总线在结构上有什么不同之处?如果一个系统的数据和地址合用一组总线或者合用部分总线,那么要靠什么来区分地址和数据?【解】数据总线是双向的,地址总线是单向的。

采用数据和地址线复用,主要靠信号的时序来区分。

通常在读写数据时,在复用的总线上先输出地址信息,然后再传送数据。

第二章习题(教材P43)作业22.9 8086的基本程序执行寄存器是由哪些寄存器组成的?【解】8086的基本程序执行寄存器组成如下:⑴ 8个通用寄存器:可用于存放操作数和指针。

⑵ 4个段寄存器:保存段基值(或段选择子)。

⑶ 1个标志寄存器:保存状态位和控制标志位。

⑷ 1个指令指针寄存器:存放下一条要执行的指令的指针。

2.13 如何形成指令中的各种条件码?【解】指令中的条件码,即标志寄存器中的状态标志。

它们主要由算术和逻辑运算指令设置或清除。

也有设置和清除某些状态标志位的专用指令。

2.16 段寄存器CS=1200H,指令指针寄存器IP=FF00H,此时,指令的物理地址为多少?【解】指令的物理地址 = 1200H×16 + FF00H = 21F00H2.17 8086微处理器的执行部件有什么功能?由哪几部分组成?【解】8086微处理器的执行部件负责指令的执行。

微机原理与接口技术 课后答案龚尚福

微机原理与接口技术 课后答案龚尚福

微机原理与接口技术课后答案龚尚福第一章:计算机基础知识1.什么是计算机?计算机有哪些基本组成部分?–计算机是一种可以按照预定程序自动进行数值和非数值计算的设备。

–计算机的基本组成部分包括中央处理器(CPU)、存储器、输入设备、输出设备和控制器。

2.什么是微型计算机?微型计算机的特点有哪些?–微型计算机是指体积小、价格低廉的小型计算机系统。

–微型计算机的特点包括:体积小、成本低、功耗低、易于携带、可扩展性好等。

3.什么是冯·诺依曼体系结构?它包括哪些基本特点?–冯·诺依曼体系结构是一种计算机的基本设计思想,它将存储器和处理器分开,通过总线进行数据和指令的传输。

–冯·诺依曼体系结构的基本特点包括:存储程序、以二进制表示信息、存储器与处理器分离、由指令控制程序执行的顺序。

第二章:数字电路基础知识1.什么是逻辑门?常用的逻辑门有哪些?–逻辑门是一种用于实现逻辑运算的电路元件,根据输入信号的不同组合产生相应的输出信号。

–常用的逻辑门有与门(AND)、或门(OR)、非门(NOT)、异或门(XOR)等。

2.什么是布尔逻辑运算?常见的布尔逻辑运算有哪些?–布尔逻辑运算是指利用布尔代数进行逻辑运算的方法。

–常见的布尔逻辑运算有与运算(AND)、或运算(OR)、非运算(NOT)等。

3.什么是半加器和全加器?它们的作用是什么?–半加器是一种用于实现二进制数相加的电路,它可以将两个输入信号相加并产生相应的进位和和。

–全加器是一种用于实现三个二进制数相加的电路,它可以将三个输入信号相加并产生相应的进位和和。

第三章:微处理器基础知识1.什么是微处理器?它的功能有哪些?–微处理器是一种集成电路,它由控制单元、算术逻辑单元、寄存器和时钟等功能模块组成,用于执行计算机程序。

–微处理器的功能包括指令译码、执行算术和逻辑运算、读写存储器、控制外部设备等。

2.什么是指令?指令由哪些部分组成?常见的指令有哪些?–指令是微处理器执行操作的基本单位,它们以二进制的形式存储在存储器中。

微机原理与接口技术周荷琴课后习题答案

微机原理与接口技术周荷琴课后习题答案

微机原理与接口技术习题参考答案第一章p201、参考答案:冯诺伊曼计算机的设计思想EDVAC方案:存储程序通用电子计算机方案:①计算机分为计算器、控制器、存储器、输入和输出装置五个部分;②计算机内采用二进制;③将程序存储在计算机内,简称“程序存储”;其中第三点是冯诺依曼计算机设计的精华,所以人们又把冯诺依曼原理叫做程序存储原理,即程序由指令组成并和数据一起存放在存储器中,机器则按程序指定的逻辑顺序把指令从存储器中读出来并逐条执行,从而自动完成程序描述的处理工作;冯诺伊曼计算机主要以运算器和控制器为中心,结构框图如下图所示;2、参考答案:微处理器就是中央处理器CPU,是计算机的核心,单独的CPU不能构成计算机系统;微型计算机由微处理器、主存储器、I/O接口注意:不是I/O设备组成;而微型计算机系统除了包括微型计算机外,还有系统软件即操作系统、应用软件、外存储器和I/O设备等;微型计算机系统结构如下图所示;3、答案略,见p6~74、答案略,见图2,或教材图1-35、答案略,见p12~136、参考答案:由于8086微处理器的地址总线的宽度为20位,所以它可寻址220=1M字节的存储空间;而PentiumII微处理器的地址总线的宽度为36位,所以它可寻址236=64G字节的存储空间;7、参考答案:①PCIPeripheral Component Interconnect:外围设备互联,是Intel 公司1992年发布486微处理器时推出的32/64位标准总线,数据传输速率位132MB/s,适用于Pentium微型计算机;PCI总线是同步且独立于微处理器的具有即插即用PNP:Plug and play,所谓即插即用,是指当板卡插入系统时,系统会自动对板卡所需资源进行分配,如基地址、中断号等,并自动寻找相应的驱动程序的特性.PCI总线允许任何微处理器通过桥接口连接到PCI总线上;②USBUniversal Serial Bus:通用串行总线,是1994年由Compaq,IBM,Microsoft 等多家公司联合提出的;USB有两种规格:和,USB 传输速度为12M/秒,而USB 提高至360到480M/秒;USB 是向下兼容USB ,这意味着将一个USB 的设备插到USB 口中,只能按USB 的速度运行;USB连接方式十分灵活,支持热插拔,不需要单独的供电系统;可以通过一条4线串行线缆访问USB设备,用于连接键盘、鼠标、投影仪、数码相机等,现在成为每一台计算机都必须配备的标准接口;8、参考答案:DB----Define byte 定义一个字节类型的变量,并为该变量分配内存DW…Define word 定义一个字类型的变量,并为该变量分配内存DD….Define double word 定义一个双字类型的变量,并为该变量分配内存9、参考答案:1=或2=3=4=如何转换例如:=1×25+1×23+1×2+1+1×2-2+1×2-4= 32+8+2+1++=10、参考答案:1=10×16+3+3×16-1=2=1×162+2×16+9+12×16-1=3=10×16+12+13×16-1+12×16-2=4=15×162+10×16+11+3×16-1=11、参考答案:123=10111B=27Q=17H2107=1101011B=153Q=6BH492=1011100B=134Q=5CH12、参考答案:即把下面的数用8位补码表示13、参考答案:压缩BCD码就是用4位二进制表示一个0~9之间的十进制数非压缩的BCD码就是用8位二进制表示一个0~9之间的十进制数,8位二进制的最高4位可以位任何数,例如0000,0~9的ASCII码实际上就是0~9的非压缩BCD 码的表示;14、参考答案:如果二进制最高位为0,则该数为正数,反之,如果最高位为1,则该数为负数,对其做求补运算就得到其相反数;200110011B=+5115、参考答案:一个单精度浮点数占4个字节双字,即32位二进制,其中符号位占1位,指数部分占8位,尾数部分占23位;十进制数表示成单精度浮点数的方法如下:①填充符号位,如果是正数填0,如果是负数填1②将数表示成二进制形式,并进行规格化③对于单精度浮点数,指数加上1277FH;对于双精度浮点数,指数要加上1023 3FFH,并填充指数位④填充尾数位1+ ①由于是正数,所以符号位为0;②写成二进制并规格化得到×20,③由于2的指数是0,所以指数部分以0+127=01111111填充;④由②写成十六进制数为:+=3F C0 00 00H2=C12A0000H3+=42C88000H4=C4960000H16、参考答案:21 01111111 00000000000000000000000B=第二章p55~p561、答案略,见p22~242、答案略,见p24~273、答案略,见p334、参考答案其他可以参照本章相关内容:① CPU:又称微处理器,是计算机系统的核心,一般由逻辑运算、控制单元和一些组成;这些寄存器用于CPU在处理过程中数据的暂时保存;它主要完成从存储器中取指令,指令译码;算术逻辑运算;在处理器和存储器或I/O接口之间传送数据;程序的流向控制等;②存储器:是计算机系统的记忆部件,主要用来存储程序和数据;存储器一般分为内部存储器和外部存储器两大类;内部存储器内存存放当前正在使用或经常使用的程序和数据,CPU可以直接访问;外存存放“海量”数据,相对来说不经常使用,CPU使用时要先调入内存;内部存储器又可以分为随机存取存储器RAM和只读存储器ROM;计算机系统存储器的三层结构:按存储容量由低到高或按存取速度由高到低分为高速缓冲存储器CACHE、主存、辅存三层;③堆栈Stack:堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的数据;当前栈顶单元一般采用SP指向,栈底设在存储器的高地址区,堆栈地址由高到低增长;堆栈的工作方式是“后进先出”,用入栈指令PUSH 和出栈指令POP可将数据压入堆栈或从堆栈中弹出数据,栈顶指针SP的变化由CPU自动管理,入栈操作SP减小,出栈操作SP增大;堆栈的操作以字为单位;④机器语言Machine Language:计算机唯一能接受和执行的语言;机器语言由二进制码组成,每一串二进制码叫做一条指令,一条指令规定了计算机执行的一个动作,一台计算机所能懂得的指令的全体,叫做这个计算机的指令系统,不同型号的计算机的指令系统不同;使用机器语言编写程序是一种相当烦琐的工作,既难于记忆也难于操作,编写出来的程序全是由0和1的数字组成,直观性差、难以阅读;不仅难学、难记、难检查、又缺乏通用性,给计算机的推广使用带来很大的障碍;⑤汇编语言Assembly Language:是一种符号语言,它和机器语言几乎一一对应,在书写时使用字符串组成的助记符Mnemonic代替操作码,用地址符号Symbol 或标号Label代替地址码;使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序,如微软的宏汇编程序;汇编程序把汇编语言翻译成机器语言的过程称为汇编;汇编语言比机器语言易于读写、调试和修改,同时具有机器语言全部优点;但在编写复杂程序时,相对高级语言代码量较大,而且汇编语言依赖于具体的处理器体系结构,不能通用,因此不能直接在不同处理器体系结构之间移植;⑥指令Instruction:指令是能被计算机识别并执行的二进制代码,它规定了计算机能完成的某一操作;一条指令通常由两个部分组成:操作码+操作数;:指明该指令要完成的操作的类型或性质,如取数、做加法或输出数据等;操作数:指明操作对象的内容或所在的存储单元地址地址码,操作数在大多数情况下是地址码,地址码可以有0~3个;9、参考答案:注意:①段起始地址和段结束地址均为20位的物理地址;②段起始的偏移量为0000H,所以段起始地址为段基地址×16+偏移地址;③由于每个段的最大容量为64K字节,段结束的偏移量为FFFFH,所以段结束地址为段基地址×16+偏移地址=段基地址×16+FFFFH10、参考答案:a)CS:IP=1000H:2000H 下一条指令的存储器地址为CS×16+IP=12000Hb)CS:IP=2000H:1000H 下一条指令的存储器地址为CS×16+IP=21000Hc)CS:IP=1A00H:B000H 下一条指令的存储器地址为CS×16+IP=25000Hd)CS:IP=3456H:AB09H 下一条指令的存储器地址为CS×16+IP=3F069 H11、参考答案:a)DS=1000H,DI=2000H 存储单元地址为:DS×16+DI=12000Hb)SS=2300H,BP=3200H 存储单元地址为:SS×16+BP=26200Hc)DS=A000H,BX=1000H 存储单元地址为:DS×16+BX=A1000Hd)SS=2900H,SP=3A00H 存储单元地址为:SS×16+SP=2CA00H12、参考答案:①堆栈段在存储器中的物理地址即堆栈段的起始地址为:SS×16+0000H=35000H②入栈10个字节后,SP=0800H-10=07F6H③再出栈6个字节,SP=07F6H+6=07FCH13、参考答案:示意图如左图所示,如果要读取这两个字,则需要对存储器进行三次操作;①由于字2A8CH存放在偶地址开始的单元,所以只进行一次存储器操作就可以读取该字;②由于字1EE5H存放在奇地址开始的单元,所以需要进行两次存储器操作才可以读取该字;14、参考答案:段段起始地址段结束地址DS 10E40H 20E3FHES 10F40H 20F3FH可见,①DS和ES有部分的重叠,重叠区域大小为:20E3FH-10F40H+1=FF00H字节;②ES和SS之间有空隙,空隙的大小为:21F00H-20F3FH+1=0FC2H字节;③SS和CS 之间有空隙,空隙的大小为:31FF0H-31EFFH+1=00F2H字节④OF SF ZF CF 均为017、参考答案:IF标志位控制INTR引脚20、答案略,见p4921、答案略第三章p121~p1241、参考答案:对于IN指令,如果是长格式,源操作数的数字不是立即数,而是端口地址,所以源操作数的寻址方式是直接寻址;如果是短格式,即端口地址存放在DX寄存器中,则源操作数的寻址方式为寄存器间接寻址,如:IN AX,DX对于OUT指令,如果是长格式,目的操作数的数字不是立即数,而是端口地址,所以目的操作数的寻址方式是直接寻址,如OUT 20H,AL;如果是短格式,即端口地址存放在DX寄存器中,则目的操作数的寻址方式为寄存器间接寻址,如:OUT DX,AX 2、参考答案:题号源操作数寻址方式源操作数有效地址源操作数物理地址指令执行后AX中的内容1 立即寻址------- ------ 0200H2 直接寻址0200H 10200H 2A10H3 寄存器寻址------- ------ 0200H4 寄存器相对寻址0203H 10203H 5946H5 基址变址寻址0202H 10202H 463CH6 相对基址变址寻址0204H 10204H 6B59H注:10200H~10205H单元存储状况如左图所示3、参考答案:题号源操作数寻址方式源操作数有效地址源操作数物理地址4、答案略5、参考答案:1该数据段的存储状况如下表所示:注:①表格的第一行为变量名称;②第三行的每个小格子代表一个存储单元;③第二行为存储单元的偏移地址以十六进制表示,从中可以看出各变量在数据段中的偏移地址,A的偏移地址为0000H,B的偏移地址为0002H,C的偏移地址为000AH,D的偏移地址为000EH,E的偏移地址为0013H;④第三行为存储单元的具体内容,以十六进制表示;2写出各条指令执行后的结果6、参考答案:7、程序片段如下:LEA BX,TABLE MOV AL,57MOV AH,0MOV DL,10DIV DLPUSH AXXLATMOV CH,ALPOP AXMOV AL,AHXLATMOV CL,ALMOV BX,CX9、已知AX=1234H,BX=3456H,CX=5678H,DX=789AH,CF=1则单独执行下列各条指令后,各相关寄存器内容是什么10、参考程序片段如下:;定义数据段DATA SEGMENTARRAY DB 60,65,72,76,77,66,79NEW DB 7 DUP0SUM DB 0AVERAGE DB 0DATA ENDS;程序代码如下……MOV CX,7MOV SUM,0MOV SI,0NEXT:MOV AL,ARRAYSIADD SUM,AL ;总分存入SUM中ADD AL,5MOV NEWSI,ALINC SILOOP NEXTMOV AL,SUMMOV AH,0MOV CL,7DIV CLMOV AVERAGE,AL ;平均分存入AVERAGE中12、参考答案:1程序片段如下:LEA SI,STRINGLEA DI,GET_CHARMOV CX,26CLDREP MOVSB2程序片段如下:先定义一个附加段,用来存放’The computer’EXTRA SEGMENTS2 DB ‘The computer’EXTRA ENDS…LEA SI,STRINGLEA DI,S2MOV CX,12CLDREPZ CMPSBJZ NEXT ;若比较的两个字符串相同,则跳到NEXT执行MOV AL,0 ; 若比较的两个字符串不相同SUB CL,12NEG CLMOV BL,CL ;比较的次数存入BL中RETNEXT:MOV AL,1MOV BL,12RET3程序片段如下:LEA DI,STRING ;被查找的字符串STRING作为目的串MOV AL,’&’MOV CX,26CLDREPNZ SCASBJNZ EXIT ;如果没有找到,直接退出DEC DI ;找到’&’字符的位置MOV BYTE PTR ES:DI,20H ;用空格字符替换EXIT: RET4完整的程序如下:;这里的DATA既作为数据段,又作为附加段,即数据段和附加段公用一个段DATA SEGMENTSTRING DB ‘The Personal Computer & TV’COUNT EQU $-STRINGCAPS DB COUNT DUP0CHART DB COUNT DUP0DATA ENDSCODE SEGMENTASSUME DS:DATA,ES:DATA,CS:CODEMAIN PROC FARPUSH DSXOR AX,AXPUSH AXMOV AX,DATAMOV DS,AXMOV ES,AX;把字符串中大写字母传送到CAPS开始的单元中LEA SI,STRINGLEA DI,CAPSMOV CX,COUNTCLDAGAIN1:LODSBCMP AL,41HJB NEXT1CMP AL,5AHJA NEXT1STOSBNEXT1:LOOP AGAIN1;把字符串中其余字母传送到CHART开始的单元中LEA SI,STRINGLEA DI,CHARTMOV CX,COUNTCLDAGAIN2:LODSBCMP AL,41HJB NEXTCMP AL,5AHJBE NEXT2NEXT: STOSBNEXT2:LOOP AGAIN2;将STRING字符串清零LEA DI,STRINGMOV AL,0MOV CX,COUNTCLDREP STOSBRETMAIN ENDPCODE ENDSEND MAIN13、完整的程序如下:CODE SEGMENTASSUME CS:CODEMAIN PROC FARPUSH DSXOR AX,AXPUSH AXXOR SI,SI ;SI中存放DX中1的个数XOR DX,DXMOV AX,1234HMOV CX,16AGAIN:ROR AX,1JNC NEXTINC SIPUSH CXDEC CLMOV BX,1SHL BX,CLOR DX,BXPOP CXNEXT: LOOP AGAINRETMAIN ENDPCODE ENDSEND MAIN程序的运行结果:AX=1234H DX=2C48H SI=0005H,结果正确如果是段内转移,跳转指令只改变IP寄存器的内容,前三条跳转指令是段内跳转;如果是段间跳转,跳转指令同时改变IP和CS寄存器的内容,后两条跳转指令是段间跳转;15、参考答案:注意:三个循环指令LOOP 、LOOPE 和LOOPNE 终止循环的条件是不一样的; 16、参考答案:中断向量表的作用:中断向量表用于存放256种中断的中断服务程序的入口地址,每种类型中断的中断服务程序的入口地址占用4个字节,存储CS 和IP,总共需要1024个字节,即1K 字节; 中断向量表位于内存的最低1K 字节,地址范围为:00000H~003FFH;类型3的中断的中断服务程序的入口地址存放在:0000CH~0000FH 这四个单元; 17、参考答案:如下图所示解释:①由于中断类型号为2,所以该类型中断的中断服务程序入口地址占据内存最低1K 字节的2×4,2×4+1,2×4+2,2×4+3四个单元;②前两个单元存放中断服务程序IP 值,即0016H,后两个单元存放中断服务程序的CS 值,即0485H;③由于CS 和IP 值均为一个字,所以在存放中断服务程序入口地址的CS 和IP 值时,低位字节存放在低地址区,高位字节存放在高地址区; 18、参考答案: 1中断类型号为162该中断服务程序的起始地址是:CS:IP=D169H:240BH 解释:①由于中断向量表中地址为0040H 开始存放某类型中断的中断服务程序的入口地址,所以0040H 除以4就可以得到该类型中断的中断类型号n,即n=16;②中断服务程序的入口地址的CS 值存放在0042H 单元里,IP 值存放在0040H 单元里;20、参考答案:MOV CX,N;4个时钟周期NEXT:NOP ;N ×3个时钟周期 NOP ;N ×3个时钟周期LOOP NEXT;N-1×17+1×5个时钟周期由f =5MHz,t =,延时5ms 需要25000102.010563=⨯⨯--个时钟周期 所以:4+N ×3+N ×3+N-1×17+1×5=25000 解得:N=1087第四章p205~p2061、参考答案写出各变量在内存中的存储状况A1 DW 23H,5678HA2 DB 3 DUP,0AH,0DH,’$’A3 DD 5 DUP1234H,567890HA4 DB 4 DUP3 DUP1,2,’ABC’①变量A1占4个字节,在内存中的存储状况以十六进制表示,从左到右地址依次增加,以下同:23 00 78 56②变量A2占6个字节,在内存中的存储状况:00 00 00 0A 0D 24③变量A3占40个字节,在内存中的存储状况:34 12 00 00 90 78 56 00 再重复4遍④变量A4占60个字节,在内存中的存储状况:01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43 01 02 41 42 43带下画线部分重复4遍2、参考答案写出各指令执行后的结果3、参考答案:L=6,L的值实际就是BUF变量在内存中占有的字节数;4、参考答案:PLENGTH=22,PLENGTH的值实际就是三个变量PAR、PNAME和COUNT在内存中占有的总的字节数;5、参考答案:AX=1 BX=20 CX=16、参考答案:AH=00H7、1利用中断调用产生5秒延时data segments db '5 second is gone',13,10,'$'data endscode segmentassume cs:code,ds:datamain proc farmov ax,datamov ds,axmov ah,2chint 21h ;取得当前时间:ch时 cl分 dh秒 dl1/100秒mov bl,dhcontinue:mov ah,2chint 21hsub dh,blcmp dh,5jb continue ;判断两次取得时间间隔是否为5秒钟,如果不是则继续读取时间lea dx,s ;如果达到5秒,则显示一条信息mov ah,9int 21hmov ax,4c00hint 21hmain endpcode endsend main2利用中断调用,在屏幕上显示1~9之间的随机数思路:利用DOS系统功能调用得到当前时间,其中的dl寄存器中存放的是1/100秒,可以用来产生随机数;code segmentassume cs:codemain proc farmov ah,2chint 21hmov al,dl ;取得1/100秒,不同时间运行该程序时得到的这个数字也不一样,具有随机性mov ah,0mov bl,9 ;除以9div bl ;相除后的余数ah的范围为0~8inc ah ;加1后得到1~9之间的数add ah,30h ;转换为ASCII码mov dl,ahmov ah,2int 21h ;在屏幕上显示该数mov ax,4c00hint 21hmain endpcode endsend main8、1二进制到压缩BCD码的转换;把AX中的二进制数转换为压缩的BCD码,仍然存放AX寄存器中;例如:如果AX中的二进制数为0010 0110 1001 0100B=2694H,化成十进制数是9876,其压缩的BCD码是1001 1000 0111 0110,用十六进制表示是9876H;即这种转换实际就是把2694H转换为9876H;考虑到AX中能够存放的最大的四位压缩BCD数为9999H,所以在转换之前需要判断AX中的二进制数不能超过9999,即270FH;第五章p237~2382、ROM、PROM、EPROM、EEPROM在功能上各有何特点答案略见教材p2083、DRAM的CAS和RAS输入的用途是什么答:为了提高DRAM的集成度,减少引脚的数目,DRAM的地址线分成行地址和列地址两部分,在对存储器进行访问时,先由行地址选通信号RAS把行地址送入行地址锁存器,再由列地址选通信号CAS把列地址送入列地址锁存器,并由读写信号控制数据的读出或写入;4、什么CACHE作用是什么处于微处理机中的什么位置答:CACHE即高速缓冲存储器,通常由SRAM组成;其作用是:将经常访问的代码和数据保存到由SRAM 组成的高速缓冲存储器中,把不经常访问的数据保存到由DRAM组成的主存中,这样使存储器系统的价格降低,同时又降低了接近零等待的性能,大大的提高了系统的性能;CACHE位于CPU和主存储器之间;7、用1024×1位的RAM芯片组成16K×8位的存储器,需要多少芯片在地址线中有多少位参与片内寻址多少位合成片选信号设地址总线为16位答:需要16×8=128片RAM芯片,其中每8片为一组,总共有16组;地址线中有10位参与片内寻址;由于有16组芯片,余下的6根地址线中至少需要4根合成片选信号,来选中其中的一组芯片;8、现有一存储器芯片的容量为512×4位,若要用它组成4KB的存储器,需要多少这样的芯片每块芯片需要多少寻址线整个存储系统最少需要多少寻址线答:需要的芯片的数目为16片,每两片为一组,共有8组;每块芯片需要9根寻址线;由于共有8组芯片,至少需要3根地址线合成片选信号用来选择8组芯片中的一组;整个存储器系统至少需要9+3=12根地址线;9、利用1024×8位的RAM芯片组成4K×8位的存储器系统,用A15~A12地址线用线性选择法产生片选信号,存储器地址的分配有什么问题写出各芯片的地址分配;答:①需要的芯片的数目:4片②片内寻址需要的地址线的数目:由于每片RAM芯片内部有1024个存储单元,所以需要10根地址线用于选中其中某一个存储单元,占用地址总线的低10位A9~A0③片间寻址需要的地址线的数目:由于需要4片存储器芯片,所以至少需要2根地址线进行译码用于选择4片芯片中的一片,这样占用地址总线的A11和A10;余下的地址总线用线性选择法产生片选信号,这样A15~A12的电平的不同组合就产生了不同的地址空间,使得存储器芯片的地址空间产生重叠;如果A15~A12的电平组合为:A15=1,其余的均为0,则4片存储器芯片的地址范围分别为:A15 A14 A13 A12 A11 A10 A9…A01:1 0 0 0 0 0 0 … 0 =8000H1 0 0 0 0 0 1 … 1 =83FFH2:1 0 0 0 0 1 0 … 0 =8400H1 0 0 0 0 1 1 … 1 =87FFH3:1 0 0 0 1 0 0 … 0 =8800H1 0 0 0 1 0 1 … 1 =8BFFH4:1 0 0 0 1 1 0 … 0 =8C00H1 0 0 0 1 1 1 … 1 =8FFFH10、当从存储器偶地址单元读一个字节数据时,写出存储器的控制信号和它们的有效电平8086工作在最小模式;答案如下表所示:11、当要将一个字写入到存储器奇地址开始的单元中,列出存储器的控制信号和他们的有效电平8086工作在最小模式;答案如下表所示:分两次写入:第一次:第二次:12、设计一个64K×8的存储器系统,采用74LS138和EPROM 2764器件,使其寻址空间范围为:40000H~4FFFFH;解题步骤如下:①存储器芯片数目的确定:由于每片2764芯片为8K×8位,要组成64K×8的存储器系统,需要8片2764芯片,编号为1~8;②片内寻址地址线的选择:由于每片2764芯片为8K×8位,即有8K213=8K个存储单元,所以需要13根地址线A12~A0分别接到芯片的13个地址引脚,来选通片内某个存储单元;③片间寻址地址线的分配:A15、A14和A13分别连接到74LS138的C、B、A端,74LS138的8个输出④余下的地址线的连接:A19~A16和M/IO信号通过逻辑电路接到74LS138的三个控制端G1、G2A和G2B,具体的逻辑电路的设计与题目给定的寻址空间范围有关,如果题目没有给定寻址空间范围,逻辑电路由读者自行设计;⑤根据寻址空间范围设计控制端的逻辑电路:把最低地址40000H表示成二进制形式为:0100 0000 0000 0000 0000,可知20位地址总线高4位A19~A16的电平组合为A19=0,A18=1,A17=0,A16=0,加上M/IO=1,由此可以设计出74LS138的三个控制端G1、G2A和G2B的逻辑电路;M/IO信号可以同G1端直接相连;A18反向后与A19通过二输入负逻辑与非门即或门接到G2A端,A17和A16通过二输入负逻辑与非门或门连接到G2B端;⑥其他控制信号的连接:数据总线D7~D0直接与存储器芯片的8根数据引脚相连接;RD信号直接芯片的允许输出引脚相连;具体的电路图略;13、用8K×8的EPROM 2764,8K×8的RAM 6264和74LS138构成一个16K字ROM,16K字RAM的存储器子系统;8086工作在最小模式,系统带有地址锁存器8282,数据收发器8286;画出存储器系统与CPU的连接图,写出各芯片的地址分配;解题步骤如下:①存储器芯片数目的确定:需要EPROM芯片4片,每两片组成一组两片存储器芯片构成一个字存储器,一片为奇地址存储体,另一片为偶地址存储体,共有2组,编号为1和2;需要RAM芯片4片,每两片组成一组两片存储器芯片构成一个字存储器,一片为奇地址存储器,另一片为偶地址存储器,共有2组,编号为3和4;②片内寻址地址线的选择:由于每片2764芯片和6364芯片均为8K×8位,即有8K213=8K个存储单元,所以需要13根地址线A13~A1分别接到芯片的13个地址引脚,来选通片内某个存储单元;注意:A0不参与片内寻址,用来作为奇偶存储体的选择信号;A0与BHE信号相配合来读/写每一组中的奇偶存储体;③片间寻址地址线的分配:A16、A15和A14分别连接到74LS138的C、B、A端,74LS138的8个输出中的4个输出端分别选择4组包括2组EPROM芯片和2组RAM芯片存储器芯片中的一组;④三个控制端相连;可以由读者自行设计;如果选择A19=1,A18=0,A17=0,M/IO信号可以同G1端直接相连;A19反向后接到G2A端,A18和A17通过二输入负逻辑与非门或门连接到G2B端;⑤二次译码:由于每一组存储器由两片存储器芯片组成,一片为奇地址存储体,另一片为偶地址存储体,这两个存储体的选择需要A0和BHE信号;因此,74LS138的每个输出Y0~Y3还需要同这两个信号进行二次译码产生两个信号分别连到该组存储器的两个存储器芯片的CS端;例如:对于第1组存储器,Y0与A0通过二输入或门连到1的偶地址存储器芯片的CS端;Y0与BHE通过二输入或门连到1的奇地址存储器芯片的CS端;其他三组的二次译码电路以此类推;⑥各组芯片的地址范围:1:80000H~83FFFH2:84000H~87FFFH3:88000H~8BFFFH4:8C000H~8FFFFH每组的两个存储器芯片分别占用其中的奇地址和偶地址;14、上题中若从74LS138的Y2开始选择ROM和RAM芯片,写出各块芯片的地址分配;解答:若从74LS138的Y2开始选择ROM和RAM芯片,那么片间寻址A16、A15和A14组合如下表所示则各组芯片的地址范围为:1:88000H~8BFFFH2:8C000H~8FFFFH3:90000H~93FFFH4:94000H~97FFFH第六章p2627、某微机系统中,有8块I/O接口芯片,每个芯片占有8个端口地址,若起始地址为9000H,8块芯片的地址连续分布,用74LS138作译码器,画出译码电路,并说明每块芯片的端口地址范围;解答:①片内寻址地址线的分配:由于每个芯片占有8个端口地址,则需要3个地址线用于片内寻址以访问片内8个端口,这样占用地址总线的最低3位,即A2、A1和A0;②片间寻址地址线的分配:由于总共有8块I/O接口芯片,则需要8根地址线,并接到74LS138的3个输入端C、B和A,74LS138的8个输出端Y0~Y7分别接8个I/O接口芯片的CS端,以寻址8块芯片中的一块,这样占用地址总线的A5、A4和A3位;③74LS138的控制端的连接:根据起始地址9000H可知,剩下的地址线A15~A6的组合为A15=1,其余的地址线的电平信号为低电平,加上M/IO=0,据此可以求出74LS138的3个控制端的连线逻辑;④各个芯片的地址范围:1 9000H~9007H2 9008H~900FH3 9010H~9017H4 9018H~901FH,同理可写出剩下的4块芯片的地址范围;第七章p302~3031~4题略5、中断服务子程序中中断指令STI放在不同位置会产生什么不同的结果中断嵌套时STI指令应如何设置解答:在进入中断服务程序时,中断允许标志位IF被清0,以屏蔽其他外部中断,在中断服务程序中可以用STI指令重新开中断,即IF=1;①STI指令放在中断服务程序开头和中间的某个位置,可以允许中断嵌套,CPU能响应更高级别的中断请求;②STI指令放在中断服务程序结束之前,几乎没什么作用,因为当前的中断服务快要结束了,中断结束后,自动恢复标志位IF,使IF=1,CPU又可以响应中断了;如果允许中断嵌套,则在中断服务子程序的开头用STI指令开中断;6、中断结束命令EOI放在程序的不同位置会产生什么不同的结果解答:EOI命令能够使中断控制器的ISR中断服务寄存器的相应位清0,允许同级别或级别较低的中断请求;在中断服务子程序中,EOI指令可以放在①中断服务程序的开头和中间的某个位置,则在中断处理中提前发出了EOI命令,则清除了正在执行的中断服务,ISR置“1”位被清0,允许响应同级别或低级的中断申请,但是这样会出现重复嵌套,使优先级高的中断不能及时得到服务;②放在中断服务程序返回指令IRET之前,这样当前中断结束之后,同级别或低级的中断申请同样可以得到响应,也不会出现重复嵌套,优先级高的中断也能够得到及时服务;建议在中断返回指令IRET指令前面使用EOI命令;7、中断向量表的功能是什么。

微机原理与接口技术(第四版)课后习题答案北京大学出版社

微机原理与接口技术(第四版)课后习题答案北京大学出版社

1第1章微型计算机系统〔习题1.1〕简答题(1)计算机字长(Word)指的是什么?(2)总线信号分成哪三组信号?(3)PC机主存采用DRAM组成还是SRAM组成?(4)Cache是什么意思?(5)ROM-BIOS是什么?(6)中断是什么?(7)32位PC机主板的芯片组是什么?(8)教材中MASM是指什么?(9)处理器的“取指-译码-执行周期”是指什么?(10)本课程的主要内容属于计算机系统层次结构中哪个层次?〔解答〕①处理器每个单位时间可以处理的二进制数据位数称计算机字长。

②总线信号分成三组,分别是数据总线、地址总线和控制总线。

③ PC机主存采用DRAM组成。

④高速缓冲存储器Cache是处理器与主存之间速度很快但容量较小的存储器。

⑤ ROM-BIOS是“基本输入输出系统”,操作系统通过对BIOS的调用驱动各硬件设备,用户也可以在应用程序中调用BIOS中的许多功能。

⑥中断是CPU正常执行程序的流程被某种原因打断、并暂时停止,转向执行事先安排好的一段处理程序,待该处理程序结束后仍返回被中断的指令继续执行的过程。

⑦主板芯片组是主板的核心部件,它提供主板上的关键逻辑电路。

⑧ MASM是微软开发的宏汇编程序。

⑨指令的处理过程。

处理器的“取指—译码—执行周期”是指处理器从主存储器读取指令(简称取指),翻译指令代码的功能(简称译码),然后执行指令所规定的操作(简称执行)的过程。

⑩机器语言层,即指令集结构。

(学生很多认为是:汇编语言层。

前4章主要涉及汇编语言,但本书还有很多处理器原理等内容)〔习题1.2〕判断题(1)软件与硬件的等价性原理说明软硬件在功能、性能和成本等方面是等价的。

(2)IA-64结构是IA-32结构的64位扩展,也就是Intel 64结构。

(3)8086的数据总线为16位,也就是说8086的数据总线的个数、或说条数、位数是16。

(4)微机主存只要使用RAM芯片就可以了。

(5)处理器并不直接连接外设,而是通过I/O 接口电路与外设连接。

微机原理与接口技术第二版课后习题答案完整版

微机原理与接口技术第二版课后习题答案完整版

习题11.什么是汇编语言,汇编程序,和机器语言答:机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合;汇编语言是面向及其的程序设计语言;在汇编语言中,用助记符代替操作码,用地址符号或标号代替地址码;这种用符号代替机器语言的二进制码,就把机器语言编程了汇编语言;使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序;2.微型计算机系统有哪些特点具有这些特点的根本原因是什么答:微型计算机的特点:功能强,可靠性高,价格低廉,适应性强、系统设计灵活,周期短、见效快,体积小、重量轻、耗电省,维护方便;这些特点是由于微型计算机广泛采用了集成度相当高的器件和部件,建立在微细加工工艺基础之上;3.微型计算机系统由哪些功能部件组成试说明“存储程序控制”的概念;答:微型计算机系统的硬件主要由运算器、控制器、存储器、输入设备和输出设备组成;“存储程序控制”的概念可简要地概括为以下几点:①计算机指硬件应由运算器、存储器、控制器和输入/输出设备五大基本部件组成;②在计算机内部采用二进制来表示程序和数据;③将编好的程序和原始数据事先存入存储器中,然后再启动计算机工作,使计算机在不需要人工干预的情况下,自动、高速的从存储器中取出指令加以执行,这就是存储程序的基本含义;④五大部件以运算器为中心进行组织;4.请说明微型计算机系统的工作过程;答:微型计算机的基本工作过程是执行程序的过程,也就是CPU自动从程序存放的第1个存储单元起,逐步取出指令、分析指令,并根据指令规定的操作类型和操作对象,执行指令规定的相关操作;如此重复,周而复始,直至执行完程序的所有指令,从而实现程序的基本功能;5.试说明微处理器字长的意义;答:微型机的字长是指由微处理器内部一次可以并行处理二进制代码的位数;它决定着计算机内部寄存器、ALU和数据总线的位数,反映了一台计算机的计算精度,直接影响着机器的硬件规模和造价;计算机的字长越大,其性能越优越;在完成同样精度的运算时,字长较长的微处理器比字长较短的微处理器运算速度快;6.微机系统中采用的总线结构有几种类型各有什么特点答:微机主板常用总线有系统总线、I/O总线、ISA总线、IPCI总线、AGP总线、IEEE1394总线、USB总线等类型;7.将下列十进制数转换成二进制数、八进制数、十六进制数;① 4.7510=0100.112=4.68=4.C16② 2.2510=10.012=2.28=2.816③ 1.87510=1.1112=1.78=1.E168.将下列二进制数转换成十进制数;① 1011.0112=11.610② 1101.010112=13.5810③ 111.0012=7.2109.将下列十进制数转换成8421BCD码;① 2006=0010 0000 0000 0110BCD② 123.456=0001 0010 0011.0100 0101 0110BCD10.求下列带符号十进制数的8位基2码补码;① +127补= 01111111② -1= 11111111补③ -128= 10000000补= 00000001④+1补11.求下列带符号十进制数的16位基2码补码;① +655补= 0000001010001111② -1补=1111111111111110③ -3212补=1111011101011100④ +100=0000000001100100补习题 21.8086 CPU在内部结构上由哪几部分组成各部分的功能是什么答:8086 CPU内部由两大独立功能部件构成,分别是执行部件和总线接口部件;执行部件负责进行所有指令的解释和执行,同时管理有关的寄存器;总线接口部件是CPU在存储器和I/O设备之间的接口部件,负责对全部引脚的操作;2.简述8086 CPU的寄存器组织;答:8086 CPU内部共有14个16位寄存器,按用途可分为数据寄存器,段寄存器,地址指针与变址寄存器和控制寄存器;数据寄存器包括累加器,基址寄存器,计数器,和数据寄存器;段寄存器用来存放各分段的逻辑段基值,并指示当前正在使用的4个逻辑段;地址指针与变址寄存器一般用来存放主存地址的段内偏移地址,用于参与地址运算;控制寄存器包括指令寄存器和标识寄存器;3.试述8086 CPU标志寄存器各位的含义与作用;答:标志寄存器是16位的寄存器,但实际上8086只用到9位,其中的6位是状态标识位,3位是控制标识位;状态标志位分别是CF,PF,AF,ZF,SF,和OF;控制标志位包括DF,IF,TF;CF:进位标志位;算数运算指令执行后,若运算结果的最高位产生进位或借位,则CF=1,否则CF=0;PF:奇偶标志位;反应计算结果中1的个数是偶数还是奇数;若运算结果的低8位中含有偶数个1,则PF=1;否则PF=0.AF:辅助进位标志;算数运算指令执行后,若运算结果的低4位向高4位产生进位或借位,则AF=1;否则AF=0.ZF:零标志位;若指令运算结果为0,则ZF=1;否则ZF=0;SF:符号标志位;它与运算结果最高位相同;OF:溢出标志位;当补码运算有溢出时,OF=1;否则OF=0;DF:方向标志位;用于串操作指令,指令字符串处理时的方向;IF:中断允许标志位;用来控制8086是否允许接收外部中断请求;TF:单步标志位;它是为调试程序而设定的陷阱控制位;4.8086 CPU状态标志和控制标志有何不同程序中是怎样利用这两类标识的8086的状态标志和控制标识分别有哪些答:状态标志位反应了当前运算和操作结果的状态条件,可作为程序控制转移与否的依据;它们分别是CF,PF,AF,ZF,SF,和OF;控制标志位用来控制CPU的操作,由指令进行置位和复位,控制标志位包括DF,IF,TF;5.将1001 1100和1110 0101相加后,标识寄存器中CF, PF, AF, ZF, SF, OF各为何值答:CF=1,PF=1,AF=1,ZF=0,SF=1,OF=06.什么是存储器的物理地址和逻辑地址在8086系统中,如何由逻辑地址计算物理地址答:逻辑地址是思维性的表示,由段地址和偏移地址联合表示的地址类型叫逻辑地址;物理地址是真实存在的唯一地址,指的是存储器中各个单元的单元号;在8086系统中,物理地址=段地址×10H+偏移地址7.段寄存器CS=1200H,指令指针寄存器IP=4000H,此时,指令的物理地址为多少指向这一地址的CS指和IP值是唯一的吗答:此指令的物理地址=1200H×10H+4000H=16000H 并且指向这一物理地址的CS值和IP值并不是唯一的;8.在8086系统中,逻辑地址FFFF:0001,00A2:37F和B800:173F的物理地址分别是多少答:9.在8086系统中,从物理地址388H开始顺序存放下列3个双字节的数据651AH,D761H和007BH,请问物理地址388H,389H,38AH,38BH,38CH和38DH 6个单元中分别是什么数据答:388H=1AH,389H=65H,38AH=61H,38BH=DTH,38CH=7BH,38DH=00H10.8086微处理器有哪几种工作模式各有什么特点答:8086微处理器有最大和最小工作模式;在最小模式下:8086 CPU直接产生全部总线控制信号DT/R,DEN,ALE,M/IO和命令输出信号RD,WR,INTA并提出请求访问总线的逻辑信号HOLD,HLDA;在最大工作模式下,必须配置8288总线控制器,并且根据8086提供的状态信号S2,S1,S0,输出读写控制命令,可以提供灵活多变的系统配置,以实现最佳的系统性能;11.简述8086引脚信号中M/IO,DT/R,RD,WR,ALE,DEN和BHE的作用;答:M/IO:输出信号,高电平时,表示CPU与存储器之间数据传输;低电平时,表示CPU与I/O设备之间数据传输;DT/R:控制其数据传输方向的信号;DT/R=1时,进行数据发送;DT/R=0时,进行数据接收;RD:CPU的读信号,RD=0时,表示8086为存储口或I/O端口读操作;WR:CPU的写信号,WR =0时,表示8086为存储口或I/O端口写操作;ALE:地址存锁信号,在T1能时刻有效;DEN:数据选通信号,当DEN有效时,表示允许传输;BHE:数据总线允许信号,与A0组合使用,表示是否访问奇地址字节;12.简述8086读总线周期和写总线周期和引脚上的信号动尖态变化过程;8086的读周期时序和写周期时序的区别有哪些答:在8086读周期内,有关总线信号的变化如下:①M/IO:在整个读周期保持有效,当进行存储器读操作时,M/IO为高电平;当进行I/O端口读操作时,M/IO为低电平;②A19/S6~A16/S3:在T1期间,输出CPU要读取的存储单元或I/O端口的地址高4位;T2~T4期间输出状态信息S6-S3;③BHE/S7:在T1期间,输出BHE有效信号BHE为低电平,表示高8位数据总线上的信息可以使用,BHE信号通常作为奇地址存储体的体选信号偶地址存储体的体选信号是最低地址位A0;T2—T4期间输出高电平;④AD l5~AD0:在T1期间,输出CPU要读取的存储单元或I/O端口的地址A15~A0;T2期间为高阻态,T3~T4期间,存储单元或I/O端口将数据送上数据总线;CPU从AD l5~AD0上接收数据;⑤ALE:在T1期间地址锁存有效信号,为一正脉冲,系统中的地址锁存器正是利用该脉冲的下降沿来锁存A19/S6~A16/S3,AD l5~AD0中的20位地址信息以及BHE;⑥RD:T2期间输出低电平送到被选中的存储器或I/O接口,注意,只有被地址信号选中的存储单元或I/O端口,才会被RD信号从中读出数据数据送上数据总线AD l5~AD0;⑦DT/R:在整个总线周期内保持低电平,表示本总线周期为读周期,在接有数据总线收发器的系统中,用来控制数据传输方向;⑧DEN:在T2~T3期间输出有效低电平,表示数据有效,在接有数据总线收发器的系统中,用来实现数据的选通;总线写操作的时序与读操作时序相似,其不同处在于:①AD l5~AD0:在T2~T4期间送上欲输出的的数据,而无高阻态;②W R:从T2~T4,W R引脚输出有效低电平,该信号送到所有的存储器和I/O 接口;注意,只有被地址信号选中的存储单元或I/O端口才会被W R信号写入数据;③DT/R:在整个总线周期内保持高电平,表示本总线周期为写周期,在接有数据总线收发器的系统中,用来控制数据传输方向;习题31.假定DS=2000H,ES=2100H,SS=1500H,SI=00A0H,BX=0100H,BP=0010H,数据变量V AL的偏移地址为0050H,请指出下列指令原操作数是什么寻址方式,其物理地址是多少(1)MOV AX, 0ABH 2 MOV AX, 100H3 MOV AX, V AL4 MOV BX, SI5 MOV AL, V ALBX6 MOV CL, BXSI7 MOV V ALSI, BX 8 MOV BPSI, 100答:1 立即数寻址,无物理地址2 直接寻址,物理地址=2000H×10H+100H=20100H3 直接寻址,物理地址=2000H×10H+0050H=20050H4 寄存器间接寻址,物理地址=2000H×10H+00A0=200A0H5 相对寄存器寻址,物理地址=2000H×10H+0050+0100H=20150H6 基址加变寻址,物理地址=2000H×10H+0100H+00A0H=201A0H7 寄存器寻址,无物理地址8 立即数寻址,无物理地址2.已知SS=0FFA0H,SP=00B0H,先执行两条把8057H和0F79H分别进栈的PUSH指令,再执行一条POP指令,试画出堆栈区和SP内容变化的过程示意图;答:“8057H”进栈,则SP自动从00B0H指向00B2H,“0F79H”进栈,则SP自动从00B2H指向00B4H;执行一条POP指令,“0F79H”被弹出栈,SP从00B4H指向00B2H;图略;3.设有关寄存器及存储单元的内容如下:DS=2000H, BX=0100H, AX=1200H, SI=0002H, 20100H=12H, 20101H=34H, 20102H=56H, 20103H=78H, 21200H=2AH, 21201H=4CH, 21202H=0B7H, 21203H=65H.试说明下列各条指令单独执行后相关寄存器或存储单元的内容;(1)MOV AX, 1800H 2 MOV AX, BX3 MOV BX, 1200H4 MOV DX, 1100BX5 MOV BXSI, AL6 MOV AX, 1100BXSI答:1 AX=1800H 2 AX=0100H 3 BX=4C2AH4 DX=4C2AH5 20102H=00H6 AX=65B7H4. 写出实现下列计算的指令序列;1 Z=W+X+Z2 Z=W-X+6-R+9答:1 MOV AX, ZADD AX, XADD AX, WMOV Z, AX2 MOV AX, WADD X, 6SUB AX, XADD R, 9SUB AX, RMOV Z, AX5. 若在数据段中从字节变量TABLE相应的单元开始存放了0~15的平方值,试写出包含XLAT指令的指令序列查找N0~15中的某个平方数;答:LEA BX, TABLEMOV AL, CLXLAT6. 写出实现下列计算的指令序列;1 Z=WX/R+62 Z=W-X/5Y2答:1 MOV AX, WIMUL XADD R, 6IDIV RMOV Z, AX2 MOV AX, WSUB AX, XMOV BL, 5IDIV BLCBWIMUL YMOV BX, 2IMUL BXMOV Z, AX7. 假定DX=1100100110111001B,CL=3,CF=1, 试确定下列各条指令单独执行后DX的值;1 SHR DX, 12 SHL DL, 13 SAL DH, 14 SAR DX, CL5 ROR DX, CL6 ROL DL, CL7 RCR DL, 18 RCL DX, CL答:1 DX=0110 0100 1101 1100B 2 DX=1100 1001 0111 0010B3 DX=1001 0010 1011 1001B4 DX= 1111 1001 0011 0111B5 DX= 0011 1001 0011 0111B 6DX= 0100 1101 1100 1110B7 DX= 1110 0100 1101 1100B 8 DX= 1001 0011 0111 0011B8. 已知程序段如下:MOV AX, 1234HMOV CL, 4ROL AX, CLDEC AXMOV CX, 4MUL CXINT 20H试问:1每条指令执行后,AX寄存器的内容是什么2每条指令执行后,CF,SF 及ZF的值分别是什么3程序运行结束后,AX及DX寄存器的值为多少答:MOV AX, 1234H AX=1234H, CF=0,SF=0,ZF=0MOV CL, 4ROL AX,CL AX=2341H,CF=1,SF=0,ZF=0DEC AX AX=2340H,CF=1,SF=0,ZF=0MOV CX,4MULL CX AX=8D00H, CF=0,SF=1,ZF=0INT 20H结束后,DX=0000H, AX=8000H9.试分析下列程序段:ADD AX, BXJNC L2SUB AX, BXJNC L3JMP SHORTL5如果AX,BX的内容给定如下:AX BX1 14C6H 80DCH2 B568H 54B7H问该程序在上述情况下执行后,程序转向何处;答:1转到L2处2转到L3处习题41.下列语句在存储器中分别为变量分配多少字节空间并画出存储空间的分配图;V AR1 DB 10,2V AR2 DW 5 DUP ,0V AR3 DB ‘HOW ARE YOU ’,3 DUP1,2V AR4 DD -1,1,0答:字节空间:V AR1:2;V AR2:12;V AR3:13;V AR4:8;存储空间的分配图:2.假定V AR1 和V AR2 为字变量,LAB 为标号,试指出下列指令的错误之处; 1ADD V AR1,V AR2 2SUB AL,V AR13JMP LABCX 4JNZ V AR15 MOV 1000H,100 6SHL AL, 4答:1 在算术运算指令中,两个操作数不能同时为存储器寻址方式2 AL 为字节,V AR1 为字变量,字长不相等;3 错误1:寄存器相对寻址方式,只能使用基址或变址寄存器,不能使用CX寄存器;错误2:汇编格式错误,无法判段是段内转移还是段间转移;4 转向地址应为标号,不能是变量;5 目的操作数的类型不确定;6 SHL 指令中,当所移位数超过1 时,必须用CL取代所移位数;3.对于下面的符号定义,指出下列指令的错误;A1 DBA2 DB 10K1 EQU 10241 MOV K1,AX 2MOV A1,AX3CMP A1,A2 4K1 EQU 2048答:1K1 为常量,不能用MOV 指令赋值;2A1 为字节,AX 为字变量,类型不一致;3A1 和A2同为存储器寻址方式,不符合语法规则;4K1 重新赋值前,必须用PURGE 释放;4.数据定义语句如下所示:FIRST DB 90H,5FH,6EH,69HSECOND DB 5 DUPTHIRD DB 5 DUPFORTH DB 4 DUP自FIRST 单元开始存放的是一个四字节的十六进制数低位字节在前,要求:编一段程序将这个数左移两位后存放到自SECOND 开始的单元,右移两位后存放到自THIRD 开始的单元,求补后放到FORTH开始的单元;注意保留移出部分答:DA TA SEGMENTFIRST DB 90H,5FH,6EH,69HSECOND DB 5 DUPTHIRD DB 5 DUPFORTH DB 4 DUPDA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXLEA SI,FIRSTLEA DI,SECONDMOV CX,2CLC;左移2 位MOV AX,WORD PTR SI ;AX=5F90H 为低十六位数据INC SIINC SIMOV DX,WORD PTR SI ;DX=696EH 为高十六位数据PUSH DX ;保存原有的高十六位数据PUSH AX ;保存原有的低十六位数据ROL DX,CL;将高位数据不带进位循环左移两位,即高2 位数据在DL 的低2 位AND DL,03H ;让DL 中仅保存移出的高2 位数据MOV DI+4 ,DL;将移出的高2 位数据放入SECOND 中的最高单元中ROL AX,CL;将低位数据不带进位循环左移两位,即AX 的高2 位在AL 的低2 位AND AL,03H;让AL 中仅保存移出的AX 高2 位数据MOV BL ,AL;将AL 中的数据放入BL 中保存POP AX;弹出原有的低十六位数据POP DX;弹出原有的高十六位数据SHL DX,CL;将高位数据算术逻辑左移2 位SHL AX,CL;将低位数据算术逻辑左移2 位OR DL,BL;将AX 中移出的高2 位数据放入DX 的低2 位MOV WORD PTR DI ,AXMOV WORD PTR DI+2 ,DX;右移2 位LEA DI,THIRDMOV CX,2CLCMOV AX,WORD PTR SI ;AX=5F90H 为低十六位数据INC SIINC SIMOV DX,WORD PTR SI ;DX=696EH 为高十六位数据PUSH DX;保存原有的高十六位数据PUSH AX;保存原有的低十六位数据ROR AX,CL;将低位数据不带进位循环右移两位,即低2 位数据在AH 的高2 位AND AH,0C0H;让AH 中仅保存移出的低2 位数据PUSH CXMOV CX,6SHR AH,CLPOP CXMOV DI ,AH ;将移出的低2 位数据放入THIRD 中的最低单元中ROR DX, CL;将低位数据不带进位循环左移两位,即AX 的高2 位在AL 的低2 位AND DH,0C0H ;让DH 中仅保存移出的DX 低2 位数据MOV BL ,DH ;将DH 中的数据放入BL 中保存POP AX ;弹出原有的低十六位数据POP DX ;弹出原有的高十六位数据SHR DX,CL ;将高位数据算术逻辑左移2 位SHR AX,CL ;将低位数据算术逻辑左移2 位OR AH,BL ;将DX 中移出的低2 位数据放入AX 的高2 位MOV WORD PTR DI+1 , AXMOV WORD PTR DI+3 ,DX;求补LEA DI,FORTHMOV AX,WORD PTR SI ;AX=5F90H 为低十六位数据INC SIINC SIMOV DX,WORD PTR SI ;DX=696EH 为高十六位数据XOR AX, 0FFFFH ;将低十六位取反XOR DX, OFFFFH ;将高十六位按位取反CLCADD AX,01H ;低位加1,即可为原数的求补ADC DX,0 ;高位加低位加法时的进位MOV WORD PTR DI , AXMOV WORD PTR DI+2 ,DXMOV AH,4CHINT 21HCODE ENDSEND START5.试编程序将内存从40000H到4BFFFH的每个单元中均写入55H,并再逐个单元读出比较,看写入的与读出的是否一致;若全对,则将AL置7EH; 只要有错,则将AL置81H;答:DATA SEGMENTDA1 DB 55HCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,4000HMOV DS,AXMOV CX,0C000HMOV BX,0000HMOV AH,55HNEXT1: MOV byte ptrBX,AHINC BXLOOP NEXT1MOV BX,0000HMOV CX,0C000HMOV AL,81HNEXT2: MOV AH, BXCMP AH,55HJNZ EXITINC BXLOOP NEXT2MOV AL,7EHEXIT: MOV AH,4CHINT 21HCODE ENDSEND START6.在当前数据段4000H开始的128个单元中存放一组数据,试编程序将它们顺序搬移到A000H开始的顺序128个单元中,并将两个数据块逐个单元进行比较; 若有错将BL置00H; 全对则将BL置FFH,试编程序;答:DATA SEGMENTORG 400HDA1 DB 128 DUPORG 0A00HDA2 DB 128 DUPDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,ES:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,DA1LEA DI,DA2MOV CX,128AGAIN: MOV AL,SIINC SIINC DILOOP AGAINLEA SI, DA1LEA DI, DA2MOV CX,128NEXT: MOV AL,SIMOV BL,DICMP AL,BLJNZ ERRORINC SIINC DIMOV BL,0FFHLOOP NEXTJMP EXITERROR: MOV BL,00HEXIT: MOV AH,4CHINT 21HCODE ENDSEND START7. 设变量单元A、B、C存放有3个数,若3个数都不为零,则求3个数的和,存放在D中; 若有一个为零,则将其余两个也清零,试编写程序;答:DATA SEGMENTA DBB DBC DBDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXCMP A,00HJNZ LP1MOV B,0MOV C,0JMP LP4LP1: CMP B,00HJNZ LP2MOV A,0MOV C,0JMP LP4LP2: CMP C,00HJNZ LP3MOV A,0MOV B,0JMP LP4LP3: MOV AL,AADD AL,BADD AL,CMOV AH,4CHLP4: INT 21HCODE ENDSEND START8. 有一个100个字节的数据表,表内元素已按从大到小的顺序排列好,现给定一元素,试编程序在表内查找,若表内已有此元素,则结束; 否则,按顺序将此元素插入表中适当的位置,并修改表长;答:DATA SEGMENTBUFF DB 100 DUPDA1 DBLENGTH DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV SI,0MOV AL,DA1MOV CX,100FIND0: CMP BUFFSI,ALJZ EXITINC SILOOP FIND0MOV DI,99MOV SI,0COMPARE: CMP BUFFDI,ALJG INSERTMOV BL,BUFFDIMOV BUFFDI+1,BLDEC DICMP DI,SIJNL COMPAREJMP EXITINSERT: MOV BUFFDI+1,ALMOV LENGTH , 101 EXIT: MOV AH,4CHINT 21HCODE ENDSEND START9. 内存中以FIRST和SECOND开始的单元中分别存放着两个16位组合的十进制BCD码数,低位在前;编程序求这两个数的组合的十进制和,并存到以THIRD 开始的单元;答:DATA SEGMENTFIRST DD 34341212HSECOND DD 78785656HTHIRD DB , , ,DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,FIRSTLEA DI,SECONDLEA BX,THIRDMOV CX,4CLCAGAIN: MOV AL,BYTE PTRSIMOV DL,BYTE PTRDIADC AL,DLDAAMOV BYTE PTRBX,ALINC SIINC DIINC BXLOOP AGAINJC AAMOV BYTE PTRBX,0JMP EXITAA: MOV BYTE PTRBX,1EXIT: MOV AH,4CHINT 21HCODE ENDSEND START10. 编写一段程序,接收从键盘输入的10个数,输入回车符表示结束,然后将这些数加密后存于BUFF缓冲区中;加密表如下:输入数字: 0,1,2,3,4,5,6,7,8,9; 密码数字: 7,5,9,1,3,6,8,0,2,4;答:DATA SEGMENTMITAB DB '7591368024'CONT EQU $-MITABBUFF DB 10 DUP ,'$'YUANWEN DB 10 DUP ,'$'DATA ENDSCODE SEGMENTASSUME CS∶CODE,DS∶DATASTART:MOV AX,DATAMOV DS,AXMOV SI,0MOV CX,CONTINPUT: MOV AH,1INT 21HCMP AL,13JZ EXITAND AL,0FHMOV YUANWENSI ,ALINC SILOOP INPUTEXIT : LEA BX,MITABMOV CX,SIMOV SI,0JIAMI: MOV AL,YUANWENSIXLAT MITABMOV BUFFSI,ALINC SILOOP JIAMIMOV AH, 4CHINT 21HCODE ENDSEND START11.试编程序,统计由40000H开始的16K个单元中所存放的字符“A”的个数,并将结果存放在DX中;答:DATA SEGMENTDA1 DB 'A'BUFF DB 4000H DUPDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,4000HMOV DS,AXMOV BX,0MOV CX,4000HFIND: MOV AL,BXMOV BL,DA1CMP AL,BLJNZ NEXTNEXT: INC SILOOP FINDMOV AH,4CHINT 21HCODE ENDSEND START12. 在当前数据段DS,偏移地址为DATAB开始的顺序80个单元中,存放着某班80个同学某门考试成绩;按如下要求编写程序:1 编写程序统计≥90分; 80分~89分; 70分~79分; 60分~69分,<60分的人数各为多少,并将结果放在同一数据段、偏移地址为BTRX开始的顺序单元中;2 试编程序,求该班这门课的平均成绩为多少,并放在该数据段的A VER单元中; 答:DATA SEGMENTBUFF DW 80 DUPDA9 DB 0DA8 DB 0DA7 DB 0DA6 DB 0DA5 DB 0A VER DB 0DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CX,80COMPARE: MOV BX,0CMP BUFFBX,90JB LP8JMP NEXTLP8: CMP BUFFBX,80JB LP7INC DA8JMP NEXTLP7: CMP BUFFBX,70JB LP6INC DA7JMP NEXTLP6: CMP BUFFBX,60JB LP5INC DA6JMP NEXTLP5: INC DA5JMP NEXT NEXT: INC BXLOOP COMPAREMOV CX,80XOR AX,AXMOV BX,00 SUM: ADD AX,BUFFBXINC BXLOOP LP1MOV CL,80DIV CLMOV A VER , ALMOV AH,4CHINT 21HCODE ENDSEND START13. 编写一个子程序,对AL中的数据进行偶校验,并将经过校验的结果放回AL 中;答:JIOU PROCPUSH CXPUSH BXXOR AH, AHPUSH AXMOV CL, 7LOOP1: SAR AL, 1ADC AH, 0LOOP LOOP1MOV AL, AHXOR AH, AHMOV BL, 2DIV BLMOV BL, AHPOP AXROR BL, 1OR AL, BLPOP BXPOP CXRETJIOU ENDP14. 利用上题的子程序,对80000H开始的256个单元的数据加上偶校验,试编程序;CODE SEGMENTASSUME CS: CODESTART : MOV AX, 8000HMOV DS, AXMOV SI, 0MOV CX, 256 LP: MOV AL, SICALL JIOUMOV SI, ALINC SILOOP LPMOV AH, 4CHINT 21HJIOU PROCPUSH CXPUSH BXXOR AH, AHPUSH AXMOV CL, 7 LOOP1: SAR AL, 1ADC AH, 0LOOP LOOP1MOV AL, AHXOR AH, AHMOV BL, 2DIV BLMOV BL, AHPOP AXROR BL, 1OR AL, BLPOP BXPOP CXRETJIOU ENDPCODE ENDSEND START习题51.试述DRAM的工作特点;与SRAM相比有什么长处和不足之处;说明它的使用场合;答:DRAM,动态随机存取存储器,需要不断的刷新,才能保存数据; 而且是行列地址复用的,许多都有页模式; SRAM,静态的随机存取存储器,加电情况下,不需要刷新,数据不会丢失,而且一般不是行列地址复用的;与SRAM相比,DRAM价格便宜、速度慢、容量大,主要用来做主存储器,存储程序和数据;而SRAM主要用在Cache等对速度要求高的情况;2.试述DRAM刷新过程和正常读/写过程的区别;答:刷新是以行为单位进行,且刷新过程中不能进行读写操作;3.设有一个具有20位地址和32位字长的存储器,问:(1)该存储器能存储多少个字节的信息(2)如果存储器由512K8位SRAM芯片组成,需要多少片(3)需要多少位作芯片选择答:1该存储器能存储4MB的信息;2 需要8片512K8位的芯片;3 需要1位做芯片选择;4.对于8K×8位RAM组成的存储器系统,若某组的起始地址为08000H,则其末地址为多少答:末地址为9FFF.5.在8088最大方式系统总线上扩充设计4K字节的SRAM存储器电路;SRAM芯片选用Intel 2114,起始地址从0000H;试画出此存储器电路与系统总线的连接图;答:系统容量为4K8bit,芯片容量为1K4bit,所以一共需要8片芯片连接图如下:6.在8088系统总线上扩充设计8K的字节的SRAM存储器电路;SRAM芯片选用Intel 6264,起始地址从04000H开始,译码器电路74LS138.(1)计算此RAM存储区的最高地址是多少;(2)画出此存储器电路与系统总线的连接图;答:1最高地址是05FFFH;27.在8086最小方式系统总线上扩充设计16K字节的SRAM存储器电路,SRAM芯片选用Intel 6264,起始地址从04000H开始,译码器电路采用74LS138. (1)计算此RAM存储区域的最高地址是多少(2)画出此存储器与总线的连接图;答:1 07FFFH2习题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才能进行相应的操作;中断方式提高了计算机系统中信息处理的并行和处理器效率,中断可以实现同步操作,实时处理等功能;8.8088/8086中断向量表的作用是什么答:中断向量表建立了不同的中断源与其相应的中断服务程序首地址之间的联系,它是CPU在响应中断时可以依据中断类型码自动转向中断服务程序;9.什么叫中断向量它放在哪里对于1CH的中断向量在哪里如果1CH的中断程序从5110H开始:2030H开始,则中断向量应该怎样存放答:中断向量即用来提供中断入口地址的一个指针;10.8259中IRR, IMR, ISR三个寄存器的作用是什么答:⑴中断请求寄存器IRR8259A有8条外部中断请求输入信号线IR0-IR7,每一条请求线上有一个相应的触发器来保存请求信号,它们形成了中断请求寄存器IRRInterrupt Request Register;⑵中断屏蔽寄存器IMRIMRInterrupt Mask Register用来存放屏蔽位信息,IMR的每一位可以禁止IRR 中对应位的中断请求输入信号进入;⑶中断服务寄存器ISRISRInterrupt Service Register存放当前正在进行服务的所有中断;ISR中相应位的置位是在中断响应的INTA脉冲期间,由优先权判决电路根据IRR中各请求位的优先权级别和IMR中屏蔽位的状态,将中断的最高优先级请求位选通到ISR中;11.类型号为20H的中断服务程序入口符号地址为INT-5,试写出中断向量的装入程序片段;答:MOV AX, 0MOV DS, AXMOV SF, 20H4LEA AX, IMSMOV IS, AXMOV AX, SEQ, INTSMOV SI+2, AX12.简述DMA控制器同一般接口芯片的区别;答:DMA控制器能给出访问内存所需要的地址信息,并能自动修改地址指针,也能设定和修改传送的字节数,还能向存储器和外设发出相应的读/写控制信号;在DMA传送结束后,它能释放总线,把对总线的控制权又交还给CPU;用DMA方式传输数据时,不需要进行保护和恢复断点及现场之类的额外操作;13.简述8237A3种基本传送类型的特点;答:单次传送方式:每次DMA操作只传送1B,然后就自动把总线控制权交给CPU,若还有通道请求信号,则DMAC则再重新向CPU发出总线请求,获得控。

微机原理与接口技术课后习题答案(详细完全版)

微机原理与接口技术课后习题答案(详细完全版)

segment stack db 1024(0) stack ends data segment string db 'Hello,Assembly!',0dH,0aH,‘$’ data ends code segment 'code' assume cs:code,ds:data,ss:stack start: mov dx,offset string mov ah,9 int 21h code ends end start
8
next1:
next2:
3.21
restart: again:
next:
fun0: fun1: fun2: fun3: fun4: fun5: fun6: fun7:
disp:
done:
; mov int pop pop jmp …
ah,2 21h bx ax restart
;显示一个字符
3.22 编制程序完成 12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H 和 34H 等 10 个字节数据之和,并将结果存入字节变量 SUM 中(不考虑溢出和进位) 。 ;wjxt322.asm .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据 num equ 10 ;数据个数 sum db ? ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end 3.23 求主存 0040h:0 开始的一个 64KB 物理段中共有多少个空格? ; wjxt323.asm .model small .code start: mov ax,0040h ;送段地址 mov ds, ax mov si, 0 ;偏移地址 mov cx, si ;计数(循环次数) xor ax, ax ;空格计数器清零 again: cmp byte ptr [si], 20h ;与空格的 ASCII 码比较 jne next ;不是空格,转 inc ax ;是空格,空格数加 1 next: inc si ;修改地址指针 loop again ;cx=cx-1,如 cx=0 退出循环 .exit 0

微机原理与接口技术课后习题参考答案

微机原理与接口技术课后习题参考答案

微机原理与接口技术》李华贵主编课后习题参考答案第1章(1.6 习题)1.简述名词的概念:微处理器、微型计算机、微型计算机系统。

答:(1)微处理器:微处理器(Microprocessor)简称或MP,或CPU。

CPU是采用大规模和超大规模集成电路技术将算术逻辑部件ALU (Arithmetic Logic Unit )、控制部件CU (Co ntrol Un it )和寄存器组R (Registers)等三个基本部分以及内部总线集成在一块半导体芯片上构成的电子器件。

(2)微型计算机:微型计算机(Microcomputer )是指以微处理器为核心,配上由大规模集成电路制作的存储器、输入/输出接口电路及系统总线等所组成的计算机,简称微机。

(3)微型计算机系统:微型计算机系统由硬件与软件两大部分组成,分别称为硬件(Hardware)系统与软件(Software)系统。

其中,硬件(Hardware)系统由CPU、内存储器、各类I/O接口、相应的I/O设备以及连接各部件的地址总线、数据总线、控制总线等组成。

软件(Software)系统:计算机软件(Software)是指为运行、维护、管理、应用计算机所编制的程序及程序运行所需要的数据文档资料的总和。

一般把软件划分为系统软件和应用软件。

其中系统软件为计算机使用提供最基本的功能,但是并不针对某一特定应用领域。

而应用软件则恰好相反,不同的应用软件根据用户和所服务的领域提供不同的功能。

2.简述名词的概念:指令寄存器、地址寄存器、标志寄存器。

答:(1)指令寄存器:指令寄存器(Instruction Register,IR)用来保存计算机当前正在执行或即将执行的指令。

当一条指令被执行时,首先,CPU从内存取出指令的操作码,并存入IR中,以便指令译码器进行译码分析。

(2)地址寄存器:地址寄存器(Address Register,AR)被动地接受IP传送给它的地址值(二进制地址),AR的作用是保持IP送来的地址,并且以并行方式连接输出到CPU的地址引脚上,以便CPU访问指定的内存单元。

微机原理与接口技术课后习题与参考答案

微机原理与接口技术课后习题与参考答案

微机原理与接口技术课后习题与参考答案-标准化文件发布号:(9456-EUATWK-MWUB-WUNN-INNUL-DDQTY-KII第一章课后习题1.1 把下列十进制数转换成二进制数、八进制数、十六进制数。

① 16.25 ② 35.75 ③ 123.875 ④ 97/1281.2 把下列二进制数转换成十进制数。

① 10101.01 ② 11001.0011 ③ 111.01 ④ 1010.11.3 把下列八进制数转换成十进制数和二进制数。

① 756.07 ② 63.73 ③ 35.6 ④ 323.451.4 把下列十六进制数转换成十进制数。

① A7.8 ② 9AD.BD ③ B7C.8D ④ 1EC1.5 求下列带符号十进制数的8位补码。

① +127 ② -1 ③ -0 ④ -1281.6 求下列带符号十进制数的16位补码。

① +355 ② -11.7 计算机分那几类各有什么特点1.8 简述微处理器、微计算机及微计算机系统三个术语的内涵。

1.9 80X86微处理器有几代各代的名称是什么1.10 你知道现在的微型机可以配备哪些外部设备?1.11 微型机的运算速度与CPU的工作频率有关吗?1.12 字长与计算机的什么性能有关?习题一参考答案1.1 ① 16.25D=10000.01B=20.2Q=10.4H② 35.75D=100011.11B=43.6Q=23.CH③ 123.875D=1111011.111B=173.7Q=7B.EH④ 97/128D=64/123+32/128+1/128=0.1100001B=0.604Q=0.C2H1.2 ① 10101.01B=21.25D ② 11001.0011B=25.1875D③ 111.01B=7.25D ④ 1010.1B=10.5D1.3 ① 756.07Q=111101110.000111B=494.109D ②63.73Q=110011.111011B=51.922D③ 35.6Q=11101.110B=29.75D ④ 323.45Q=11010011.100101B=211.578D1.4 ① A7.8H=167.5D ② 9AD.BDH=2477.738D③ B7C.8D=2940.551D ④ 1ECH=492D1.5 ① [+127]补=01111111 ② [-1] 补= 11111111③ [-0] 补=00000000 ④[-128] 补=100000001.6 ① [+355] 补= 0000000101100011 ② [-1] 补= 1111 1111 1111 11111.7 答:传统上分为三类:大型主机、小型机、微型机。

微机原理与接口技术(第三版)&电子工业出版社&课本习题答案

微机原理与接口技术(第三版)&电子工业出版社&课本习题答案

&电子工业出版社&第二章 8086体系结构与80x86CPU1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU,Execution Unit)和总线接口部件(BIU,Bus Interface Unit)。

指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存器组和EU控制器等4个部件组成,其主要功能是执行指令。

总线接口部件(BIU)主要由地址加法器、专用寄存器组、指令队列和总线控制电路等4个部件组成,其主要功能是形成访问存储器的物理地址、访问存储器并取指令暂存到指令队列中等待执行,访问存储器或I/O端口读取操作数参加EU运算或存放运算结果等。

2.8086CPU预取指令队列有什么好处?8086CPU内部的并行操作体现在哪里?答:8086CPU的预取指令队列由6个字节组成,按照8086CPU的设计要求,指令执行部件(EU)在执行指令时,不是直接通过访问存储器取指令,而是从指令队列中取得指令代码,并分析执行它。

从速度上看,该指令队列是在CPU内部,EU从指令队列中获得指令的速度会远远超过直接从内存中读取指令。

8086CPU内部的并行操作体现在指令执行的同时,待执行的指令也同时从内存中读取,并送到指令队列。

5.简述8086系统中物理地址的形成过程。

8086系统中的物理地址最多有多少个?逻辑地址呢?答:8086系统中的物理地址是由20根地址总线形成的。

8086系统采用分段并附以地址偏移量办法形成20位的物理地址。

采用分段结构的存储器中,任何一个逻辑地址都由段基址和偏移地址两部分构成,都是16位二进制数。

通过一个20位的地址加法器将这两个地址相加形成物理地址。

具体做法是16位的段基址左移4位(相当于在段基址最低位后添4个“0”),然后与偏移地址相加获得物理地址。

由于8086CPU的地址线是20根,所以可寻址的存储空间为1M字节,即8086系统的物理地址空间是1MB。

微机原理及接口技术习题答案教学教材

微机原理及接口技术习题答案教学教材

微机原理及接⼝技术习题答案教学教材微机原理及接⼝技术习题答案第⼀章习题及答案1. 微处理器内部包含哪三⼤部分?解:运算器、控制器和寄存器组。

2. 完成下列数制的转换①10101101B=()D=()H 解:10101101B=173D=ADH 。

②0.11B=()D 解:0.11B=0.75D 。

③211.25=( )B =( )H解:211.25=11010011.01B=D3.4H 。

④10111.0101B=( )H=( )BCD解:10111.0101B=17.5H=23.3125D=(0010 0011.0011 0001 0010 0101)BCD3. 已知X=+1011010B ,Y =–0011011B ,设机器数为8位,分别写出X 、Y 的原码、反码和补码。

解:[][][]01011010B 01011010B 01011010B X X X ===原反补 [][][]10011011B 11100100B 11100101BY Y Y ===原反补4. 已知X 的真值为32,Y 的真值为–19,求[]?Y X =+补解:[]00001101B X Y +=补5. 已知X=51,Y=–86,⽤补码完成下列运算,并判断是否产⽣溢出(设字长为8位)。

① X +Y ② X -Y ③ –X +Y ④ –X -Y 解: 10100011B ,因为67C C 0⊕=,所以未产⽣溢出。

② 11110111B ,因为67C C 1⊕=,所以产⽣溢出。

③ 01110111B ,因为67C C 1⊕=,所以产⽣溢出。

④ 00100011B ,因为67C C 0⊕=,所以未产⽣溢出。

6. 若使与门的输出端输出⾼电平,则各输⼊端的状态是什么?解:各输⼊端为⾼电平。

7. 若使与⾮门的输出端输出低电平,则各输⼊端的状态是什么?解:各输⼊端为⾼电平。

8. 如果74LS138译码器的Y 4端输出低电平,则C 、B 、A 三个输⼊端的状态分别是什么?解:C 、B 、A 三个输⼊端的状态分别是‘1’,‘0’,‘0’。

微机原理与接口技术 课后答案 高等教育出版社 (徐惠民 着)

微机原理与接口技术 课后答案 高等教育出版社 (徐惠民 着)
答: 1011.1010B,十进制:11.625,十六进制:B.AH
1111101.11B,十进制:125.75,十六进制:7D.CH 1-7.(5487)10=( 0101010010000111)BCD= 1010101101111 B 1-8.设字长为 8 位,请写出下列数的原码、反码、补码和移码:
B.用于选择进行信息传输的设备
C.用于给存储器单元和I/O 设备接口电路的选择地址
D.以上都不正确
2-14.设当前 SS=C000H,SP=2000H,AX=2355H,BX=2122H,CX=8788H,则
当前栈顶的物理地址是多少?若连续执行 PUSH AX,PUSH BX,POP CX 3 条指令后,堆
定是否插入Tw 。
A.T2 B.T3
C.T3 下降沿 D. T2 上升沿
2-8.8086/8088 系统中为什么要有地址锁存器?需要锁存哪些信息?
答:
因 8086/8088 系统中地址线、数据线是复用的,所以要有地址锁存器锁存 T1 状态输出
的地址。8086 系统锁存 20 位地址及 BHE 信号, 8088 系统锁存 20 位地址。
在指令执行过程中利用eu分析指令操作码和执行指令时不占用总线操作时间的特点biu自动地通过总线读取存贮器中的指令码存入biu指令队列从而使biu与eu并行工作提高cpu执行指令的速度
第 1 章 微型计算机系统概述
习题
1-1.微型计算机包括哪几个主要组成部分,各部分的基本功能是什么? 答: 微型计算机由 CPU、存储器、输入/输出接口及系统总线组成。 CPU是微型计算机的核心部件,一般具有下列功能:进行算术和逻辑运算。暂存少量 数据。对指令译码并执行指令所规定的操作。与存储器和外设进行数据交换的能力。提供整 个系统所需要的定时和控制信号。响应其他部件发出的中断请求;总线是计算机系统各功能 模块间传递信息的公共通道,一般由总线控制器、总线发送器、总线接收器以及一组导线组 成;存储器是用来存储数据、程序的部件;I/O接口是微型计算机的重要组成部件,在CPU 和外设之间起适配作用。 1-2.CPU 执行指令的工作过程。 答: 取指令、执行指令。 指令执行的基本过程: (1)开始执行程序时,程序计数器中保存第一条指令的地址,指明当前将要执行的指令 存放在存储器的哪个单元。 (2)控制器:将程序计数器中的地址送至地址寄存器MAR,并发出读命令。存储器根 据此地址取出一条指令,经过数据总线进入指令寄存器IR。 (3)指令译码器译码,控制逻辑阵列发操作命令,执行指令操作码规定的操作。 (4)修改程序计数器的内容。 1-3.果微处理器的地址总线为 20 位,它的最大寻址空间为多少?
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理与接口技术习题答案第3章8086/8088指令系统与寻址方式习题3.3 8086系统中,设DS=1000H,ES=2000H,SS=1200H,BX=0300H,SI=0200H,BP=0100H,VAR的偏移量为0600H,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。

(1)MOV BX,12 ;目标操作数为寄存器寻址(2)MOV [BX],12 ;目标操作数为寄存器间址 PA=10300H (3)MOV ES:[SI],AX ;目标操作数为寄存器间址 PA=20200H (4)MOV VAR,8 ;目标操作数为存储器直接寻址PA=10600H(5)MOV [BX][SI],AX ;目标操作数为基址加变址寻址PA=10500H(6)MOV 6[BP][SI],AL ;目标操作数为相对的基址加变址寻址PA=12306H(7)MOV [1000H],DX ;目标操作数为存储器直接寻址PA=11000H(8)MOV 6[BX],CX ;目标操作数为寄存器相对寻址PA=10306H(9)MOV VAR+5,AX ;目标操作数为存储器直接寻址PA=10605H3.4 下面这些指令中哪些是正确的?那些是错误的?如果是错误的,请说明原因。

(1)XCHG CS,AX ;错,CS不能参与交换(2)MOV [BX],[1000] ;错,存储器之不能交换(3)XCHG BX,IP ;错,IP不能参与交换(4)PUSH CS(5)POP CS ;错,不能将数据弹到CS中(6)IN BX,DX ;输入/输出只能通过AL/AX(7)MOV BYTE[BX],1000 ;1000大于255,不能装入字节单元(8)MOV CS,[1000] ;CS不能作为目标寄存器(9)MOV BX,OFFSET VAR[SI] ;OFFSET只能取变量的偏移地址(10)MOV AX,[SI][DI] ;SI、DI不能成为基址加变址(11)MOV COUNT[BX][SI],ES:AX ;AX是寄存器,不能加段前缀3.7 设当前 SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行 PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?当前栈顶的地址=2FF00H当执行PUSH BX 指令后,栈顶地址=2FEFEH(2FEFEH)=57H(2FEFFH)=34H3.8 设DX=78C5H,CL=5,CF=1,确定下列各条指令执行后,DX和CF中的值。

(1) SHR DX,1 ;DX=3C62H CF=1(2) SAR DX,CL ;DX=03C6H CF=0(3) SHL DX,CL ;DX=18A0H CF=1(4) ROR DX,CL ;DX=2BC6H CF=0(5) RCL DX,CL ;DX=18B7H CF=1(6) RCR DH,1 ;DX=BCC5H CF=0;3.9 设AX=0A69H,VALUE字变量中存放的内容为1927H,写出下列各条指令执行后寄存器和CF、ZF、OF、SF、PF的值。

AX CF ZF OF SF PF (1)XOR AX,VALUE ; 134EH 0 0 0 0 1 (2)AND AX,VALUE ; 0821H 0 0 0 0 1 (3)SUB AX,VALUE ; F142H 1 0 0 1 1 (4)CMP AX,VALUE ; 0A69H 1 0 0 1 1 (5)NOT AX ; F596H X X X X X (6)TEST AX,VALUE ; 0A69H 0 0 0 0 13.10 设AX和BX中是符号数,CX和DX是无符号数,请分别为下列各项确定CMP和条件转移指令。

(1) CX值超过DX转移。

(2) AX未超过BX转移。

(3) DX为0转移。

(4) CX值等于小于DX转移。

(1) CMP CX,DXJA NEXT(2) CMP AX,BXJLE NEXT(3) CMP DX,0JZ NEXT(4) CMP CX,DXJBE NEXT3.11 阅11阅读分析下列指令序列:ADD AX,BXJNO L1JNC L2SUB AX,BXJNC L3JNO L4JMP L5若AX和BX的初值分别为以下5种情况,则执行该指令序列后,程序将分别转向何处(L1~L5中的一个)。

(1) AX=13C6H, BX=80DCH(2) AX=0B568H,BX=54B7H(3) AX=42C8H, BX=608DH(4) AX=0D023H,BX=9FD0H(5) AX=9FD0H, BX=0D023H(1)转L1(2)转L1(3)转L2(4)转L5(5)转L5第四章汇编语言程序设计习题4.5 画出下列语句中的数据在存储器中的存储情况。

VARB DB 34,34H,‘GOOD’,2 DUP(1,2 DUP(0))VARW DW 5678H,‘CD’,$+2,2 DUP(100)VARC EQU 12VARW4.6 按下列要求,写出各数据定义语句。

(1) DB1为10H个重复的字节数据序列:1,2,5个3,4。

(2) DB2为字符串‘STUDENTS’(3) DB3为十六进制数序列:12H,ABCDH(4)用等值语句给符号COUNT赋以DB1数据区所占字节数,该语句写在最后。

DB1 DB 16 DUP(1,2,5 DUP(3,4)) DB2 DB ‘STUDENTS’DB3 DW 12H,0ABCDHCOUNT EQU DB2-DB14.8 对于下面的数据定义,各条MOV指令单独执行后,有关寄存器的内容是什么?PREP DB ?TABA DW 5 DUP(?)TABB DB ‘NEXT’TABC DD 12345678H(1)MOV AX, TYPE PREP ;AX=1(2)MOV AX, TYPE TABA ;AX=2(3)MOV AX, LENGTH TABA ;AX=5(4)MOV AX, SIZE TABA ;AX=10(5)MOV AX, LENGTH TABB ;AX=1(6)MOV DX, SIZE TABC ;AX=44.10 若自STRING单元开始存放有一个字符串(以字符‘$’结束);(1)编程统计该字符串长度(不包含 $ 字符,并假设长度为两字节)。

(2)把字符串长度放在STRING 单元,把整个字符串往下移两个单元。

程序段为:(1)MOV SI,OFFSET STRINGXOR BX,BXCONT:MOV AL,[SI]CMP AL,‘$’JZ NEXTINC BXINC SIJMP CONTNEXT: MOV AH,4CHINT 21H(2) STRING DB ‘…………. $’COUNT EQU $-STRING:MOV SI,OFFSET STRINGMOV CX,COUNTADD SI,CXCONT: DEC SIMOV AL,[SI]MOV [SI+2],AL]LOOP CONTMOV CX,COUNTMOV STRING,CXMOV AH,4CHINT 21H4.11 将字符串STRING中的‘&’字符用空格代替,字符串STRING“The data is FEB&03”。

程序为:DATA SEGMENTSTRING DB ‘The data is FEB&03’COUNT EQU $-STRINGDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV SI,OFFSET STRINGMOV CX,COUNTMOV AL,‘$’CONT:CMP AL,[SI]JNZ NEXTMOV BYTE PTR[SI],‘’NEXT:INC SILOOP CONTMOV AH,4CHINT 21HCODE ENDSEND START4.16 键盘输入十个学生的成绩,试编制一个程序统计69~69分,70~79分,80~89分,90~99分及100分的人数,分别存放到S6,S7,S8,S9及S10单元中。

程序为:DATA SEGMENTBUF DB 10 DUP(?)S6 DB ?S7 DB ?S8 DB ?S9 DB ?S10 DB ?DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA START:MOV AX,DATAMOV DS,AXMOV SI,OFFSET S6XOR AL,ALMOV CX,0504HCONT:MOV [SI],ALINC SILOOP CONTMOV CX,10MOV SI,OFFSET BUFCONT1:MOV AH,1INT 21HSHL AL,CLMOV BL,ALMOV AH,1INT 21HSUB AL,30HOR AL,BLMOV [SI],ALCMP AL,70HJAE NEXT1INC BYTE PTR S6 NEXT1:CMP AL,80HJAE NEXT2INC BYTE PTR S7 NEXT2:CMP AL,90HJAE NEXT3INC BYTE PTR S8 NEXT3:CMP AL,99HJA NEXT4INC BYTE PTR S9JMP NEXT5NEXT4;INC BYTE PTR S10NEXT5:INC SILOOP CONT1MOV AH,4CHINT 21HCODE ENDSEND START第7章基本输入/输出接口习题7.4 现有一输入设备,其数据端口地址为FFE0H,状态端口地址为FFE2H,当其D0为1时表明输入数据准备好。

试采用查询方式,编程实现从该设备读取100个字节数据并保存到2000H:2000H开始的内存中。

程序段为:MOV AX,2000HMOV DS,AXMOV SI,2000HMOV CX,100CONT:MOV DX,0FFE2HCONT1: IN AL,DXTEST AL,01JZ CONT1MOV DX,0FFE0HIN AL,DXMOV [SI],ALINC SILOOP CONTMOV AH,4CHINT 21H7.5 硬件如图7.5所示,试编程实现:S0控制8个发光二极管1亮7暗,S1控制8个 8个发光二极管7亮1暗,S2控制某一亮点(或暗点)以一定时间间隔循环向左移动,S3控制某一亮点(或暗点)以一定时间间隔循环向右移动,两个或两个以上开关闭合,则结束程序。

程序段为:(省略伪指令)BUF1 DB 01HBUF2 DB 80H…MOV DX,200HAGAIN:IN AL,DXXOR BL,BLMOV CX,8CONT:ROR AL,1JNC NEXTINC BLNEXT: LOOP CONTCMP BL,2JAE EXITCMP AL,0FEHJZ 1L7ACMP AL,0FDJZ 1A7LCMP AL,0FBHJZ ZSHLCMP AL,0F7HJZ YSHR1L7A: MOV AL,80HOUT DX,ALJMP AGAIN7A7L:MOV AL,7FOUT DX,ALJMP AGAINZSHL:MOV AL,BUF1ROL AL,1MOV BUF1,ALOUT DX,ALCALL D500MSJMP AGAINYSHR:MOV AL,BUF2ROR AL,1MOV BUF1,ALOUT DX,ALCALL D500MSJMP AGAINEXIT:MOV AH,4CHINT 21H第8章中断习题8.2 已知中断向量表表中地址0020H ~ 0023H的单元中依次是40H,00H,00H,01H,并知INT 08H指令本身所在的地址为9000H:00A0H。

相关文档
最新文档