0515《微计算机技术》2018年6月期末考试指导
发布时间:2023-11-21 12:11:13浏览次数:480515《微计算机技术》2018 年 6 月期末考试指导一、考试说明(一)说明满分为 分,考试时间为 分钟考试形式为闭卷。(二)题型及各题型所占分数和相应的答题技巧单项选择(每题 分,共 题,总计 分)答题技巧:选择正确的选项,可以使用一些常用的选择题答题技巧,如排除法。填空(每空 分,总计 分)答题技巧:先确定考察的知识点,然后填写正确的答案,答案尽量言简意赅。简答题(每题 分,总计 分答题技巧:仔细阅读题干,找出其中的问题与错误,进行正误的判断。应用题(总计 分)答题技巧:审读题干,思考背后考察的知识点,简明扼要的写出答案。二、复习重点内容1、数制与码制的基本概念原码原码表示法是机器数的一种简单的表示法。其符号位用 表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为 ,则原码表示可记作[]原。例如,+一 其原码记作:[]原+原[]原-原原码表示数的范围与二进制位数有关。当用 位二进制来表示小数原码时,其表示范围:最大值为 ,其真值约为()最小值为 ,其真值约为(一 )当用 位二进制来表示整数原码时,其表示范围:最大值为 ,其真值为()最小值为 ,其真值为(-)在原码表示法中,对 有两种表示形式:[]原[]原补码机器数的补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;(如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加 而得到的。设有一数 ,则 的补码表示记作[]补。例如,原补原补+=
34=!+5%5:数据寄存器,常用于数据传递。他们的特点是,这 个 " 位的寄存器可以分为高 位:,,,。以及低八位:4,4,4,4。这 组 位寄存器可以分别寻址,并单独使用。另一组是指针寄存器和变址寄存器,包括:(((%5.<8,$%&-):堆栈指针,与 (( 配合使用,可指向目前的堆栈位置;(5)&8,$%&-):基址指针寄存器,可用作 (( 的一个相对基址位置;(((86-.&$+&):源变址寄存器可用来存放相对于 ( 段之源变址指针;(&)%,$5%,8$$+&):目的变址寄存器,可用来存放相对于 (段之目的变址指针。这 个 " 位寄存器只能按 " 位进行存取操作,主要用来形成操作数的地址,用于堆栈操作和变址运算中计算操作数的有效地址。()指令指针 !$)%-6.%,8$8,$%&-指令指针 是一个 " 位专用寄存器,它指向当前需要取出的指令字节,当 从内存中取出一个指令字节后, 就自动加 ,指向下一个指令字节。注意, 指向的是指令地址的段内地址偏移量,又称偏移地址!1==)&%++-&))或有效地址!,==&.%,>&++-&))。()标志寄存器 ? !?'5@ &@,)%&-" 有一个 位的标志寄存器 ? ,在 ? 中有意义的有 位,其中 " 位是状态位, 位是控制位。1?:溢出标志位 1? 用于反映有符号数加减运算所得结果是否溢出。如果运算结果超过当前运算位数所能表示的范围,则称为溢出,1? 的值被置为 ,否则,1? 的值被清为 。?:方向标志 ? 位用来决定在串操作指令执行时有关指针寄存器发生调整的方向。?:中断允许标志 ? 位用来决定 是否响应 外部的可屏蔽中断发出的中断请求。但不管该标志为何值, 都必须响应 外部的不可屏蔽中断所发出的中断请求,以及 内部产生的中断请求。具体规定如下:)当 ? 时, 可以响应 外部的可屏蔽中断发出的中断请求;)当 ? 时, 不响应 外部的可屏蔽中断发出的中断请求。A?:跟踪标志 A?。该标志可用于程序调试。A? 标志没有专门的指令来设置或清楚。)如果 A?,则 处于单步执行指令的工作方式,此时每执行完一条指令,就显示 内各个寄存器的当前值及 将要执行的下一条指令。)如果 A?,则处于连续工作模式。(?:符号标志 (? 用来反映运算结果的符号位,它与运算结果的最高位相同。在微机系统中,有符号数采用补码表示法,所以,(? 也就反映运算结果的正负号。运算结果为正数时,(? 的值为 ,否则其值为 。B?:零标志 B? 用来反映运算结果是否为 。如果运算结果为 ,则其值为 ,否则其值为。在判断运算结果是否为 时,可使用此标志位。?:下列情况下,辅助进位标志 ? 的值被置为 ,否则其值为 :)在字操作时,发生低字节向高字节进位或借位时;)在字节操作时,发生低 位向高 位进位或借位时。?:奇偶标志 ? 用于反映运算结果中“C的个数的奇偶性。如果“C的个数为偶数,则? 的值为 ,否则其值为 。?:进位标志 ? 主要用来反映运算是否产生进位或借位。如果运算结果的最高位产生了一个进位或借位,那么,其值为 ,否则其值为 。()段寄存器!(&@7&$% &@,)%&-为了运用所有的内存空间," 设定了四个段寄存器,专门用来保存段地址:((8+&(&@7&$%):代码段寄存器;
((5%5(&@7&$%):数据段寄存器;((((%5.<(&@7&$%):堆栈段寄存器;((%-5(&@7&$%):附加段寄存器。当一个程序要执行时,就要决定程序代码、数据和堆栈各要用到内存的哪些位置,通过设定段寄存器 (,(,((来指向这些起始位置。通常是将 ( 固定,而根据需要修改 (。所以,程序可以在可寻址空间小于 "D 的情况下被写成任意大小。所以,程序和其数据组合起来的大小,限制在 (所指的 "D 内,这就是 1/ 文件不得大于 "D 的原因。" 以内存做为战场,用寄存器做为军事基地,以加速工作。10 8086 表达式8086 运算符8086 汇编语言主要有以下七类伪指令:1、符号定义伪指令:EQU、=、PURGE2、数据定义伪指令:DB、DW、DD、DQ、DT3、段定义伪指令:SEGMENT、ENDS、ASSUME4、过程定义伪指令:PROC、ENDP5、源程序结束伪指令:END6、地址定位伪指令:ORG、EVEN7、辅助伪指令:.RADIX、NAME、TITLE11 宏与子程序的比较宏是一组汇编语言语句,可以在程序中被多次调用,以简化源程序。子程序也有类似的功能,那么,这两者之间有什么区别呢?1)宏与子程序的处理方式不同宏:宏指令调用是在汇编期间,由汇编器进行处理, 实现宏展开,用实元置换哑元,形成一组指令。子程序:子程序调用是在程序执行期间,由 CPU 进行处理, 完成保护现场、跳转到子程序入口、执行子程序指令、恢复现场、返回调用程序等操作。2)宏与子程序存储开销(占用存储空间大小)不同宏:在源程序中多次调用宏指令,会在目标程序中生成相应多个宏定义展开的指令序列,即产生多个宏定义体的拷贝,调用次数约多,占用的存储空间约大。所以,宏指令只是为了简化源程序的书写,并没有简化目标程序,也没有节省目标程序所占的内存单元。子程序:不论子程序进行多少次调用,在目标程序中只有一个子程序代码拷贝,各处调用者共享同一段指令,节省存储器资源。3)宏与子程序执行时间开销不同宏:宏展开后的代码顺序执行,无需额外时间开销,运行效率高。子程序:需要保护、恢复现场,传送参数等额外开销,运行效率相对较低。COM 格式执行文件的编写12存储器的基本结构
在 " 系统中,字数据最好存放在偶地址,其目的是为了减少执行指令的总线周期。8259A 可编程中断控制器在微机系统中,可以使用 扩展外部中断,$%&' 可编程中断控制器,主要有以下功能: 片 (主片)能管理 级中断,通过级联用 片(从片) 可以构成主从式中断系统。每一级中断可以屏蔽或允许。在中断响应周期, 可提供相应的中断类型号。可编程使 可工作在多种不同的方式下。 有多种工作方式,这些方法可以通过初始化命令字(EFE)和操作命令字(1EF1E)来设置。其中优先级设置方式:普通:特殊全嵌套是通过初始化命令字 E的 为来控制的,位为 是普通全嵌套方式,位为 是特殊全嵌套方式。全嵌套方式:在此种方式下中断优先级按 F 顺序进行排队,只允许中断级别高的中断源去中断中端级别低的中断服务程序。特殊全嵌套方式:当执行某一级中断服务程序时,可响应同级的中断请求,从而实现对同级中断请求的特殊嵌套( 级联使用时,某从片的 个中断源对主片来说,可以认为是同级的)。这种方式适用于 级联工作是主片采用,即主片采用特殊全嵌套工作方式,从片采用全嵌套工作方式可实现从片各级的中断嵌套。 中断控制器可以接受 个中断请求输入并将它们寄存。对 个请求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。 可以对中断请求输入进行屏蔽,阻止对其进行处理。 支持多种中断结束方式。 与微处理器连接方便,可提供中断请求信号及发送中断类型码。 可以进行级连以便形成多于 级输入的中断控制系统。初始化编程用来确定 的工作方式。E 确定 工作的环境:处理器类型、中断控制器是单片还是多片、请求信号的电特性。E 用来指定 个中断请求的类型码。E 在多片系统中确定主片与从片的连接关系。E 用来确定中断处理的控制方法:中断结束方式、嵌套方式、数据线缓冲等。在中断服务程序中,在返回主程序之前按排一条一般中断结束命令指令, 将( 中最高优先级位置 ,结束该级中断处理以便为较低级别中断请求服务。DMA 方式/(-,&.%/&78-G..&)))技术是一种代替微处理器完成存储器与外部设备或存储器之间大量数据传送的方法,也称直接存储器存取方法。在微机系统内,外设与内存间的数据传送通常是通过 执行一段程序来实现的,但利用 / 技术则可不用 介入就能实现外设与内存之间数据的直接传送。/ 的主要优点是当需要把一个外设的大量数据送到指定内存时,它可以自动完成传送任务,也就是说外设发出一个 / 请求,则 / 电路暂停 的操作,并控制外设与内存之间进行一次传数,然后再让 继续执行程序,这样就使 节省了大量对外设的查询时间,从而提高了系统的整体性能。在 / 技术中,数据的传送是在 / 控制器(简称 /)下进行的,/ 是一种能独立于微处理器进行操作的专用芯片或电路。在 / 数据传送过程中,/ 控制器接管了微处理器的地址总线、数据总线和控制总线。在当前总线周期结束之前,有一条外部控制线终止了微处理器的操作。在 / 开始传送数据时,微处理器的内存控制信号禁止使用;当 / 传送结束后,/ 控制器将终止信号复位,这样微处理器就恢复了它的一切权力并开始执行自己的操作。由此可见,/ 必须具有控制系统总线的能力,即 / 能够像微处理器一样输出地址信号,接收或发出控制信号,输入或输出数据信号。
DMA 控制器 8237A$%&' 的基本结构一片 / 通常可以控制一个或几个外设接口电路与内存的 / 传输。习惯上,将/ 中与 某个 外设备接 口电路相联系的部分称为一个 “通道( .H5$$&') ”。 $%&'(简称 )有四个通道。每个通道都有独立的与相应外设接口相联系的信号,四个通道共享与 相连的控制信号、地址信号、数据信号,并且还可以用级联的方来扩充更多的信道,它允许在外部设备与系统存储器以及系统存储器与存储器之间交换信息,其数据传输率可达 /:)。它提供了多种控制方式和操作类型,大大增强的系统的性能, 是一个高性能通用可编程的 /。 内部有四个独立通道,每个通道都有各自的四个寄存器(基地址,当前地址,基字节计数,当前字节计数),另外还有各个通道公用的寄存器(工作方式寄存器,命令寄存器,状态寄存器,屏蔽寄存器,请求寄存器以及暂存寄存器等)。通过对这些寄存器的编程,可实现 的三种 / 操作类型和操作方式, 种工作时序, 种优先级排队,自动预置传送地址和字节数,以及实现存储器存储器之间的传诵等一系列操作功能。数据传送数据传送是指数据从一种设备传送到另一种设备,或从同一个设备的一个存储位置传送到另一个存储位置中去。()数据传送的方向串行通信中,数据通常是在两个站点!如终端和微机之间进行传送,按照数据流的方向可分成三种基本的传送模式,这就是全双工方式、半双工方式和单工方式。单工方式目前已很少采用,下面仅介绍前两种模式。)全双工方式!=6''+6*'&若数据的发送和接收分别使用两套独立的资源、由两条不同的传输线同时传送,使通信双方都能在同一时刻进行发送和接收操作,这样的传送方式就是全双工制。在全双工方式下,通信系统的每一端都设置了发送器和接收器,因此,能控制数据同时在两个方向上传送。全双工方式无须进行方向的切换,因此,没有切换操作所产生的时间延迟!一般为毫秒级,这对那些不能有时间延误的交互式应用!例如远程监测和控制系统十分有利。)半双工方式!H5'=+6*'&当使用同一条传输线既作输入又作输出时,虽然数据可以在两个方向上传送,但显然通信双方不能同时收发数据,即它们只能依赖分寸切换方向实现互相收发数据。这样的传送方式就是半双工制,如图 所示。采用半双工方式时,通信系统每一端的发送器和接收器,通过收/发开关接到通信线上,进行方向的切换,因此,会产生时间延迟。收/发开关实际上是由软件控制的电子开关。()数据传送方式和类型) 的 / 操作方式在 的有效操作周期内, 将以下述 种传送方式之一进行 / 操作。单字节传送方式:此时 获得总线控制权后仅传送一个字节的数据,然后释放系统总线,归还给 使用。同时修改通道内的当前地址寄存器和当前字计数寄存器的内容,当计数器从 减为 ???? 时,产生终止计数信号,使 1 变为低电平。单字节传送方式的优点是保证在任何二次 / 操作之间, 至少能在一个总线周期内获得总线控制权,达到 与 / 控制器处于并行工作的状态。数据块传送方式:此时, 一旦获得总线控制权后将连续传送完一个数据块!它由 个字节的数据组成,然后释放系统总线归还给 使用。在这种传送方式中,一次/ 操作最多能传送 "D 的数据块,/ 传送结束将取决于下面两种条件中的任一个:
当前字计数寄存器的内容从 减为 ???? 时,并发出 1 有效信号;外部强加一个 1为低电平的输入信号时,迫使 退出 / 操作。在数据块传送方式中,要求 /请求信号 I 保持到 D 变为有效时即可,因为 一旦进入有效周期后就不再去采样 I 信号了。请求传送方式:这种传送方式类似于数据传送方式,但此时要求在数据传送期间必须保持 I 信号有效。因为此时 每传送一个字节的数据之后都要采样 I 引脚。当出现当前字计数寄存器由 变为 ???? 或者 1 输入端加入低电平信号或者 I 信号无效时都将停止 / 传送。级联方式:这是当多片 级联应用时采用的传送方式,从而实现多于 个通道的/ 方式。此时,从片 的 I 和 4 引脚应和主片 某个通道的 I和 D 引脚依次连接。以上 种 / 传送方式均由方式控制字中的 和 " 两位来控制。13 常用可编程外围接口芯片8255A$%&' 是一种通用的可编程并行 :1 接口芯片。 由 部分组成: 数据总线缓冲器;三个 位端口 、、,其中 口可分为两个 位端口,可分别同端口 和端口 配合使用,可以用作控制信号输出等; 组和 组的控制电路;读:写控制逻辑。 有三种工作方式:方式 、方式 和方式 。 方式 JJ基本输入:输出:在此工作方式下,每个口都作为基本的输入输出口, 口的高 位和低 位以及 口和 口都可独立地设置为输入口和输出口。在此工作方式下:输出的数据被锁存,而输入的数据不被锁存。 方式 JJ选通输入:输出:此工作方式下,三个端口分为 、 两组,、 两个口仍用作数据输入输出口,而 K口分成两部分,分别作为 口和 口的联络信号。在 中,联络信号是 位,两个数据口,共用去 口的 " 位,剩余的两位仍可作为数据位使用。 方式 JJ双向选通输入:输出:此工作方式只限于 组使用,它用 口的 位数据线,用 口的 位进行联络。工作时输入输出都能被锁存。当 口工作在方式 时, 口可以在方式 或方式 工作。8253 可编程定时计数器实现定时方法主要有三种:软件定时、不可编程的硬件定时、可编程硬件定时。定时或计数的工作实质均体现为对脉冲信号的计数。如果计数的对象是标准的内部时钟信号,由于其周期恒定,故计数值就恒定地对应于一定的时间,这一过程即为定时。如果计数的对象是与外部过程相对应的脉冲信号(周期可以不相等),则此时即为计数。() 的主要性能: 个 " 位(每个可分为两个 位)减法计数器:通道; 种计数制式:二进制计数或 码计数;最大计数值为 "";" 种不同的方式工作;计数速率高达 /B。()内部结构在计数器工作时,通过程序给计数初值寄存器 送入初始值;初始值被送入计数执行部件 进行减 计数;输出锁存器 14 用来锁存 的内容,可由 进行读出操作。 内部的 个计数器和 个控制字寄存器,可通过地址线 、,读写控制线 、E 与片选 (进行寻址,并实现相应的操作。
14 微机的基本接口技术A/D 转换接口: 转换是把模拟量信号转换为 $ 位二进制数字量信号的电路。这种转换通传分为四步进行:采样、保持、量化、编码。所谓采样,是将一个时间上连续变化的模拟量转换为时间上断续变化的(离散的)模拟量。通传采用等时间间隔进行采样。所谓保持,就是将采样得到的模拟量值保持不变,即 (!% 期间,使输出不是等于 而是等于采样控制脉冲存在的最后瞬间的采样值。所谓量化,就是用基本的量化电平 L 的个数来表示采样保持电路得到的模拟电压值。编码是把已经量化的模拟数值用二进制的原码或补码、 码或其他编码表示。实现 : 转换的方法很多,常用的有逐次逼近法、双积分法及电压频率转换法等。双积分法 : 转化器由电子开关、积分器、比较器和控制逻辑等部件组成。双积分法: 转换器是将待转换的模拟输入信号的未知电压 M 转换成时间值来间隔测量的。三、重点习题一、单项选择题1、0FDH 为原码,该数的真值为( )A:+125 B:-124 C:-125 D:+1242、下列说法中属于 8086 最大工作模式特点的是( )A:需要总线控制器 8288 B:由编程进行模式设定C:CPU 提供全部的控制信号 D:适用于单一处理机系统3、当程序顺序执行时,8086CPU 每取一条指令,IP 指针增加的值是( ) A:1 B:2 C:3 D:由指令长度决定的4、8086 有一个独立的 I/O 空间,该空间的范围是( )A:1K B:10K C:32K D:64K5、指令 POP [SI] 中,源操作数的段寄存器是( )A:CS B:DS C:ES D:SS6、下面关于 CPU 的叙述中,不正确的是( )A:CPU 中包含了多个寄存器,用来临时存放数据 B:CPU 担负着运行系统软件和应用软件的任务C:CPU 可以由多个微处理器组成
D:所有 CPU 都有相同的机器指令7、下列中断中,属于外部中断的是( )A:溢出中断 B:断点中断 C:可屏蔽中断 D:除法出错中断8、下列 8086 存储器物理地址形成算法错误的是( )A:段地址+偏移地址 B:段地址左移 4 位+偏移地址C:段地址×16+偏移地址 D:段地址×10H +偏移地址9、在 8086 系统中,字数据最好存放在偶地址,其目的是为了( )A:快速寻址 B:节省所占的内存空间C:减少读写错误 D:减少执行指令的总线周期10、存放待执行指令所在地址的是( )A:指令寄存器 B:地址寄存器 C:数据寄存器 D:程序计数器11、下列 8086 存储器物理地址形成算法错误的是()A:段地址+偏移地址 B:段地址左移 4 位+偏移地址C:段地址×16+偏移地址 D:段地址×10H +偏移地址12、指令 POP [BX] 中,目的操作数的段寄存器是( )A:CS B:DS C:ES D:SS13、存放待执行指令所在地址的是()A:指令寄存器 B:地址寄存器 C:数据寄存器 D:程序计数器14、AX、BX 内容为无符号数,若要求 AX≥BX 时转移到标号 L1,则执行 CMP AX, BX指令后,应执行的指令是( )A:JA L1 B:JNC L1 C:JAE L1 D:JNL L115、在 DMA 方式下,CPU 与系统总线的关系是()A:CPU 只能控制地址总线 B:CPU 只能控制数据总线C:CPU 与总线为隔离状态 D:CPU 与总线为短接状态16、8086CPU 的存储器写总线周期中,( )时刻发出 DT/__R 信号。A:T1 B:T2 C:T3 D:T417、I/O 操作中,状态信息是通过()总线进行传送的A:数据 B:地址 C:控制 D:外部18、8086CPU 中,时钟周期、指令周期和总线周期的时间从长到短的排列是( )
A:时钟周期>指令周期>总线周期 B:时钟周期>总线周期>指令周期C:总线周期>指令周期>时钟周期 D:指令周期>总线周期>时钟周期19、容量为 8KB 的 SRAM 的起始地址为 2000H,则终止地址为()A:21FFH B:23FFH C:3FFFH D:4FFFH20、8086CPU 向 I/O 端口地址 430H 写字数据应使用指令( )A:OUT 430H,AL B:OUT 430H,AXC:MOV DX,430H D:MOV DX,430H OUT DX,AL OUT DX,AX二、填空题1. 设 MyWord 是已经用 DW 定义的字变量,MyByte1、MyByte2 是已经用 DB定义的字节变量,试指出下列语句是否正确?若错误,写出错误原因。(1) MOV BX, OFFSET MyWord[SI] 。(2) CMP MyByte1, MyByte2 。(3) SUB AX, [SI][DI] 。(4) MOV BX, OFFSET MyByte1+1 。2.已知八位二进制码 11110110B (1)当它是原码时表示的十进制数是 。(2)当它是补码时表示的十进制数是 。3. AL=82H,执行 CBW 指令后,AX= 。4.设(AL)=5AH,变量 X 的内容为 9DH,试写出下列指令单独执行后 AL 的结果,以及标志位 OF、SF、ZF、PF、CF 的状态。 (1) AND AL, X 。(2) XOR AL, X 。(3) TEST AL, 05H 。(4) ADD AL, 50H 。5.在 8086/8088 的 16 位寄存器中,有_________个寄存器可拆分为 8 位寄存器使用。她们是______,______,______,和_______。三、简答题1、8086 有哪些寻址方式?每种寻址方式如何计算有效地址?
T1 T2 TW T4CLKIO/MA19~A16/S6~S3A15~A8AD7~AD0ALERDDT/RDEN高 IO 低MA19~A16 S6~S3A7~A0 DATAINT3WAITREADYREADY2、根据 8088 的读写时序图,回答下述问题:(1) 地址信号在哪段时间内有效?(2) 读与写操作的区别?(3) I/O 读写时序与存储器读写时序的区别?(4) 什么情况下需要插入等待周期 Tw?四、综合题1.试将下述电路图补充完整,并回答问题:(1) Intel 2114 为 1K x 4 位的 RAM,如下图所示,采用 4 片 Intel 2114 可构成多
少物理容量的 RAM 系统?(2) 将其与 8088CPU 系统总线相连,若要求存储器在内存空间中以 0E3000H 为起始地址,有惟一的连续地址分布,可采用什么译码方式?(3) 在下述电路图中画出存储器在内存空间中以 0E3000H 为起始地址,有唯一的连续地址分布的译码电路图,要求使用图中给定的 3-8 译码器,可以根据需要增加与、或、非门。2、利用下图所示 CPU 总线信号以及 8253 芯片,设计硬件电路及汇编语言程序,完
补码表示数的范围与二进制位数有关。当采用 位二进制表示时,小数补码的表示范围:最大为 ,其真值为()最小为 ,其真值为(一 )采用 位二进制表示时,整数补码的表示范围:最大为 ,其真值为()最小为 ,其真值为(一 )在补码表示法中, 只有一种表示形式:+补+补+(由于受设备字长的限制,最后的进位丢失)所以有+补+补反码机器数的反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数 ,则 的反码表示记作[]反。例如:[]原反[]原原反反码通常作为求补过程的中间形式,即在一个负数的反码的未位上加 ,就得到了该负数的补码。例:已知原,求补。分析如下:由原求补的原则是:若机器数为正数,则原补;若机器数为负数,则该机器数的补码可对它的原码(符号位除外)所有位求反,再在未位加 而得到。现给定的机器数为负数,故有补原十 ,即原反补BCD 码BCD 码:用二进制代码对十进制数进行编码,它既具有二进制码的形式(四位二进制码),又有十进制数的特点(每四位二进制码是一位十进制数)。8421 码:编码值与 ASCII 码字符 0 到 9 的的低 4 位码相同,易于实现人机联系。2、基本逻辑门电路域基本组合逻辑电路与门(电路与逻辑符号见右图)可见,只有当输入端 A、B 全为高电平 1 时,才输出高电平 1,否则输出端均为低电平 0。或门右图所示是最简单的二极管或门电路。A、B是它的两个输入,Y 是输出。输入变量只要有一个为 1 时,输出就为 1;只有输入全为 0,输出才为 0。
成下列任务:任务:完成设计硬件连线并用汇编语言编写初始化程序令红色 LED 和绿色 LED 以 1秒为间隔交替闪烁。要求: (1)通过 I/O 端口访问 8253。 (2)8253 具有唯一首地址 3E0H。 (3)可以使用与、或、非门。 (4)假定系统已配有足够的内存,并有 DOS 支持。 (5)汇编语言程序采用 COM 文件格式。
四、重点习题参考答案(答案仅供参考)(一)单项选择题CADDD DCADD CBCCC AADCD(二)填空题1.设 MyWord 是已经用 DW 定义的字变量,MyByte1、MyByte2 是已经用 DB 定义的字节变量,试指出下列语句是否正确?若错误,写出错误原因。(5) MOV BX, OFFSET MyWord[SI] 错, OFFSET 不能返回间接寻址的偏移量 。(6) CMP MyByte1, MyByte2 错,两个操作数不能同为存储器操作数 。(7) SUB AX, [SI][DI] 错, SI 和 DI 不能同时用在一个操作数中 。(8) MOV BX, OFFSET MyByte1+1 正确 。2. (1) -118 。(2) -10 。3. AL=82H,执行 CBW 指令后,AX= 0FF82H 。4. (1) AND AL, X AL = 18H; OF=0、SF=0、ZF=0、PF=1、CF=0 。(2)XOR AL, X AL = 0C7H; OF=0、SF=1、ZF=0、PF=0、CF=0 。(3)TEST AL, 05H AL = 5AH; OF=0、SF=0、ZF=0、PF=1、CF=0 。(4)ADD AL, 50H AL = 0AAH; OF=1、SF=0、ZF=0、PF=1、CF=0 。5. 4 AX BX CX DX(三)简答题1. 状态标志和控制标志有何不同?8086 的状态标志和控制标志分别有哪些?答:( XXX 为关键字 )状态标志反映运算结果的性质,由 CPU 硬件设置,供软件指令(条件转移指令)使用;(1 分)控制标志由软件指令设置,供 CPU 硬件使用,可改变 CPU 后续运行方式。(1 分)8086 有 6 个状态标志 :(1 分)进位标志(CF),零标志(ZF),符号标志(SF),辅助进位标志(AF),奇偶标志(PF),溢出标志(OF)。(每个 0.5 分,共 3 分)8086 有 3 个控制标志 :(1 分)中断允许标志(IF)方向标志(DF)陷阱标志(或跟踪标志)(TF) (每个 1 分,共 3 分)2. (1)与数据信号复用的地址信号在 T1 建立,T2 撤销;(1 分)不与数据信号复用的地址信号在 T1 建立,一直持续到 T4。(1 分)(2)读与写操作的区别如下:① 读周期/RD 为低电平有效;写周期/WR 为低电平有效。(1 分)② 读周期 DT/R 为低电平使数据缓冲器为输入方向打开;写周期 DT/R 为高电平使数据缓冲器为输出方向打开。(1 分)③ 读周期由 T2 状态开始 CPU 数据总线浮空(高阻);写周期由 T2 状态开始CPU 数据总线输出数据。(1 分)(3)I/O 读写时序与存储器读写时序的区别为:
I/O 读写周期 IO/M 为高电平;(1 分)存储器读写周期 IO/M 为低电平。(1 分)(4)与 CPU 连接的存储器或 I/O 端口读写访问时间慢于 CPU 读写周期所提供的访问时间时(1 分),需要通过在 T3 状态使 Ready 引脚变低(1 分)使 CPU 在 T4状态前插入 Tw 等待周期(1 分)。(五)应用题1.评分标准: 第(1)小题 (2 分) 第(2)小题 (2 分) 第(3)小题 (16 分), 其中:1) 正确连接 WE (2 分)2) 正确连接 IO/M (2 分)3) 正确连接设计 A19-A13 译码电路 (4 分)4) 正确连接 74LS138 的 C、B、A (2 分)5) 正确连接 74LS138 的 E1、E2、E3 (2 分)6) 正确连接 74LS138 的输出到存储器片选/E (4 分)答:可构成 2Kx8 的 RAM 系统;全译码;见下图2、评分标准: 完成设计硬件连线 (6 分) 程序可实现题目所要求的功能 (6 分) 汇编语言源程序格式正确 (2 分) 符合.com 格式要求 (2 分) 书写规范,可读性好,有必要的注释 (2 分) 指令使用正确,无语法错误 (2 分)
参考源程序如下:; 8253 设置程序code segment assume cs:code, ds:code, es:code, ss:code org 100hmain proc near mov dx, 3e3h mov al, 36h out dx, al mov ax, 1000 mov dx, 3e0h out dx, al mov al, ah out dx, al mov dx, 3e3h mov al, 76h out dx, al mov ax, 1000 mov dx, 3e1h out dx, al mov al, ah out dx, al int 20hmain endpcode ends end main考试指导使用说明:说明:本考试指导只适用于 201803 学期 6 月期末考试使用,包括正考和重修。指导中
的章节知识点涵盖考试所有内容,给出的习题为考试类型题,习题答案要点只作为参考,详见课程讲义或课程 ppt。在复习中有任何问题请到课程答疑区咨询。祝大家考试顺利!
或门逻辑符号非门右图所示为三极管非门电路。非门又称反相器,它只有一个输入端和一个输出端,其输出与输入恒为相反状态。下面分析该三极管(工作在饱和或截止状态)非门电路的逻辑功能。① 当输入端 A 为高电平(VA=3V)时,适当选取 RK、RB 之值可使三极管饱和导通,其集电极输出低电平(VY=0V)。② 当输入端 A 为低电平(VA=0V)时,负电源 UBB 经 RK、RB 分压使三极管基极电位为负,三极管截止,从而输出高电平(其电位近似等于 UCC)。非门逻辑符号触发器触发器是数字电路中的基本逻辑单元。触发器按其稳定工作状态可分为双稳态触发器 、 单稳态触发器等。这些触发器都可用分立元件和集成元件来组成。双稳态触发器又分为基本 R—S 触发器、同步 R—S 触发器、D 触发器、J-K 触发器等。以及由触发器和逻辑门组成的计数器,译码与显示电路。简单触发器可以由与门和非门组合而成。由若干个钟控D 触发器构成的一次能存储多位二进制代码的时序逻辑电路,叫锁存器件。TTL 全称 Transistor-Transistor Logic,即 BJT-BJT 逻辑门电路CMOS 逻辑门电路ECL(Emier Coupled Logic)即发射极耦合逻辑电路,也称电流开关型逻辑电路基本组合逻辑电路组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻各输入状态的组合,而与电路以前状态无关,而与其他时间的状态无关。其逻辑函数如下:Li=f(A1,A2,A3…….An) (i=1,2,3….m)其中,A1~An 为输入变量,Li 为输出变量。3 有关存储器的基本概念 (1)字节与字 字节(Byte)是指一组相邻的 8 位二进制数码 字(Word)是指两个相邻的字节(16 位二进制数码)。 [注]8086/8088 系统对存储器的访问都是以字节作为基本单位来进行读/写操作的。 (2)存储单元 8086/8088 指令系统对存储单元的操作有如下 3 种类型: 字节单元存储 8 位二进制代码。 字单元存储 16 位二进制代码(相邻二个字节单元)。 双字单元存储 32 位二进制代码(相邻四个字节单元)。 (3)存储单元的地址和内容
存储单元的地址是指为每个存储单元指定的编号。 存储单元的内容一个存储单元中存放的信息(二进制代码)。4 8086/8088 功能结构(1)数据寄存器 AX、BX、CX、DX主要用以存放 16 位数据信息。 AH、AL、BH、BL、CH、CL、DH、DL主要用以存放 8 位数据信息。 [注]8 位数据寄存器是从 16 位数据寄存器中分解开的,如 AX―>AH、AL,反之 AH、AL->AX。注意它们的对应关系。(2)指针和变址寄存器 SP堆栈指针寄存器,其内容为 16 位偏移地址,用以指向堆栈当前栈顶的位置。 BP基址指针寄存器,其内容为 16 位地址,作为访问堆栈存储单元的偏移地址。 SI源变址寄存器,其内容为 16 位地址,作为访问数据单元的偏移地址。 DI目的变址寄存器,其内容为 16 位地址,作为访问数据单元的偏移地址。 [注]上述 4 个 16 位寄存器一般情况下,其内容均为地址信息,用以表示一个存储单元的偏移地址。但也具有通用性,可以作为数据寄存器来使用;SI 和 DI 二者在使用中通常是没有什么区别的,仅在串操作指令中有区别。(3)段寄存器 CS代码段寄存器均用以存放 16 位段地址 DS数据段寄存器 ES附加段寄存器 SS堆栈段寄存器 (4)指令指针寄存器(IP) IP用以存放一个 16 位的代码段(程序段)的偏移地址,它与 CS 的内容合并可以形成一个 20 位的物理地址,专门用来指向当前要执行的指令单元的位置。(5)标志寄存器 F 标志寄存器 F 又称程序状态字寄存器 PSW,是用以记录或存放状态标志和控制标志信息的。 ①.状态标志位(ZF、SF、PF、OF、CF、AF):用以记录当前运算结果的状态信息。 ZF(零标志位)若当前运算结果为 0,则 ZF=1;若当前运算结果为 1,则 ZF=0。 SF(符号标志位)若当前运算结果为负数,则 SF=1;若当前运算结果为正数,则 SF=0。 PF(奇偶标志位)若当前运算结果为奇数个"1" ,PF=0;若当前运算结果为偶数个"1",则 PF=1。 OF(溢出标志位)若当前运算结果产生溢出,则 OF=1;反之,OF=0。 CF(进位标志位)若当前运算出现进位或借位,则 CF=1;反之,CF=0。 AF(辅助标志位)若当前运算出现第 3 位向第 4 位进位或借位,则 AF=1;反之,AF=0。 [注](1)状态标志位的设置一般是由 CPU 根据当前程序运行结果的状态自动完成的。(2)状态标志位信息一般用作后续条件转移指令的转移控制条件。 ②.控制标志位(TF、IF、DF):用以存放控制 CPU 工作方式的标志信息。
TF(跟踪标志位)当 TF=1 时,CPU 每执行完一条指令就产生一个内部中断,处于暂停状态;当 TF=0 时,CPU 处于正常工作状态。 IF(中断允许标志位)当 IF=1 时,允许 CPU 响应外部中断 INTR 的请求;当 IF=0 时,不允许 CPU 响应外部中断请求。 DF(方向标志位)当 DF=0 时,CPU 执行串操作指令时,对 SI、DI 进行加操作;反之,对 SI、DI 进行减操作。 [注]控制标志位的设置是由系统程序或用户程序中的指令来完成的。5 8086 指令系统(重点)数据传送是计算机最基本、最重要的一种操作,在实际程序中,数据传送指令使用的比例是最高的。所以,数据传送是否方便灵活,速度是否快,是指令系统要考虑的重要问题。数据传送指令又可以分为以下四种: (1)通用数据传送指令; (2)累加器专用数据传送指令; (3)地址目的数据传送指令; (4)标志数据传送指令。(1)通用数据传送指令通用数据传送指令可以分成以下四种:基本传送指令 MOV、堆栈指令 PUSH,POP、交换指令 XCHG。数据传送是计算机最基本、最重要的一种操作,在实际程序中,数据传送指令使用的比例是最高的。所以,数据传送是否方便灵活,速度是否快,是指令系统要考虑的重要问题。(2)累加器专用数据传送指令有三条累加器专用的传送指令:IN输入指令,允许把一个字节或一个字由一个输入端口(port),传送至 AL(若是一个字节)或 AX(若是一个字)。一个计算机可以配接许多外部设备,每个外部设备与 CPU 之间要交换数据,状态信息和控制命令,每一种这样的信息交换都要通过一个端口来进行。系统中端口像存储器中那样也用地址来区分。端口地址若是由指令中的 n 所规定,则可寻址 port0~port255,共 256 个输入端口;端口地址也可包括在寄存器 DX 中,则允许寻址 64K 个输入端口OUT输出指令,是把在 AL 中的一个字节或在 AX 中的一个字,传送至一个输出端口。端口寻址方式与 IN 指令相同。OUT输出指令,是把在 AL 中的一个字节或在 AX 中的一个字,传送至一个输出端口。端口寻址方式与 IN 指令相同。(3)地址目的传送(AddressObjectTransfers)8086 中有三种地址目的传送操作指令LEA(LoadE?ec@veAddress)这条指令把源操作数的地址偏移量,传送至目的操作数。源操作数必须是一个内存操作数目的操作数必须是一个 16 位的通用寄存器。这条指令常用来建立操作所需要的寄存器地址指针。LDS(LoadpointerintoDS)这条指令是传送一个目标指针(即一个 32 位的目标,它包括一个段地址和一个地址偏移量),从源操作数(它必须是一个内存操作数)传送至一对目的寄存器。目的的段地址必须传送至DS 段寄存器;而 16 位地址偏移量,必须传送至一个 16 位的指针寄存器或变址寄存器,如
图 3-15 所示。LES(LoadPointerintoES)这条指令除了把目标段地址送至段寄存器 ES 以外,其他与 LDS 指令类似。(4)标志寄存器传送(FlagRegisterTransfers)8086 有四条标志传送操作指令LAHF(LoadAHwithFlags)这条指令把标志寄存器中的符号标志 S、零标志 Z、辅助进位标志 A、奇偶标志 P 和进位标志 C 传送至 AH 的指定位,即相应地传送位至位 7、位 6、位 4、位 2 和位 0,而位 5、位3、位 1 的内容没有定义。SAHF(StoreAHintoFlags)这条指令与上一条指令的操作刚好相反,它是把寄存器 AH 的指定位,传送至标志寄存器中的 S、Z、A、P 和 C 标志。因而这些标志的内容就要受到影响,并且取决于 AH 中相应位的状态。但这条指令并不影响溢出标志 O、方向标志 D、中断屏蔽标志 I 和追踪标志 T。PUSHF(PushFlags)这条指令把整个标志寄存器(包括全部九个标志)推入至堆栈指针所指的堆栈的顶部,同时修改堆栈指针,即 SP-2→SP。PUSHF(PushFlags)这条指令把整个标志寄存器(包括全部九个标志)推入至堆栈指针所指的堆栈的顶部,同时修改堆栈指针,即 SP-2→SP在 8086 中有四种控制传送指令(ControlTransferInstruc@ons):(1)调用(Call)、转移(Jump)和返回(Return)指令;(2)条件传送指令;(3)重复控制指令;(4)中断指令所有的控制传送操作,使程序在内存的一个新的单元(很可能在一个新的码段区域中)继续执行。 1.调用(Call)、转移(Jump)和返回(Return)指令8086 提供两种基本调用、转移和返回操作。一种是传送控制在现行的码段区域中;另一种是传送控制到一个任选的码段区域中,而那个区域就变为现行的码段区域。2.条件转移指令(Condi@onalJumps)8086 有一连串的条件转移指令,它以某些标志位,或这些标志位的逻辑运算作为依据,若满足指令所规定的条件,则程序转移至指定目标;若不满足条件,则程序顺序执行条件转移指令的下一条指令。这类指令对标志位无影响。3.重复控制(Itera@onControl)一个循环程序必须要有指令来控制循环,重复控制指令在循环的头上或尾部确定是否进行循环。是否重复也是有条件的,通常是在 CX 寄存器中预置循环次数,重复控制指令,当 CX不等于零时,循环至目的地址。若不满足条件(通常当 CX=0 时),则顺序执行重复控制指令的下一条指令。4.处理器等待(ProcessorWait)8086 的 WAIT 指令,在 8086 的 TEST 引线无效的条件下,使 CPU 进入等待状态。在等待状态 8086CPU 没有任何操作。5.总线锁定 LOCK 是一个一字节的前缀,它可以放在任何指令前面。6 8086 寻址和寻址方式(重点)寻址:根据指令内容确定操作数地址的过程。
有效地址:若操作数位于内存,根据指令中包含的信息,经过寻址所确定的操作数的段内偏移地址。有效地址与相应的段基址构成了物理地址,这部分工作由 完成。寻址方式:如何寻找内存操作数的方法。不同寻址方式实质上是构成段内的偏移量的方法不同。操作数寻址方式有多种,其目的是缩短指令长度,扩大寻址空间,提高编程的灵活性。最基本的寻址方式有如下几种:()隐含寻址在指令中并不直接给出操作数的地址,而是隐含着操作数的地址。例:;另一个操作数的地址即隐含为累加器 ()立即寻址指令的地址字段指出的不是操作数的地址,而是操作数本身,这种寻址方式称为立即寻址。优点:不需操作数地址寻址,速度快。例: ,; 为立即数()直接寻址直接寻址是一种基本的寻址方式,其特点是:在指令格式的地址字段中直接指出操作数所在的内存的地址 ,即有效地址等于形式地址。 例:这是一条加 指令,指令有效地址 ()间接寻址间接寻址是相对于直接寻址而言的,在间接寻址的情况下,指令地址字段中的形式地址 不是操作数的有效地址,而是操作数地址的指示器,即 单元的内容才是操作数的有效地址。例:()优点:提供编程的灵活性;缺点:增加了访存时间,速度慢。例: ()这是一条加 指令,指令有效地址 ()()寄存器寻址方式和寄存器间接寻址方式寄存器寻址方式当操作数不放在内存中,而是存放在 的通用寄存器中时,可采用寄存器寻址方式。优点:用寄存器暂存操作数,无需访存,速度快。例: 这是一条加 指令,指令有效地址 寄存器间接寻址方式指令中的寄存器内容不是操作数,而是操作数的地址,该地址指明的操作数应在内存中。( )例:! 这是一条加 指令,指令有效地址 ( )(")相对寻址把程序计数器 的内容加上指令格式中的形式地址 而形成操作数的有效地址。 ()#优点:相对于当前指令地址进行浮动。例:
这是一条加 指令,指令有效地址 ()()基址寻址方式将 中基址寄存器 的内容加上指令格式中的形式地址而形成操作数的有效地址。()#如:这是一条加 指令,指令有效地址 ()!变址寻址方式把 中某个变值寄存器 的内容与偏移量 相加来形成操作数的有效地址。( )#如: 这是一条加 指令,指令有效地址 ( )变址寻址和基址寻址寻址方法十分类似,但用途不同:变址寻址:主要便于数组访问基址寻址:可扩大寻址范围,可实现程序浮动。!块寻址方式实现数据块的传送。指示数据块长度的方法:① 指令中划出字段给出块长度;② 指令中划出字段指出块的首地址、末地址;③ 由块结束字符指出数据块长度。!段寻址方式$%&'" 中采用了段寻址方式(基址寻址的特例)。由 " 位段寄存器和 " 位偏移量产生 位物理地址。 7 堆栈以“先进后出”原则组织起来的连续的内存空间。堆栈操作以字为单位。固定以 ((:( 为指针指示栈顶,出、入堆栈的操作均针对栈顶单元进行。" 的堆栈生长方向为“向下增长”。()堆栈的特点堆栈操作的单位是字,进栈和出栈只对字量;字量数据从栈顶压入和弹出时,都是低地址字节送低字节,高地址字节送高字节;堆栈操作遵循先进后出原则,但可用存储器寻址方式随机存期堆栈中的数据。()入栈和出栈入栈:先修改栈顶指针(( 减 ),将入栈数据的高字节存入栈顶;再次修改指针(( 减 ),将低字节存入栈顶。出栈:先将栈顶单元的内容存入目标字的低字节中,修改栈顶指针(( 加 );再将当前栈顶单元的内容存入目标字的高字节中,并修改指针(( 加 )。)入栈指令 (首先将栈指针 )* 加 ,然后把 +,-&.% 中的内容送到栈指针 )* 指示的内部 / 单元中。例如:当(()"!! 时,执行下列命令(;!("0(!0"(;!("0(!0"结果:(")!"!("
)出栈指令 1可使用的操作数类型:1( ;通用寄存器1( ;段寄存器1;存储器源操作数隐含为栈顶单元,指令执行后 ( 加 。8 8086 指令可以分为以下六类(重点):数据传送指令算术运算指令逻辑运算和移位指令控制转移指令处理器控制指令串操作指令9 寄存器寄存器是中央处理器内的组成部份。寄存器是有限存贮容量的高速存贮部件,它们可用来暂存指令、数据和位址。在中央处理器的控制部件中,包含的寄存器有指令寄存器! 和程序计数器!。在中央处理器的算术及逻辑部件中,包含的寄存器有累加器!。寄存器是内存阶层中的最顶端,也是系统获得操作资料的最快速途径。寄存器通常都是以他们可以保存的位元数量来估量,举例来说,一个 “位元寄存器”或 “位元寄存器”。寄存器现在都以寄存器档案的方式来实作,但是他们也可能使用单独的正反器、高速的核心内存、薄膜内存以及在数种机器上的其他方式来实作出来。寄存器通常都用来意指由一个指令之输出或输入可以直接索引到的暂存器群组。更适当的是称他们为 “架构寄存器”。寄存器是 内部的元件,寄存器拥有非常高的读写速度,所以在寄存器之间的数据传送非常快。可将寄存器内的数据执行算术及逻辑运算;存于寄存器内的地址可用来指向内存的某个位置,即寻址;可以用来读写数据到电脑的周边设备。"有 个 " 位寄存器,这 个寄存器按其用途可分为通用寄存器、指令指针、标志寄存器和段寄存器等 类。()通用寄存器通用寄存器有 个又可以分成 组一组是数据寄存器( 个),另一组是指针寄存器及变址寄存器( 个)。数据寄存器分为234=!5..676'5%8-:累加寄存器,常用于运算9在乘除等指令中指定用来存放操作数另外所有的 :1 指令都使用这一寄存器与外界设备传送数据34=!;5)&:基址寄存器,常用于地址索引;34=!.86$%:计数寄存器,常用于计数;常用于保存计算值如在移位指令循环!'88*和串处理指令中用作隐含的计数器