微型计算机与接口技术课件_第1页
微型计算机与接口技术课件_第2页
微型计算机与接口技术课件_第3页
微型计算机与接口技术课件_第4页
微型计算机与接口技术课件_第5页
已阅读5页,还剩331页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微型计算机与接口技术第1讲微型计算机系统导论

1.微计算机系统的层次

2.系统总线概述

1.微计算机系统的层次微处理器(Microprocessor)微型计算机(Microcomputer)微计算机系统(Microcomputersystem)(1)微处理器(Microprocessor)不包含微型计算机硬件的全部功能,但它是微型计算机控制、处理的核心。单片VLSI电路,体系结构技术、工作频率已达空前高的水平。主流微处理器具有通用性,不仅用于微型机也用于工作站及超级计算机。由算逻部件、寄存器、控制部件组成。通用寄存器专用寄存器控制逻辑ALUAB内部总线微处理器结构框图(2)微型计算机微处理器:执行指令的核心。存储器:指令码、操作数、结果的存储。外围接口电路:并口、串口、外存接口、显示器接口、网络接口、声音接口等。系统总线:不同层次的总线将上述模块连接起来,作为各种信息的通路,按信息类别分为数据、地址、控制三类总线。微处理器(up)总线控制逻辑

数据总线控制总线

输入/输出接口电路

存储器地址总线

微计算机基本结构(3)微计算机系统微计算机:微处理器、存储器、外围接口电路、系统总线。软件:系统软件、中间软件、应用软件。外部设备:软驱、硬驱、光驱、键盘、鼠标、显示器。电源、机箱、控制面板。

算术逻辑单元寄存器阵列控制器电路数据总线地址总线控制总线只读存储器随机访问存储器串行输入输出接口并行输入输出接口外存储器接口显示器接口等等键盘、鼠标显示示器、打印机软磁盘驱动器硬磁盘驱动器光盘驱动器等等微处理器系统总线内存储器外围接口电路电源、机箱、控制面板系统软件中间件应用软件软件外围设备微型计算机系统微型计算机微处理器,微计算机,微计算机系统三者关系2.系统总线概述概述ISA总线PCI总线(1)概述总线的定义:在微型计算机系统中,利用总线实现芯片内部、印刷电路板各部件之间、机箱内个插件之间、主机与外设之间或系统与系统之间的连接与通信。在这里我们把芯片内部的各功能部件、芯片、插件板、集成的系统、主机和外设等都看成是一个个相对独立的模块。连接在总线上的模块可分为主模块和从属模块,对于读操作命令,数据源模块为从属模块(存储器或I/O接口)目的模块是主模块(CPU或DMAC);对于写命令,正好和读操作相反。因而总线可定义为:是一组信号的集合,是计算机各模块之间进行信息传播的公共通道。

目前总线在微机系统中的作用已不仅仅是传送数据,总线的结构还决定了机器系统硬件的组成结构,它是计算机总体结构的支柱。总线设计的好坏直接影响整个计算机系统的性能、可靠性、可扩展性和可升级性。随着计算机技术的发展,总线结构越来越复杂,功能也越来越强大。总线的分类:总线按传送信息的类别可分为:地址总线、数据总线、控制总线三类。总线按在微机结构中所处的位置可分为:片内总线。是指位于集成电路芯片内部的总线。例如CPU内部总线,用来连接其内部的各功能单元。芯片总线。也成片级总线,用于同一电路板上各芯片之间连接的总线。系统总线。是指模块式微型计算机机箱内的底板总线,用来连接微机的各插件板。其表现形式是位于底板上的一个个标准的总线扩展槽。通常所说的微机总线就是指的这一总线。系统总线按采用的技术和发展水平通常有两种分类按性能分为高端总线(支持64位处理器的总线,如PCI)和低端总线(支持8、16位处理器的总线,如IBM-PC/XT、ISA总线);按技术差异分为传统总线和现代总线。外部总线。用于系统与系统或自荐的连接和通信。为微机与微机之间、微机与外设之间提供标准连接。通常用的外部总线是IEEE-488和RS232接口总线。总线的通信方式:为了保证通信的可靠性,主、从模块间至少应该满足下述关系:发送模块在开始发送数据时,接受模块应作好接受的准备。在接受模块没有受到准确的数据前,发送模块不应撤除发送信号。因此主、从模块通常采用同步传输、半同步传输、异步传输三种方式来实现总线传输的控制。总线标准:为了是总线能够更好地连接不同的模块和传输数据,为其制定或公开总线的一些详细规范,这种规范叫做总线标准。总线标准包含的内容有机械结构规范、功能结构规范和电气规范。流行总线的性能指标:总线宽度(数据总线的条数)、标准传输率(单位MB/s)、时钟同步/异步、数据/地址的多路复用与非复用、信号线数等等。1.微计算机系统的层次微处理器(Microprocessor)微型计算机(Microcomputer)微计算机系统(Microcomputersystem)(1)微处理器(Microprocessor)不包含微型计算机硬件的全部功能,但它是微型计算机控制、处理的核心。单片VLSI电路,体系结构技术、工作频率已达空前高的水平。主流微处理器具有通用性,不仅用于微型机也用于工作站及超级计算机。由算逻部件、寄存器、控制部件组成。通用寄存器专用寄存器控制逻辑ALUAB内部总线微处理器结构框图(2)微型计算机微处理器:执行指令的核心。存储器:指令码、操作数、结果的存储。外围接口电路:并口、串口、外存接口、显示器接口、网络接口、声音接口等。系统总线:不同层次的总线将上述模块连接起来,作为各种信息的通路,按信息类别分为数据、地址、控制三类总线。微处理器(up)总线控制逻辑

数据总线控制总线

输入/输出接口电路

存储器地址总线

微计算机基本结构(3)微计算机系统微计算机:微处理器、存储器、外围接口电路、系统总线。软件:系统软件、中间软件、应用软件。外部设备:软驱、硬驱、光驱、键盘、鼠标、显示器。电源、机箱、控制面板。

算术逻辑单元寄存器阵列控制器电路数据总线地址总线控制总线只读存储器随机访问存储器串行输入输出接口并行输入输出接口外存储器接口显示器接口等等键盘、鼠标显示示器、打印机软磁盘驱动器硬磁盘驱动器光盘驱动器等等微处理器系统总线内存储器外围接口电路电源、机箱、控制面板系统软件中间件应用软件软件外围设备微型计算机系统微型计算机微处理器,微计算机,微计算机系统三者关系2.系统总线概述概述ISA总线PCI总线(1)概述总线的定义:在微型计算机系统中,利用总线实现芯片内部、印刷电路板各部件之间、机箱内个插件之间、主机与外设之间或系统与系统之间的连接与通信。在这里我们把芯片内部的各功能部件、芯片、插件板、集成的系统、主机和外设等都看成是一个个相对独立的模块。连接在总线上的模块可分为主模块和从属模块,对于读操作命令,数据源模块为从属模块(存储器或I/O接口)目的模块是主模块(CPU或DMAC);对于写命令,正好和读操作相反。因而总线可定义为:是一组信号的集合,是计算机各模块之间进行信息传播的公共通道。

目前总线在微机系统中的作用已不仅仅是传送数据,总线的结构还决定了机器系统硬件的组成结构,它是计算机总体结构的支柱。总线设计的好坏直接影响整个计算机系统的性能、可靠性、可扩展性和可升级性。随着计算机技术的发展,总线结构越来越复杂,功能也越来越强大。总线的分类:总线按传送信息的类别可分为:地址总线、数据总线、控制总线三类。总线按在微机结构中所处的位置可分为:片内总线。是指位于集成电路芯片内部的总线。例如CPU内部总线,用来连接其内部的各功能单元。芯片总线。也成片级总线,用于同一电路板上各芯片之间连接的总线。系统总线。是指模块式微型计算机机箱内的底板总线,用来连接微机的各插件板。其表现形式是位于底板上的一个个标准的总线扩展槽。通常所说的微机总线就是指的这一总线。系统总线按采用的技术和发展水平通常有两种分类按性能分为高端总线(支持64位处理器的总线,如PCI)和低端总线(支持8、16位处理器的总线,如IBM-PC/XT、ISA总线);按技术差异分为传统总线和现代总线。外部总线。用于系统与系统或自荐的连接和通信。为微机与微机之间、微机与外设之间提供标准连接。通常用的外部总线是IEEE-488和RS232接口总线。总线的通信方式:为了保证通信的可靠性,主、从模块间至少应该满足下述关系:发送模块在开始发送数据时,接受模块应作好接受的准备。在接受模块没有受到准确的数据前,发送模块不应撤除发送信号。因此主、从模块通常采用同步传输、半同步传输、异步传输三种方式来实现总线传输的控制。总线标准:为了是总线能够更好地连接不同的模块和传输数据,为其制定或公开总线的一些详细规范,这种规范叫做总线标准。总线标准包含的内容有机械结构规范、功能结构规范和电气规范。流行总线的性能指标:总线宽度(数据总线的条数)、标准传输率(单位MB/s)、时钟同步/异步、数据/地址的多路复用与非复用、信号线数等等。1.8086/8088指令系统

8086/8088指令格式

8086/8088指令系统的寻址方式

8086/8088指令系统

(1)8086/8088指令格式

用汇编语言编写的汇编语言程序输入计算机后,必须由“汇编程序”将它翻译成由机器指令(指令码)组成的机器语言程序,才能由计算机识别并执行。因此汇编语言程序需由汇编程序翻译成可执行的机器语言程序,一般来说,这一过程不必由人来干预。我们这里只介绍一下基本原理,以便在必要时也可以手工完成类似的工作。8086/8088指令系统的指令类型较多,功能很强。各种指令由于功能不同,需要指令码提供的信息也不同。为了满足不同功能的要求又要尽量减少指令所占的空间,8086/8088指令系统采用了一种灵活的、由1~6个字节组成的变字长的指令格式,包括操作码、寻址方式以及操作数三个部分,如图3.1所示。通常指令的第一字节为操作码字节(OPCODE),规定指令的操作类型;第二字节为寻址方式字节(MOD),规定操作数的寻址方式;接着以后的3~6字节依据指令的不同而取舍,可变字长的指令主要体现在这里,一般由它指出存储器操作数地址的位移量或立即数。图3.18086/8088不同字长的指令码格式

操作码/寻址方式字节格式如下:

第一字节中,W指示操作数类型:W=0为字节,W=1为字;D指示操作数的传送方向:D=0表示寄存器操作数为源操作数,D=1表示寄存器操作数为目的操作数。第二字节指出所用的两个操作数存放的位置,以及存储器中操作数偏移地址的计算方法。其中:REG字段规定一个寄存器操作数,它作为源操作数还是目的操作数已由第一字节中的D位规定。由REG字段选择寄存器的具体规定如表3.1所示。表3.1REG字段编码表

REGW=1(字操作)W=0(字节操作)000AXAL001CXCL010DXDL011BXBL100SPAH101BPCH110SIDH111DIBHMOD字段用来区分另一个操作数在寄存器中(寄存器寻址)还是在存储器中(存储器寻址),在存储器寻址的情况下,还用来指出该字节后面有无位移量,有多少位位移量。MOD字段的编码如表3.2所示。表3.2MOD字段编码表

MOD寻址方式00存储器寻址,没有位移量01存储器寻址,有8位位移10存储器寻址,有16位位移11寄存器寻址,没有位移量R/M字段受MOD字段控制。MOD=11为寄存器方式,R/M字段将指出第二操作数所在的寄存器编号;MOD=00,01,10为存储器方式,R/M则指出如何计算存储器中操作数的偏移地址。MOD与R/M字段组合的寻址方式见表3.3。表3.3MOD与R/M字段组合的寻址方式

例3.1

MOVAH,[BX+DI+50H]

代码格式:100010100110000101010000OPCODEDWMODREGR/Mdisp–8指令码为:8A6150H

例3.2ADDdisp[BX][DI],DX

;disp=2345H

代码格式:00000001100100010101000000100011OPCODEDWMODREGR/Mdisp–Hidisp-Hi指令码为:01914523H(2)8086/8088指令系统的寻址方式

1.操作数的种类

1)数据操作数这类操作数是与数据有关的操作数,即指令中操作的对象是数据。数据操作数又可分为:

(1)立即数操作数。指令中要操作的数据包含在指令中。

(2)寄存器操作数。指令中要操作的数据存放在指定的寄存器中。

(3)存储器操作数。指令中要操作的数据存放在指定的存储单元中。

(4)I/O操作数。指令中要操作的数据来自或送到I/O端口。2)地址操作数这类操作数是与程序转移地址有关的操作数,即指令中操作的对象不是数据,而是要转移的目标地址。它也可以分为立即数操作数、寄存器操作数和存储器操作数,即要转移的目标地址包含在指令中,或存放在寄存器中,或存放在存储单元之中。对于数据操作数,有的指令有两个操作数:一个称为源操作数,在操作过程中其值不改变;另一个称为目的操作数,操作后一般被操作结果代替。有的指令只有一个操作数,或没有(或隐含)操作数。对于地址操作数,指令只有一个目的操作数,它是一个供程序转移的目标地址。2.寻址方式所谓寻址方式,就是指指令中给出的寻找操作数(包括数据操作数和地址操作数)的方法。根据操作数的种类,8086/8088指令系统的寻址方式分为两大类:数据寻址方式和地址寻址方式。

1)数据寻址方式数据寻址方式可分为立即数寻址方式、寄存器寻址方式、存储器寻址方式和I/O端口寻址方式四种类型。(1)立即数寻址方式(ImmediateAddressing)。立即数寻址方式所提供的操作数直接包含在指令中,紧跟在操作码之后,它作为指令的一部分,这种操作数称为立即数。立即数可以是8位的,也可以是16位的。如果是16位数,则高位字节存放在高地址存储单元中,低位字节存放在低地址存储单元中。例如:

MOV BL,80H MOV AX,1090H则指令执行情况如图3.2所示。执行结果为:(BL)=80H,(AX)=1090H。图3.2立即数寻址方式指令的执行情况(2)寄存器寻址方式(RegisterAddressing)。寄存器寻址方式的操作数存放在指令规定的寄存器中,寄存器的名字在指令中指出。对于16位操作数,寄存器可以是AX、BX、CX、DX、SI、DI、SP或BP。对于8位操作数,寄存器可以是AH、AL、BH、BL、CH、CL、DH或DL。例如:

MOV CL,DL MOV AX,BX如果(DL)=50H,(BX)=1234H,则指令执行情况如图3.3所示。执行结果为:(CL)=50H,(AX)=1234H。图3.3寄存器寻址方式的指令执行情况

由于寄存器寻址方式的操作数就在CPU内部的寄存器中,不需要访问存储器来取得操作数,因而可以取得较高的运行速度。(3)存储器寻址方式(MemoryAddressing)。存储器寻址方式的操作数存放在存储单元中。在第2讲中已经知道,操作数在存储器中的物理地址是由段地址左移4位与操作数在段内的偏移地址相加得到的。段地址在实模式和保护模式下可从不同途径取得。本节要讨论的问题是指令中是如何给出存储器操作数在段内的偏移地址的。偏移地址又称为有效地址(EffectiveAddress,EA),所以存储器寻址方式即为求得有效地址(EA)的不同途径。

有效地址可以由以下三种地址分量组成:●位移量(Displacement):它是存放在指令中的一个8位或16位的数,但它不是立即数,而是一个地址。●基址(BaseAddress):它是存放在基址寄存器BX或BP中的内容。●变址(IndexAddess):它是存放在变址寄存器SI或DI中的内容。对于某条具体指令,这三个地址分量可有不同的组合。如果存在两个或两个以上的分量,那么就需要进行加法运算,求出操作数的有效地址(EA),进而求出物理地址(PA)。正是因为这三种地址分量有不同的组合,才使得对存储器操作数的寻址产生了若干种不同的方式。①直接寻址方式(DirectAddressing)。直接寻址方式的操作数有效地址只包含位移量一种分量,即在指令的操作码后面直接给出有效地址。对这种寻址方式有:EA=位移量。例如:

MOVAL,[1064H]

如果(DS)=2000H,则指令执行情况如图3.4所示。执行结果为:(AL)=45H。图3.4直接寻址方式的指令执行情况

注意这种直接寻址方式与前面介绍的立即数寻址方式的不同。从指令的表示形式来看,在直接寻址方式中,对于表示有效地址的16位数,必须加上方括号。从指令的功能上来看,本例指令的功能不是将立即数1064H传送到累加器AL,而是将一个有效地址是1064H的存储单元的内容传送到AL。设此时数据段寄存器(DS)=2000H,则该存储单元的物理地址为:PA=2000H

10H+1064H=20000H+1064H=21064H

如果没有特殊指明,直接寻址方式的操作数一般在存储器的数据段中,即隐含的段寄存器是DS。但是8086/8088也允许段超越,此时需要在指令中特别标明,方法是在有关操作数的前面写上操作数所在段的段寄存器名,再加上冒号。例如,若以上指令中源操作数不在数据段而在附加数据段中,则指令应写为如下形式:

MOVAL,ES:[1064H]

在汇编语言指令中,可以用符号地址来表示位移量。例如:

MOVAL,[value]或MOVAL,value此时value为存储单元的符号地址。②寄存器间接寻址方式(RegisterIndirectAddressing)。寄存器间接寻址方式的操作数有效地址只包含基址寄存器(BX)的内容或变址寄存器(SI、DI)的内容一种分量。因此,操作数的有效地址在某个寄存器中,而操作数本身则在存储器中的数据段内。这与寄存器寻址方式操作数就在寄存器中是不同的。寄存器间接寻址方式的有效地址表示为: EA=(SI)(DI)(BX)

书写指令时,用做间址的寄存器必须加上方括弧,以免与一般的寄存器寻址方式混淆。例如:MOVAX,[SI]MOV[BX],AL

如果(DS)=3000H,(SI)=2000H,(BX)=1000H,(AL)=64H,则上述两条指令的执行情况如图3.5所示。执行结果为:(AX)=4050H,(31000H)=64H。图3.5寄存器间接寻址方式的指令执行情况同样,寄存器间接寻址方式也允许段超越。例如:

MOVES:[DI],AX③寄存器相对寻址方式(RegisterRelativeAddressing)。寄存器相对寻址方式的操作数有效地址EA是一个基址寄存器或变址寄存器的内容和指令中给定的8位或16位位移量相加之和,所以有效地址由两种分量组成。可用做寄存器相对寻址方式的寄存器有基址寄存器BX、BP和变址寄存器SI、DI。即(SI)(DI)(BX)(BP)EA=+disp–8/disp–16

上述位移量可以看成是一个存放于寄存器中的基值的一个相对值,故称为寄存器相对寻址方式。在一般情况下,若指令中指定的寄存器是BX、SI、DI,则操作数默认为存放在数据段中;若指令中指定的寄存器是BP,则操作数默认为存放在堆栈段中。同样,寄存器相对寻址方式也允许段超越。位移量既可以是一个8位或16位的立即数,也可以是符号地址。例如:

MOV[SI+10H],AXMOVCX,[BX+COUNT]

如果(DS)=3000H,(SI)=2000H,(BX)=1000H,COUNT=1050H,(AX)=4050H,则指令执行情况如图3.6所示。执行结果为:(32010H)=4050H,(CX)=4030H。图3.6寄存器相对寻址方式的指令执行情况

该寻址方式的操作数在汇编语言指令中书写时可以是下述形式之一:MOVAL,[BP+TABLE]MOVAL,[BP]+TABLEMOVAL,TABLE[BP]

其实以上三条指令代表的是同一功能的指令。其中TABLE为8位或16位位移量。④基址变址寻址方式(BasedIndexedAddressing)。基址变址寻址方式的操作数有效地址是一个基址寄存器(BX或BP)和一个变址寄存器(SI或DI)的内容之和,所以有效地址由两种分量组成。即

在一般情况下,由基址寄存器决定操作数在哪个段中。若用BX的内容作为基地址,则操作数在数据段中;若用BP的内容作为基地址,则操作数在堆栈段中。基址变址寻址方式同样也允许段超越。例如:MOV[BX+DI],AXMOVAH,[BP][SI]

设当前(DS)=3000H,(SS)=4000H,(BX)=1000H,(DI)=1100H,(AX)=0050H,(BP)=2000H,(SI)=1200H,则指令的执行情况如图3.7所示。执行结果为:(32100H)=0050H,(AH)=56H。图3.7基址变址寻址方式的指令执行情况

该寻址方式的操作数在汇编语言指令中书写时可以是下列形式之一:

MOVAX,[BP+SI]MOVAX,[BP][SI]⑤基址变址相对寻址方式(BasedIndexedRelativeAddressing)。基址变址相对寻址方式的操作数有效地址是一个基址寄存器内容、一个变址寄存器内容与指令中指定的一个8位或16位位移量之和,所以有效地址由三个分量组成。即

同样,当基址寄存器为BX时,操作数在数据段中;基址寄存器为BP时,操作数在堆栈段中。基址变址相对寻址方式同样也允许段超越。例如:

MOVAH,[BX+DI+1234H] MOV[BP+SI+DATA],CX

若(DS)=4000H,(SS)=5000H,(BX)=1000H,(DI)=1500H,(BP)=2000H,(SI)=1050H,(CX)=2050H,DATA=10H,则指令执行情况如图3.8所示。执行结果为:(AH)=64H,(53060H)=2050H。基址变址相对寻址方式也可以表示成以下几种不同的形式:

MOVAX,[BX+SI+COUNT] MOVAX,[BX][SI+COUNT] MOVAX,[BX+SI]COUNT MOVAX,[BX][SI]COUNT MOVAX,COUNT[BX][SI]图3.8基址变址相对寻址方式的指令执行情况(4) I/O端口寻址方式。I/O端口寻址有以下两种寻址方式:

①端口直接寻址方式。对这种寻址方式,端口地址用8位立即数(0~255)表示。例如:

INAL,21H

此指令表示从地址为21H的端口中读取数据送到AL中。假设21H端口提供的数据为7FH,则指令执行情况如图3.9所示。执行结果为:将21H端口提供的数据7FH输入到8位寄存器AL中。②端口间接寻址方式。当I/O端口地址大于FFH时,必须事先将端口地址存放在DX寄存器中。例如:

MOVDX,120HOUT DX,AX

前一条指令将端口地址120H送到DX寄存器,后一条指令将AX中的内容输出到地址由DX寄存器内容所指定的端口中。指令执行情况如图3.10所示。执行结果为:将AX寄存器的内容输出到120H端口。图3.9端口直接寻址的指令执行情况图3.10端口间接寻址的指令执行情况2)地址寻址方式在8086/8088指令系统中,有一组指令被用来控制程序的执行顺序。程序的执行顺序是由CS和IP的内容所决定的。通常情况下,当BIU完成一次取指周期后,就自动改变IP的内容以指向下一条指令的地址,使程序按预先存放在程序存储器中的指令的次序,由低地址到高地址顺序执行。如需要改变程序的执行顺序,当转移到所要求的指令地址再顺序执行时,可以安排一条程序转移指令,并按指令的要求修改IP内容或同时修改IP和CS的内容,从而将程序转移到指令所指定的转移地址。地址寻址方式就是找出程序转移的地址。转移地址可以在段内(称为段内转移),也可以跨段(称段间转移)。寻求转移地址的方法称为地址寻址方式,它有如下四种方式。(1)段内直接寻址方式。段内直接寻址方式也称为相对寻址方式。转移的地址是当前的IP内容和指令规定的下一条指令到目标地址之间的8位或16位相对位移量之和,相对位移量可正可负。当位移量是8位时,称为短转移,转移范围为−128~+127;位移量是16位时,称为近转移,转移范围为−32768~+32767。这种寻址方式适用于无条件转移或条件转移类指令。但条件转移里只有8位位移量的短转移。

段内直接寻址转移指令的格式可以表示为:

JMPNEARPTRPROGIA JMPSHORTQUEST

其中,PROGIA和QUEST均为转向的目标地址,在机器指令中,用位移量来表示。在汇编语言中,如果位移量为16位,则在目标地址前加操作符NEARPTR;如果位移量为8位,则在目标地址前加操作符SHORT。但是,如果目标地址的标号已经定义(即标号先定义后引用),那么,即使在标号前没有写运算符SHORT,汇编程序也能自动生成一个2字节的短转移指令。这种情况属于隐含的短转移。(2)段内间接寻址方式。该寻址方式的程序转移地址存放在寄存器或存储单元中。存储器可用各种数据寻址方式表示。指令的操作是用指定的寄存器或存储器中的值取代当前IP的内容,以实现程序的段内转移。这种寻址方式以及以下的两种段间寻址方式都不能用于条件转移指令。也就是说,条件转移指令只能使用段内直接寻址的8位位移量。

段内间接寻址转移指令的格式可以表示为:

JMPBX JMPWORDPTR[BP+TABLE]

其中WORDPTR为操作符,用以指出其后的寻址方式所取得的目标地址是一个字的有效地址。(3)段间直接寻址方式。这种寻址方式是在指令中直接给出16位的段地址和16位的偏移地址用来更新当前的CS和IP的内容。指令的格式可以表示为:

JMPLABEL_NAMEJMPFARPTRNEXTROUTINT其中,LABEL_NAME是一个在另外的代码段内已定义的远标号。指令的操作是用标号的偏移地址取代指令指针寄存器IP的内容,同时用标号所在段的段地址取代当前代码段寄存器CS的内容,结果使程序转移到另一代码段内指定的标号处。第二条指令利用运算符将标号NEXTROUTINT的属性定义为FAR。(4)段间间接寻址方式。这种寻址方式是由指令中给出的存储器寻址方式求出存放转移地址的四个连续存储单元的地址。指令的操作是将存储器的前两个单元的内容送给IP,后两个单元的内容送给CS,以实现到另一个段的转移。以下是两条段间间接转移指令的例子:

JMPVAR_DOUBLEWORDJMPDWORDPTR[BP][DI]上面第一条指令中,VAR_DOUBLEWORD应是一个已定义为32位的存储器变量;第二条指令中,利用运算符PTR将存储器操作数的类型定义为DWORD(双字)。(3)8086/8088指令系统

数据传送指令算术运算指令位操作指令串操作指令程序控制指令处理器控制指令1.数据传送指令数据传送指令是程序中使用最频繁的指令。这是因为不论程序针对何种具体的实际问题,往往都需要将原始数据、中间结果、最终结果以及其他各种信息在CPU的寄存器和存储器或I/O端口之间多次传送。数据传送指令按其功能的不同,可以分为通用数据传送指令、输入输出指令、目标地址传送指令和标志传送指令等四组。1)通用数据传送指令通用数据传送指令有以下四种。

(1)数据传送指令MOV(MOVement)。指令格式及操作:

MOVdst,src;(dst)←(src)

指令格式中的dst表示目的操作数,src表示源操作数(下同)。指令实现的操作是将源操作数送给目的操作数。这种传送实际上是进行数据的“复制”,源操作数本身不变。

这种双操作数指令在汇编语言中的表示方法,总是将目的操作数写在前面,源操作数写在后面,二者之间用一个逗号隔开。在MOV指令中源操作数可以是存储器、寄存器、段寄存器和立即数;目的操作数可以是存储器、寄存器(不能为IP)和段寄存器(不能为CS)。数据传送的方向如图3.11所示。图3.11MOV指令数据传送方向

必须注意,不能用一条MOV指令实现以下传送:

①存储单元之间的传送。

②立即数至段寄存器的传送。

③段寄存器之间的传送。需说明一点,对于代码段寄存器CS和指令指针寄存器IP,通常无需用户利用传送指令改变其中的内容。但是CS可以作为源操作数。(2)堆栈操作指令。堆栈操作指令是用来完成压入和弹出堆栈操作的。8086/8088指令系统中提供了完成这两种操作的相应指令。

①压入堆栈指令PUSH(PUSHwordontostack)。指令格式及操作:

PUSH src;(SP)←(SP)−2,((SP)+1:(SP))←(src)

指令完成的操作是“先移后入”,即先将堆栈指针SP减2,使SP始终指向栈顶,然后再将操作数src压入(SP)+1和(SP)两个存储单元中。指令中的操作数src可以是通用寄存器和段寄存器,也可以是由某种寻址方式所指示的存储单元,但不能是立即数。例如:

PUSHAX ;(SP)←(SP)−2,((SP)+1)←(AH),((SP))←(AL) PUSHCS PUSH[SI]②弹出堆栈指令POP(POPwordoffstack)。指令格式及操作:

POPdst ;(dst)←((SP)+1:(SP)),(SP)←(SP)+2

指令完成的操作是“先出后移”,即先将堆栈指针SP所指示的栈顶存储单元的值弹出到操作数dst中,然后再将堆栈指针SP加2,使其指向栈顶。指令中的操作数dst可以是存储器、通用寄存器或段寄存器(但不能是代码段寄存器CS),同样也不能是立即数。例如:

POPBX;(BL)←((SP)),(BH)←((SP)+1),(SP)←(SP)+2POPESPOPMEM[DI]

应该注意,堆栈操作指令中的操作数类型必须是字操作数,即16位操作数。(3)数据交换指令XCHG(eXCHanGe)。指令格式及操作:

XCHGdst,src ;(dst)←→(src)

该指令的操作是使源操作数与目的操作数进行交换,即不仅将源操作数传送到目的操作数,而且同时将目的操作数传送到源操作数。交换指令的源操作数和目的操作数各自均可以是寄存器或存储器,但不能二者同时为存储器。也就是说,可以在寄存器与寄存器之间,或者寄存器与存储器之间进行交换。此外,段寄存器的内容不能参加交换。交换的内容可以是一个字节(8位),也可以是一个字(16位)。2)输入输出指令输入输出指令共有两条。输入指令IN用于从外设端口读入数据,输出指令OUT则向端口发送数据。无论是读入的数据或是准备发送的数据都必须放在寄存器AL(字节)或AX(字)中。输入输出指令可以分为两大类:一类是端口直接寻址的输入输出指令;另一类是端口通过DX寄存器间接寻址的输入输出指令。在直接寻址的指令中只能寻址256个端口(0~255),而间接寻址的指令中可寻址64K个端口(0~65535)。(1)输入指令IN(INputbyteorword)。输入指令分直接寻址输入指令和间接寻址输入指令。

①直接寻址的输入指令。指令格式及操作:

INacc,port ;(acc)←(port)

指令中直接给出端口地址(地址小于0FFH),其功能为从指令中直接指定的端口中读入一个字节或一个字送AL或AX。②间接寻址的输入指令。指令格式及操作:

INacc,DX ;(acc)←((DX))

此指令是从DX寄存器内容指定的端口中将8/16位数据送入AL/AX中。这种寻址方式的端口地址由16位地址表示,执行此指令前应将16位地址存入DX寄存器中。(2)输出指令OUT(OUTputbyteorword)。输出指令分直接寻址输出指令和间接寻址输出指令。

①直接寻址的输出指令。指令格式及操作:

OUTport,acc ;(port)←(acc)

此指令将AL(8位)或AX(16位)中的数据输出到指令指定的I/O端口,端口地址应不大于FFH。②间接寻址的输出指令。指令格式及操作:

OUTDX,acc ;((DX))←(acc)

此指令将AL(8位)或AX(16位)中的数据输出到由DX寄存器内容指定的I/O端口中。2.算术运算指令

1)算术运算的数据类型

8086/8088的算术运算指令可以处理四种类型的数:无符号的二进制数、带符号的二进制数、无符号的压缩十进制数(压缩型BCD码)和无符号的非压缩十进制数(非压缩型BCD码)。除压缩十进制数只有加/减运算外,其余三种数据类型都可以进行加、减、乘、除运算。二进制的无符号数和带符号数的长度都可以是8位或16位,但应注意它们所能表示的数的范围是不同的。若是带符号数,则用补码表示。

十进制数以字节的形式存储。对压缩十进制数,每个字节存两位数,即两位BCD码,因而对于一个字节来说,压缩十进制数的范围是0~99。而对非压缩的十进制数,每个字节存一位数,即由字节的低4位决定存放的数字,对于高4位,在进行乘/除运算时必须全为0,加/减运算时可以是任何值。

8086/8088提供的各种调整操作指令可以方便地进行压缩或非压缩十进制数的算术运算。2)算术运算指令对标志位的影响

8086/8088的算术运算指令将运算结果的某些特性传送到6个状态标志位上去,这些标志位中的绝大多数可由跟在算术运算指令后的条件转移指令进行测试,以改变程序的流程。因此掌握指令执行结果对标志位的影响,对编程有着重要的作用。关于6个状态标志位的含义已在第3章中做了介绍,这里不再重复。算术运算类指令共有20条,包括加、减、乘、除运算,符号扩展和十进制调整指令,除符号扩展指令(CBW,CWD)外,其余指令都影响标志位。3)二进制数运算指令二进制数运算指令包括加法、减法、乘法、除法和符号扩展指令等五种。

(1)加法指令。加法指令包括不带进位加法指令、带进位加法指令和加1指令。

①加法指令ADD(ADDition)。指令格式及操作:

ADDdst,src ;(dst)←(dst)+(src)ADD指令将目的操作数与源操作数相加,并将结果送给目的操作数。加法指令将影响状态标志位。

目的操作数可以是寄存器或存储器,源操作数可以是寄存器、存储器或立即数。但是源操作数和目的操作数不能同时为存储器。另外,不能对段寄存器进行加法运算(段寄存器也不能参加、减、乘、除运算)。加法指令的操作对象可以是8位数(字节),也可以是16位数(字)。例如:ADDCL,10ADDDX,SIADDAX,MEMADDDATA[BX],ALADDALPHA[DI],30H;变量ALPHA的类型决定指令完成字节加还是字加

相加的数据类型可以根据编程者的意图,规定为带符号数或无符号数。对于无符号数,若相加结果超出了8位或16位无符号数所能表示的范围,则进位标志位CF被置1;对于带符号数,如果相加结果超出了8位或16位补码所能表示的范围(−128

+127或−32768

+32767),则溢出标志位OF被置1,结果溢出。②带进位加法指令ADC(ADditionwithCarry)。指令格式及操作:

ADCdst,src ;(dst)←(dst)+(src)+(CF)ADC指令是将目的操作数与源操作数相加,再加上进位标志CF的内容,然后将结果送给目的操作数。与ADD指令一样,ADC指令的运算结果也将修改状态标志位。目的操作数及源操作数的类型与ADD指令相同,而且ADC指令同样也可以进行字节操作或字操作。带进位加法指令主要用于多字节数据的加法运算。如果低字节相加时产生进位,则在下一次高字节相加时将这个进位加进去。③加1指令INC(INCrementby1)。指令格式及操作:

INCdst;(dst)←(dst)+1INC指令将目的操作数加1,并将结果送回目的操作数。指令将影响状态标志位,如SF、ZF、AF、PF和OF,但对进位标志CF没有影响。

INC指令中目的操作数可以是寄存器或存储器,但不能是立即数和段寄存器。其类型为字节操作或字操作均可。例如:INCDLINCSIINCBYTEPTR[BX][SI]INCWORDPTR[DI]

指令中的BYTEPTR或WORDPTR分别指定随后的存储器操作数的类型是字节或字。

INC指令常常用于在循环程序中修改地址。

(2)减法指令。减法指令包括不带借位减法指令、带借位减法指令、减1指令、求补指令和比较指令。

①减法指令SUB(SUBtraction)。指令格式及操作:

SUBdst,src ;(dst)←(dst)−(src)SUB指令将目的操作数减源操作数,结果送回目的操作数。指令对状态标志位有影响。

操作数的类型与加法指令一样,即目的操作数可以是寄存器或存储器,源操作数可以是立即数、寄存器或存储器,但不允许两个存储器操作数相减;既可以字节相减,也可以字相减。例如:

SUBAL,37HSUBDX,BXSUBCX,VARE1SUBARRAY[DI],AXSUBBETA[BX][DI],512 ;BETA为字型变量,若为字节型变量,则源操作数超出范围

减法数据的类型也可以根据程序员的要求约定为带符号数或无符号数。当无符号数的较小数减较大数时,因不够减而产生借位,此时进位标志CF置1。当带符号数的较小数减较大数时,将得到负的结果,则符号标志SF置1。带符号数相减如果结果溢出,则OF置1。②带借位减法指令SBB(SuBtractionwithBorrow)。指令格式及操作:

SBBdst,src ;(dst)←(dst)-(src)-(CF)SBB指令是将目的操作数减源操作数,然后再减进位标志CF,并将结果送回目的操作数。SBB指令对标志位的影响与SUB指令相同。

目的操作数及源操作数的类型也与SUB指令相同。8位或16位数运算均可。例如:

SBBBX,1000 SBBCX,DX SBBAL,DATA1[SI] SBBDISP[BP],BL SBBBYTEPTR[SI+6],97

带借位减指令主要用于多字节的减法。③减1指令DEC(DECrementby1)。指令格式及操作:

DECdst ;(dst)←(dst)−1DEC指令将目的操作数减1,结果送回目的操作数。指令对状态标志位SF、ZF、AF、PF和OF有影响,但不影响进位标志CF。操作数与INC一样,可以是寄存器或存储器(立即数和段寄存器不可)。其类型是字节操作或字操作均可。例如:DECBLDECCXDECBYTEPTR[BX]DECWORDPTR[BP][DI]

在循环程序中常常利用DEC指令来修改循环次数。例如:

MOVAX,0FFFFHCYC:DEC AX JNZCYC HLT

以上程序段中DECAX指令重复执行65535(0FFFFH)次。此程序实际上是一段延时程序。⑤比较指令CMP(CoMPare)。指令格式及操作:

CMPdst,src ;(dst)−(src)CMP指令将目的操作数减源操作数,但结果不送回目的操作数。因此,执行比较指令以后,被比较的两个操作数内容均保持不变,而比较结果反映在状态标志位上,这是比较指令与减法指令SUB的区别所在。CMP指令的目的操作数可以是寄存器或存储器,源操作数可以是立即数、寄存器或存储器,但不能同时为存储器。可以进行字节比较,也可以是字比较。例如:

CMPAL,0AH ;寄存器与立即数比较

CMPCX,DI ;寄存器与寄存器比较

CMPAX,AREA1 ;寄存器与存储器比较

CMP[BX+5],SI ;存储器与寄存器比较比较指令的执行结果将影响状态标志位。例如,若两个被比较的内容相等,则(ZF)=1。又如,假设被比较的两个无符号数中,前者小于后者(即不够减),则(CF)=1,等等。比较指令常常与条件转移指令结合起来使用,完成各种条件判断和相应的程序转移。

例3.5

在数据段从MYDATA开始的存储单元中分别存放了两个8位无符号数,试比较它们的大小,并将大者传送到MAX单元。程序如下:

LEA BX,MYDATA ;MYDATA偏移地址送BX MOV AL,[BX] ;第一个无符号数送AL INC BX ;BX指向第二个无符号数

CMP AL,[BX] ;两个数比较

JNC DONE ;如CF=0,则转DONE MOV AL,[BX] ;否则,第二个无符号数送ALDONE:MOVMAX,AL ;较大的无符号数送MAX单元

HLT ;停止3.位操作指令位操作指令是对8位或16位的寄存器或存储单元中的内容按位进行操作。这一类指令包括逻辑运算指令、移位指令和循环移位指令等三组。

1)逻辑运算指令

8086/8088指令系统的逻辑运算指令有AND(逻辑“与”)、TEST(测试)、OR(逻辑“或”)、XOR(逻辑“异或”)和NOT(逻辑“非”)五条指令,这些指令对操作数中的各个位分别进行布尔运算。各种逻辑运算的结果如表3.4所示。表4.4逻辑运算返回的值

XYXANDYXORYXXORYNOTX000110110001011101101100

以上五条逻辑运算指令中,惟有NOT指令对状态标志位不产生影响,其余四条指令(即AND、TEST、OR和XOR)对状态标志位均有影响。这些指令将根据各自逻辑运算的结果影响SF、ZF和PF状态标志位,同时将CF和OF置“0”,但使AF的值不确定。(1)逻辑“与”指令AND(logicalAND)。指令格式及操作:

ANDdst,src;(dst)←(dst)∧(src)AND指令将目的操作数和源操作数按位进行逻辑“与”运算,并将结果送回目的操作数。目的操作数可以是寄存器或存储器,源操作数可以是立即数、寄存器或存储器。但是指令的两个操作数不能同时是存储器,即不能将两个存储器的内容进行逻辑“与”操作。AND指令操作对象的类型可以是字节,也可以是字。例如:ANDAL,00001111H ;寄存器"与"立即数ANDCX,DI ;寄存器"与"寄存器ANDSI,MEM_NAME ;寄存器"与"存储器ANDALPHA[DI],AX ;存储器"与"寄存器

AND[BX][SI],0FFFEH ;存储器"与"立即数

AND指令可以用于屏蔽某些不关心的位,而保留另一些感兴趣的位。为了做到这一点,只需将屏蔽的位和“0”进行逻辑“与”,而将要求保留的位和“1”进行逻辑“与”即可。例如ANDAL,0FH指令将AL寄存器的高4位屏蔽,保留低4位。该指令可将数字0~9的ASCII码转换成相应的非压缩型BCD码。例如:MOVAL,'6' ;(AL)=00110110BANDAL,0FH ;(AL)=00000110B

利用ANDAL,11011111B指令可以将AL中的英文字母(用ASCII码表示)转换成为大写字母。如果字母原来已经是大写,则以上AND指令不起作用,因为大写字母ASCII码的第5位总是0;如果原来是小写字母,则将其第5位置“0”,转换成为相应的大写字母。大写和小写英文字母ASCII码的对比如表3.5所示。表3.5大写和小写英文字母ASCII码的对比

大写字母小写字母'A'=41H=01000001B'B'=42H=01000010B…

'Z'=5AH=01011010B'a'=61H=01100001B'b'=62H=01100010B…

'z'=7AH=01111010B(2)测试指令TEST(TESTornon-destructivelogicalAND)。指令格式及操作:

TESTdst,src ;(dst)∧(src)TEST指令的操作实质上与AND指令相同,即把目的操作数和源操作数进行逻辑“与”运算。二者的区别在于TEST指令不把逻辑运算的结果送回目的操作数,只将结果反映在状态标志位上。例如,“与”的结果最高位是“0”还是“1”,结果是否为全“0”,结果中“1”的个数是奇数还是偶数等,分别由SF、ZF和PF状态标志位体现。和AND指令一样,TEST指令总是将CF和OF清零,但使AF的值不确定。TEST指令的例子如下:TESTBH,7 ;寄存器''与''立即数(结果不回送,下同)TESTSI,BP ;寄存器''与''寄存器TEST[SI],CH ;存储器''与''寄存器TEST[BX][DI],BYTEPTR6AH ;存储器''与''立即数IN AL,PORT ;从端口PORT输入数据TEST AL,00101010B ;测试第1、3、5位JNZ NEXT ;任一位不为0,则转移到NEXTNEXT:…TEST指令常常用于位测试,它与条件转移指令一起,共同完成对特定位状态的判断,并实现相应的程序转移。这样的作用与比较指令CMP有些类似,不过TEST指令只比较某一个指定的位,而CMP指令比较整个操作数(字节或字)。例如以下几条指令判断一个端口地址为PORT的外设端口输入的数据,若输入数据的第1、3、5位中的任一位不等于零,则转移到NEXT。(3)逻辑“或”指令OR(logicalinclusiveOR)。指令格式及操作:

ORdst,src ;(dst)←(dst)∨(src)OR指令将目的操作数和源操作数按位进行逻辑“或”运算,并将结果送回目的操作数。

OR指令操作数的类型与AND相同,即目的操作数可以是寄存器或存储器,源操作数可以是立即数、寄存器或存储器。但两个操作数不能同时都是存储器。例如:OR BL,0F6H ;寄存器''或''立即数OR AX,BX ;寄存器''或''寄存器OR CL,BETA[BX][DI] ;寄存器''或''存储器OR GAMMA[SI],DX ;存储器''或''寄存器OR MEM_BYTE,80H ;存储器''或''立即数OR指令的一个常见的用途是将寄存器或存储器中某些特定的位设置成“1”,而不管这些位原来的状态如何,同时使其余位保持原来的状态不变。为此,应将需置“1”的位和“1”进行逻辑“或”,而将要求保持不变的位和“0”进行逻辑“或”。例如,以下指令可将AH寄存器及AL寄存器的最高位同时置“1”,而AX中的其余位保持不变:ORAX,8080H ;(AX)∨(1000000010000000B)AND指令和OR指令有一个共同的特性:如果将一个寄存器的内容和该寄存器本身进行逻辑“与”操作或者逻辑“或”操作,则寄存器原来的内容不会改变,但寄存器中的内容将影响SF、ZF和PF状态标志位,且将OF和CF清零。

利用这个特性,可以在数据传送指令之后,使该数据影响标志位,然后可以判断数据的正负。又如,以下几条指令判断数据是否为零:MOVAX,DATA ;(AX)←DATAORAX,AX ;影响标志(用ANDAX,AX指令亦可)JZ ZERO ;如为零,转移到ZERO… ;否则,…ZERO:…

上述程序中如果不使用ORAX,AX(或ANDAX,AX)指令,则不能紧跟着进行条件判断和程序转移,因为MOV指令不影响标志位。当然采用CMPAX,0指令代替上述AND或OR指令也可以得到同样的效果,但比较指令字节较多,执行速度较慢。(4)逻辑“异或”指令XOR(logicaleXclusiveOR)。指令格式及操作:

XOR dst,src ;(dst)←(dst)

(src)XOR指令将目的操作数和源操作数按位进行逻辑“异或”运算,并将结果送回目的操作数。XOR指令操作数的类型和AND、OR指令均相同,此处不再赘述,请看下面的例子:XORDI,23F6H ;寄存器‘’异或‘’立即数XORSI,DX ;寄存器''异或''寄存器XORCL,BUFFER ;寄存器''异或''存储器XORMEM[BX],AX ;存储器''异或''寄存器

XORTABLE[BP][SI],3DH ;存储器''异或''立即数XOR指令的一个用途是将寄存器或存储器中某些特定的位“求反”,而使其余位保持不变。为此,可将欲“求反”的位和“1”进行“异或”,而将要求保持不变的位和“0”进行“异或”。例如,若要使AL寄存器中的第1、3、5、7位求反,第0、2、4、6位保持不变,则只需将AL和10101010B(即0AAH)“异或”即可。MOVAL,0FH ;(AL)=00001111BXOR AL,0AAH ;(AL)=10100101B(0A5H)XOR指令的另一个用途是将寄存器的内容清零,例如:

XORAX,AX ;AX清零

XORCX,CX ;CX清零

例3.7

从偏移地址TABLE开始的内存区中,存放着100个字节型数据,要求将这些数进行累加,并将累加和的低位存SUM单元,高位存SUM+1单元。程序如下:

LEA BX,TABLE ;(BX)←数据表地址指针

MOVCL,100 ;(CL)←数据块长度

XOR AX,AX ;清AL、AH,并清进位CFLOOPER: ADD AL,[BX] ;加一个数到AL JNC GOON ;如(CF)=0,转移到GOON INC AH ;否则,AH加1GOON:INC BX ;地址指针加1 DEC CL ;计数值减1 JNZ LOOPER ;如(CL)≠0,转移到LOOPER MOV SUM,AX ;否则,(SUM)←(AL),(SUM+1)←(AH) HLT ;停止(1)I/O接口概述一、I/O接口的作用

主机与外界交换信息称为输入/输出(I/O)。主机与外界的信息交换是通过输入/输出设备进行的。一般的输入/输出设备都是机械或机电相结合的产物,比如常规的外设有键盘、显示器、打印机、扫描仪、磁盘机、鼠标器等,它们相对于高速的中央处理器来说,速度要慢得多。此外,不同外设的信号形式、数据格式也各不相同。因此,外部设备不能与CPU直接相连,需要通过相应的电路来完成它们之间的速度匹配、信号转换,并完成某些控制功能。通常把介于主机和外设之间的一种缓冲电路称为I/O接口电路,简称I/O接口图4.1主机与外设的连接

如图所示,对于主机,I/O接口提供了外部设备的工作状态及数据;对于外部设备,I/O接口记忆了主机送给外设的一切命令和数据,从而使主机与外设之间协调一致的工作

对于微型计算机来说,设计微处理器CPU时,并不设计它与外设之间的接口部分,而是将输入/输出设备的接口电路设计成相对独立的部件,通过它们将各种类型的外设与CPU连接起来,从而构成完整的微型计算机硬件系统。因此,一台微型计算机的输入/输出系统应该包括I/O接口、I/O设备及相关的控制软件。一个微机系统的综合处理能力,系统的可靠性、兼容性、性价比,甚至在某个场合能否使用都和I/O系统有着密切的关系。输入/输出系统是计算机系统的重要组成部分之一,任何一台高性能计算机,如果没有高质量的输入/输出系统与之配合工作,计算机的高性能便无法发挥出来。二、CPU与外设交换的信息主机与I/O设备之间交换的信息可分为数据信息、状态信息和控制信息三类。

1.数据信息数据信息又分为数字量、模拟量和开关量三种形式。

1)数字量数字量是计算机可以直接发送、接收和处理的数据。例如,由键盘、显示器、打印机及磁盘等I/O外设与CPU交换的信息,它们是以二进制形式表示的数或以ASCII码表示的数符。2)模拟量当计算机应用于控制系统中时,输入的信息一般为来自现场的连续变化的物理量,如温度、压力、流量、位移、湿度等,这些物理量通过传感器并经放大处理得到模拟电压或电流,这些模拟量必须先经过模拟量向数字量的转换(A/D转换)后才能输入计算机。反过来,计算机输出的控制信号都是数字量,也必须先经过数字量向模拟量的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论