微型计算机应用.ppt

上传人:春哥&#****71; 文档编号:14903722 上传时间:2022-05-09 格式:PPT 页数:823 大小:7.61MB
返回 下载 相关 举报
微型计算机应用.ppt_第1页
第1页 / 共823页
微型计算机应用.ppt_第2页
第2页 / 共823页
点击查看更多>>
资源描述

《微型计算机应用.ppt》由会员分享,可在线阅读,更多相关《微型计算机应用.ppt(823页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、本章内容提要本章内容提要: :l微型计算机系统的基本术语微型计算机系统的基本术语l微型计算机系统的发展与分类微型计算机系统的发展与分类l微型计算机的系统组成微型计算机的系统组成1.1微型计算机系统的基本术语微型计算机系统的基本术语 微处理器MPU(microprocessor)也常称为微处理机,它并不是微型计算机,它是微型计算机的核心部件。微处理器包括算术逻辑部件ALU(arithmetic logic unit)、控制部件CU(control unit)和寄存器组R(registers)3个基本部分和内部总线。 微型计算机MC(micro computer)是以微处理器为核心,由大规模集成电

2、路制作的存储器M、I/O(输入输出)接口和系统总线组成。 微型计算机系统(micro computer system)是以微型计算机为核心,再配以相应的外围设备、电源、辅助电路和控制微型计算机工作的软件而构成的完整的计算系统。 接口(interface)是微处理器与I/O的连接电路,是CPU与外界进行信息交换的中转站。1.2 微型计算机系统的发展与分类微型计算机系统的发展与分类 年代年代 CPU(中央处理器中央处理器)微型计算机的发展微型计算机的发展 (1)多板机多板机:微型计算机各组成部分装配在多个印刷电微型计算机各组成部分装配在多个印刷电 路板上的微型计算机路板上的微型计算机 应用:如应用

3、:如PC 机(台式、便携式、手持式)机(台式、便携式、手持式) (2)个人微机个人微机(PC机机):微型计算机各组成部分装配在一个微型计算机各组成部分装配在一个印刷电路板上的微型计算机印刷电路板上的微型计算机 应用:用于教学、实验等应用:用于教学、实验等 (3)单片机单片机:微型计算机的各组成部分集成在一个超大规微型计算机的各组成部分集成在一个超大规模芯片上,称之为单片微型计算机,简称单片机。模芯片上,称之为单片微型计算机,简称单片机。 应用:广泛用于测控系统、仪器仪表、工业控制、通信设应用:广泛用于测控系统、仪器仪表、工业控制、通信设备、家用电器等。因单片机广泛用于嵌入式系统,亦被称备、家用

4、电器等。因单片机广泛用于嵌入式系统,亦被称为微控制器(为微控制器(microcontroller)。)。 (4)位片机位片机:微型计算机的各组成部分以微型计算机的各组成部分以MC=MPU(ALU+R+CU)+M+I/O接口的形式,配套积木式组接口的形式,配套积木式组装,字长、指令系统灵活、可变、易扩展。装,字长、指令系统灵活、可变、易扩展。 应用:广泛用于高速实时专用系统,如自控系统、武应用:广泛用于高速实时专用系统,如自控系统、武器系统、语音系统、高速外设等。位片机用多个位片器系统、语音系统、高速外设等。位片机用多个位片组成任意字长的处理器。组成任意字长的处理器。 (1)普林斯顿机普林斯顿机

5、:程序和数据存于同一内存系统中,如通程序和数据存于同一内存系统中,如通用微型计算机。用微型计算机。 (2)哈佛机哈佛机:程序和数据分存于严格区分的两个内存系统程序和数据分存于严格区分的两个内存系统中,如单片机,中,如单片机,DSP等。等。 (1)个人计算机(个人计算机(PC):通用微型机,体积小、价格低):通用微型机,体积小、价格低廉,主要为每次一人使用,用户界面廉,主要为每次一人使用,用户界面“友好友好”。又可分为。又可分为台式、便携式、手持式。台式、便携式、手持式。 (2)工作站(工作站(workstation):这里的工作站是指,具有):这里的工作站是指,具有完整的人机交互界面,集高性能

6、的计算和图形于一身,可完整的人机交互界面,集高性能的计算和图形于一身,可配置大容量的内存和硬盘,配置大容量的内存和硬盘,I/O和网络功能完善,使用多和网络功能完善,使用多任务、多用户操作系统的小型通用个人化的计算机系统。任务、多用户操作系统的小型通用个人化的计算机系统。 1.3 微型计算机的系统组成微型计算机的系统组成微型计算机系统是由硬件和软件两部分组成(1)主机 微处理器(CPU)。微处理器包括运算器、控制器和寄存器几个部分。运算器可以完成算术运算和逻辑运算。控制器由指令寄存器、指令译码器和一些时序控制电路组成。控制器根据指令的要求,对CPU内部和外部发出相应的控制信息,使微型机各部件协调

7、地工作,完成指令要求的操作。CPU内部的寄存器用于存放运算过程中的数据。 存储器(memory)。存储器是微机的存储和记忆部件,用以存放程序代码和运算需要的数据。内存通常使用半导体存储器。 输入/输出接口(I/O interface)。CPU要与很多外部设备进行数据传送,必须通过输入/输出接口,所以输入/输出接口是CPU与外设之间的桥梁,这个接口也叫I/O适配器。(2)外部设备 外部设备主要指输入设备和输出设备。常用的输入设备有键盘、鼠标、扫描仪、模数转换器;常用的输出设备有:显示器、打印机、绘图仪、数模转换器。磁盘、磁带既是输入设备,又是输出设备,而多数光盘是只读的,只能做输入设备。(3)总

8、线 微型计算机主要是由微处理器、存储器、I/O接口和I/O设备所组成的,这些部件使用系统总线连接起来。系统总线就是一组传送信息的公共导线,分为3组,即地址总线AB(address bus)、数据总线DB(data bus)、控制总线CB(control bus)。AB传送CPU发出的地址信息,是单向总线。DB在CPU与内存(I/O接口)之间传送数据,是双向总线。而控制总线CB是每一根起一种固定的作用。微型计算机的结构 微型计算机的软件是为完成运行、管理和测试维护等功能而编制的各种程序的总和。计算机软件分为系统软件和应用软件。系统软件包括操作系统(如DOS及Windows、UNIX、Linux等

9、)和系统应用。系统应用包括各种语言的汇编、编译程序、自诊断程序、文字处理程序、各种工具软件、数据库管理程序等。应用软件包括用户为解决各种工程实际应用而编写的程序,例如数控机床的插补程序、控制系统的控制程序等。1. IBM PC/XT的配置 以8088为CPU的PC/XT机由主机和外部设备组成,主机采用大底板结构,放置在机箱底部。(1)系统板 系统板也叫主板,分为5大部分。CPU及其外围配套芯片、ROM、RAM、I/O接口、I/O扩展槽。(2) ROM PC/XT机只读存储器ROM的容量为64KB,其中有32KB固化了BASIC解释程序,8KB的基本输入/输出系统BIOS。BIOS是一组管理程序

10、,它包括加电自检程序、DOS引导程序、日历钟管理程序、基本外设如键盘、CRT显示器、打印机等驱动程序等。(3) RAM 原装PC机的随机存储器芯片共4列,每列9片,共36片,组成带奇偶校验的64KB内存。而后期的兼容机,由于存储器集成度的大大提高,系统板上内存容量为640KB。586机型,内存的配置高达32128MB,采用内存条。(4) I/O接口电路及总线部分 系统板上还有音频盒式磁带机、键盘接口、扬声器接口电路,磁带机接口已经很少使用。IBM PC/XT的主机板上有8个扩展槽,用于插入不同功能的插件板,以连接各种外设,如外设适配器。 IBM PC/XT为62芯总线。它与I/O槽的62线相连

11、,62芯总线包括8位数据线(双向),20位地址线,IRQ2IRQ7中断请求线,3位DMA控制线,4位电源线,3位地线以及存储器和外设读写线,时钟信号线等。2. IBM-PC/XT和外设的连接 配置一个基本系统,一般还需要一个I/O插槽放置多功能卡,它有软盘驱动适配器和硬盘驱动适配器、打印机适配器、串口等,还有一个扩展槽插入彩色显示适配器,还可用扩展槽插入其他外设接口。IBM PC/XT和外设的连接如图所示。本章内容提要本章内容提要: :l微型计算机的组成及工作原理微型计算机的组成及工作原理l8086微处理器的功能结构微处理器的功能结构l8086/8088寄存器结构寄存器结构l8086存储器存储

12、器l8086的引脚信号和工作模式的引脚信号和工作模式l微处理器总线时序微处理器总线时序l80 x86系列微处理器系列微处理器 2.1 微型计算机的组成及工作原理微型计算机的组成及工作原理 到目前为止,大多数微型计算机的结构归属于冯诺依曼结构,主要包括运算器、控制器、存储器、I/O设备及其接口电路,如图2.1所示。运算器和控制器合称为中央处理器CPU。 微处理器简称CPU,是用来实现运算和控制功能的部件,是整个微型计算机的核心,由运算器、控制器和寄存器组3部分组成。CPU一般具有以下基本功能:1) 指明将要执行指令所在存储单元的地址,取出指令并进行译码。2) 执行算术运算和逻辑运算,暂存少量数据

13、。3) 传送数据,包括在CPU内部传送数据以及与外界交换数据。4) 对各部件进行控制,包括对CPU内部的控制和对CPU以外部件的控制。5) 响应其他部件发出的中断请求和总线请求等。 微型计算机系统采用总线结构,将5大部件连接起来。各部件之间传送信息的公共通道,称为总线(BUS)。 在总线上流动的信息大致可分为两类: 一类是数据和程序,数据包括程序运行所需的原始数据和程序运行的结果以及这些数据的地址信息; 另一类是控制器向各部件发出的控制命令以及各部件发给控制器的状态信息。 微机系统利用3组总线,即数据总线DB、地址总线AB和控制总线CB分别传送指令及指令执行过程中相关的数据、地址信息和控制信息

14、。(1)数据总线 数据总线是在CPU、存储器或I/O端口等部件之间传递数据的通道,每次传送一个“计算机字长”,其宽度(根数)通常与计算机的字长一致。数据总线的传输是双向的。(2)地址总线 地址总线是寻找、传送存储单元或I/O端口的地址信息的总线。地址总线是由CPU输出给存储器或I/O端口。地址总线数决定了CPU当前可直接寻址空间的大小。(3)控制总线 CPU控制器发往各部件的控制信号线以及各部件发给CPU的状态信号线构成了“控制总线”,控制线总体上是“双向”的,但就控制总线中某一根来说,在一种确定状态下,只能表示一种信息,其传输是单向的。 存储器是指微型计算机的内存储器(人们常说内存条),它通

15、常由CPU之外的半导体存储器芯片组成,用来存放程序、原始操作数,中间结果和最终结果数据。 输入/输出设备统称为外部设备(简称外设),是微型计算机的重要组成部分。与微型计算机相连接的各种设备统称外部设备。例如,键盘、打印机、显示器、磁带机、磁盘等。另外,在微型计算机的工程应用中,所使用的各种开关、继电器、步进电机、A/D及D/A变换器等均可看作微型计算机的外部设备。 2.2 8086微处理器的功能结构微处理器的功能结构 8086是Intel系列的16位微处理器,是80 x86系列微机发展的基础。它所具有的主要特性如下:1)制造工艺:采用具有高速运算性能的HMOS工艺制成。2)芯片集成度:芯片上集

16、成有29万个晶体管,用单一的+5V电源和40条引脚的双列直插式封装。3)时钟频率:510MHz,最快的指令执行时间0.4s。4)字长:16位8088为准16位。5)总线使用方式:数据、地址总线分时复用。6)内存容量:20位地址可寻址1MB。7)端口地址:16位I/O地址可寻址64KB个端口。8)中断功能:可处理内部软件中断和外部硬件中断,中断源可多达25个。相同点:1.微处理器内部采用16位结构2.内部的两个功能部件EU一样区别: 1.8086的指令队列是6字节长,而8088的指令为4字长;2.8086是真正的16位机,同BIU相连的8086总线中数据总线是16位总线,而8088是准16位机,

17、同BIU相连的8088总线中数据总线为8位总线。 2.3 8086/8088寄存器结构寄存器结构在8086微处理器中可供程序员使用的有14个16位寄存器,如图2.5所示。一般而言,14个寄存器按其用途可分为通用寄存器、指令指针、标志寄存器和段寄存器4类。一、数据寄存器 数据寄存器包括4个16位的寄存器AX、BX、CX和DX,主要用来存放16位的数据或地址。同时每个数据寄存器又可分成两个8位寄存器,即AH、AL、BH、BL、CH、CL、DH和DL,用来存放8位数据。 数据寄存器用于存放指令操作数。在一些指令中,某些寄存器具有特定的用途:如AX作累加器;BX作基址寄存器;CX在串操作指令中用作计数

18、器;DX在字乘法、除法指令中存放乘积高位或被除数高位或余数,在某些I/O操作期间用来保存I/O端口地址等。二、指针寄存器和变址寄存器 指针寄存器和变址寄存器是4个16位寄存器。堆栈指针SP(stack point)和基址指针BP(basic point)称为指针寄存器,用来指示当前堆栈段中的数据所在的偏移地址。源变址寄存器SI(source index)和目的变址寄存器DI(destination index)称为变址寄存器,用来表示当前数据段中操作数的索引地址(偏移地址的一部分)。 IP(instruction pointer)指令指针是一个16位寄存器,用来存放将要执行的下一条指令在当前代

19、码段中的偏移地址。在程序运行过程中,BIU可修改IP中的内容,IP总是指向下一条待取的指令。IP和CS一起指定下一条指令的物理地址,物理地址=CS16+IP。 8086/8088 CPU中设置了一个16位标志寄存器FLAG,用来存放运算结果的特征和控制标志,具体格式见书图所示。16位标志寄存器FLAG中只用其中9位作标志位,其余位为无效位。9个标志位可分成两类:一类叫状态标志位,用来表示算术逻辑运算结果的特征,包括CF、PF、AF、ZF、SF和OF;另一类叫控制标志位,用来控制CPU的操作,由程序设置或清除,它们是IF、DF和TF。 在8086/8088系统中采用分段技术把1MB的存储空间分成

20、若干个逻辑段,每段最长为64KB,这些逻辑段可以在整个存储空间中定位,用段寄存器给定各个逻辑段的首地址的高16位,这个地址被称作段基址。1.代码段寄存器CS用来存放当前程序所在的代码段的段基址, 代码段中通常存放可执行的指令代码。2.数据段寄存器DS用来存放程序当前使用的数据段的段基址。3.附加段寄存器ES用来存放程序当前使用的附加段的段基址,数据段和附加段通常存放参加运算的操作数或运算结果。4.堆栈段SS则用来存放当前使用的堆栈段的段基址,一些临时性的数据被保存在堆栈中。 2.4 8086存储器存储器 8086微处理器地址线为20根,可以寻址1MB的内部存储器,地址编号为00000HFFFF

21、FH。我们约定存储空间以8b为单位进行组织,每个存储单元存储一个字节数据。如果存放一个“字”数据(16b),则存放在相邻的两个存储单元中,并且高字节存放在高地址单元、低字节存放在低地址单元,双字单元的存放方式与字单元类似,它被存放在相邻的4个字节中。一、分段结构 8086程序将1MB的存储空间看成为一组连续的存储段,各段的功能由具体用途而定,分别为代码段、数据段、堆栈段和附加段。二、物理地址的形成1)当取指令时,8086会自动选择CS值作为段基址,再加上由IP提供的偏移量形成物理地址。2)当涉及堆栈操作时,8086会自动选择SS值作为段基址,再加上由SP提供的偏移量形成物理地址。3)当涉及一个

22、操作数(存储器操作数)时,8086会自动选择DS值为段基值(若以BP为基地址,则SS为段基值),再加上16位偏移量形成物理地址,这16位偏移量可以来自:指令中提供的直接地址16位的位移量;某一个16位地址寄存器的值;指令中的位移量加上16位地址寄存器的值。 2.5 8086的引脚信号和工作模式的引脚信号和工作模式 为了取得指令和传送数据,就需要CPU的总线接口部件执行一个总线周期。在8086/8088中,一个最基本的总线周期由4个时钟周期组成,时钟周期是CPU的基本时间计量单位,它由计算机主频决定。1)在T1状态,CPU往多路复用总线上发出地址信息,以指出要寻址的存储单元或外设端口的地址。2)

23、在T2状态,CPU从总线上撤销地址,而使总线的低16位浮置成高阻状态,为传输数据作准备。3)在T3状态,多路总线的高4位继续提供状态信息,而多路总线的低16位,(8088则为低8位)上出现由CPU写出的数据或者CPU从存储器或端口读入数据。4)在T4状态,总线周期结束。1.8086的中断分类 8086/8088有一个强有力的中断系统,可以处理256种不同的中断,每个中断对应一个类型码,所以,256种中断对应的中断类型码为0255。 从产生中断的方法来分,这256种中断可以分为两大类:一类叫硬件中断;一类叫软件中断。硬件中断是通过外部的硬件产生的,所以,也常常把硬件中断称为外部中断。硬件中断又可

24、以分为两类:一类叫非屏蔽中断;另一类叫可屏蔽中断。软件中断是CPU根据软件中的某条指令或者软件对标志寄存器中某个标志的设置而产生的,从软件中断的产生过程来说,完全和硬件电路无关。2.向量表位置和结构 8086/8088的中断系统是以位于内存0段的03FFH区域的中断向量表为基础的,中断向量表中最多可以容纳256个中断向量。所谓中断向量,实际上就是中断处理子程序的入口地址,每个中断类型对应一个中断向量。3.向量构成 中断向量并不是任意存放的。一个中断向量占4个存储单元,其中前两个单元存放中断处理子程序入口地址的偏移量(IP),低位在前,高位在后,后两个单元存放中断处理子程序入口地址的段地址(CS

25、),同样也是低位在前,高位在后。按照中断类型的序号,对应的中断向量在内存的0段0单元开始有规则的进行排列。4.中断类型码和中断向量所在位置之间的分布关系 8086/8088 CPU采用标准DIP40线封装,根据它的基本性能至少包含16/8条数据线,20条地址线,再加上其他一些必要的控制信号,这样芯片引脚数量太多,因此对部分引脚采用分时复用方式,构成40条引脚的双列直插式封装. 8086 CPU构成的微机系统,有最小模式和最大模式两种系统配置。1.最小模式 当MN/MX接电源电压时,系统工作于最小模式,即单处理器系统方式。所有控制信号均由CPU直接提供。 8086最小模式系统中,还允许接入其他要

26、求共享总线的设备。例如DMA控制器8237A5等芯片,此时通过HOLD和HLDA进行总线请求与响应。当CPU让出总线使用权后,系统在DMA控制器8237A5的控制下,为外设与存储器之间提供直接传送数据通道,直到DMA控制器操作结束。2.最大模式 当MN/MX接地,系统就工作于最大模式。最大模式与最小模式系统的主要区别是系统中增设了一个总线控制器8288和一个总线仲裁器8289,这样可构成以8086/8088 CPU为中心的,还包含其他微处理器(如8087数值协处理器和8089 I/O处理器)的微机系统。 2.6微处理器总线时序微处理器总线时序1.8086 CPU读总线周期 最小模式下8086

27、CPU的读总线周期时序如图所示。T1开始时,BIU将被访问存储器或I/O端口的物理地址A19/S6A16/S3及AD15AD0连同总线高位有效信号BHE一起送至总线上,在地址锁存器允许信号ALE的控制下,可将地址锁存到8282/8283地址锁存器中,然后输出到地址总线上,由M/IO信号确定读存储器(M/IO=1)还是读I/O端口(M/IO=0)。2.8086 CPU写总线周期 最大模式系统和最小模式系统在总线操作逻辑上基本一致。只是由于增设了总线控制器8288,一些控制信号不再由CPU直接给出,而是由8288对CPU的三位状态信号S2、S1、S0进行译码,再输出对存储器或I/O端口的控制命令,

28、完成读/写操作。本章内容提要本章内容提要: :l指令格式及寻址方式指令格式及寻址方式l8086/8088指令系统指令系统l汇编语言程序格式汇编语言程序格式l汇编语言程序设计汇编语言程序设计 3.1指令格式及寻址方式指令格式及寻址方式 要求计算机执行的各种操作以命令形式写下来,就称为指令。通常一条指令对应着一些基本操作,例如加、减、传送和移位等。机器语言指令以二进制代码组成。一条指令是由操作码与操作数字段构成,其一般格式为 操作码字段+操作数字段其中,操作码字段指明计算机所要执行的操作(即功能);操作数字段指出在指令执行过程中所需要的操作数。例如: ADD AX, BX 对有操作数的指令,在执行

29、指令所规定的操作之前首先要寻找操作数。指令中的操作数字段实质上是指出参加操作运算的操作数存放在何处。一般来说,操作数存放在指令代码中,称为立即数;操作数存放在CPU寄存器中,称为寄存器操作数;操作数存放在内存单元中,称为存储器操作数; 操作数也可存放在I/O端口内。寻找这些操作数的方式称为寻址方式,即指令中用于说明操作数或操作数所在地址的方法。 当操作数存放在存储器中时,存储器的存储单元的物理地址分成两部分,一部分是偏移地址;一部分是段地址。在8086/8088的各种寻址方式中,寻找存储单元所需的偏移地址可由各种成分组成,称为有效地址,用EA表示。不同的寻址方式,组成有效地址EA的各部分内容也

30、不一样。 存储单元的物理地址的另一部分是段地址,8086/8088指令系统中对段地址有个基本规定,即所谓Default(默认)状态。在正常情况下,由寻址方式中有效地址规定的基地址寄存器来确定段寄存器,即只有在寻址方式中出现了BP寄存器作为基地址,段寄存器一定采用堆栈段SS段寄存器,其余情况都采用数据段DS段寄存器。 指令中的操作数也可以不在基本规定的段区中,但必须在指令中指定段寄存器,这就是段超越。例如: MOV AX , 2000H则存储单元的物理地址为16DS+2000H,数据是存放在数据段中。而 MOV AX , ES : 2000H则存储单元的物理地址为16ES+2000H,此指令的源

31、数据在附加段中。1.立即寻址方式(immediate addressing)特点:操作数直接存放在指令中,作为指令的一部分存放在代码段中,这种操作数称为立即寻址。一般常用于给寄存器或存储单元赋初值(即初始化),立即数只能用于源操作数字段,不能用于目的操作数字段。【例3.1】MOV AL,20;(A) 20MOV AX,1234H ;(AX) 1234HMOV 250H,AX ;(错误的,立即数不能作目的操作数)20和1234H为立即数,立即数可以是二进制、十进制、十六进制。【例3.2】MOV AL, BUFFER在汇编语言中,可以用符号BUFFER代替常数,但是BUFFER必须用伪指令EQU来

32、赋值.2.寄存器寻址方式(register addressing)特点:操作数在某寄存器中,存取这类操作数在CPU内部进行,所以执行速度快。存放16位操作数的寄存器有:AX,BX,CX,DX,BP,SP,SI,DI;存放8位操作数的寄存器有: AH,AL,BH,BL,CH,CL,DH,DL。由于操作数在寄存器中,这种寻址方式不需要访问存储器来取得操作数,因而可以取得较高的运算速度。【例3.3】 已知(BX)=1234H。 MOV AX,BX ;(AX)(BX) 执行后(AX)=1234H,(BX)不变。3.存储器操作数寻址 操作数在存储器中。存储器是分段管理的,要找到操作数,必须指明操作数所在

33、的段(段基址由段寄存器指明)及段内偏移地址(以有效地址EA的形成方式指出)。(1)直接寻址方式(direct addressing) 特点:指令中直接给出操作数在段内的偏移量,段基址隐含给出或用段前缀指明。该寻址方式适用于处理单个变量。一般操作数存放在数据段,故操作数的物理地址为物理地址=(DS) 16D+ EA =(段基址的寄存器) 16 + 偏移地址【例3.4】已知(DS)=4000H,42000H=3355H。 MOV AX,2000H执行后:(AX)=3355H。物理地址=40000H+2000H=42000H,EA=2000H。说明:1) 有效地址(EA)在指令中直接给出。指令中默认

34、段寄存器说明,段基址在DS段寄存器中;否则在指令中需对段寄存器加以说明。例如: MOV AX,ES:2500H2) 可用符号地址代替数值地址,例如: MOV AX,VALUE此时,VALUE 为存放操作数单元的符号地址,即变量名,也可写成 MOV AX,VALUE;两者等价。(2) 寄存器间接寻址方式(register indirect addressing)特点:操作数有效地址在基址寄存器BX、BP、SI、DI中,而操作数则在存储器中。它适用于表格处理,执行完一条指令后,只需修改寄存器内容就可取出表格中的下一项元素。说明:1) 指令中的有效地址EA存放在BX、SI、DI寄存器中,则操作数在数

35、据段中,即操作数的物理地址为 物理地址=16D(DS)+ (BX)(SI)(DI)2) 若有效地址存放在BP寄存器,则操作数在堆栈段中,即操作数物理地址为 物理地址=(SS)16D+(BP)3) 可使用段跨越前缀来取得其他段中的数据,例如: MOV AX,ES:BX 注意: MOV AX,BX; (AX) (BX)与上面的 MOV AX,BX含义不同。例3.5】已知(DS)=1000H,(BX)=0A00H, (10A00H)=33H,(10A01H)=44H。 MOV AX,BX 物理地址=10000H+0A00H=10A00H。 执行后:(AX)=4433H。(3)寄存器相对寻址方式(re

36、gister relative addressing)特点:操作数的有效地址是一个基址寄存器或变址寄存器的内容和指令中指定的8位或16位位移量(即偏移量)之和。适用于表格处理,修改基址或变址寄存器的内容来取得表格中的元素。一般形式为 物理地址=16D(DS)+ +8位位移量或16位位移量 (注:以BX、SI、DI作为基址) 物理地址=(SS)16D+(BP)+8位位移量或16位位移量(注:以BP作为基址)(BX)(SI)(DI)【例3.6】已知(DS)=2000H,(SI)=50H,其中DISP为16位位移量的符 号地址,其值DISP=1000H,(21050H)=88H,(21051H)=6

37、6H。 MOV AX,DISPSI 或 NOV AX,DISP+SI 物理地址=20000+1000H+50H=21050H。 执行后:(AX)=6688H。 该寻址方式可使用段跨越前缀,例如: MOV DL,ES:STRINGSI(4) 基址变址寻址方式(based indexed addressing)特点:操作数的有效地址是一个基址寄存器与一个变址寄存器内容之和。物理地址=(DS)16D+(BX)+物理地址=(SS)16D+(BP)+ 例3.7】已知(DS)=3000H,(BX)=1100H,(SI)=0050H,(31150H)=78H,(31151H)=56H。MOV AX,BXSI

38、或MOV AX,BX+SI物理地址=30000H+1100H+0050H=31150H。执行后:(AX)=5678H。 (SI)(DI) (SI)(DI)(5)相对基址变址寻址方式(relative based indexed addressing) 特点:操作数有效地址是一个基址寄存器与一个变址寄存器的内容之和再加上8位或16位位移量。同样,当基址寄存器为BX时,使用DS为段寄存器;而当基址寄存器为BP时,则使用SS为段寄存器。因此,物理地址为物理地址=(DS)16D+(BX)+物理地址=(SS)16D+(BP)+ (BI)(DI)+ 8位16位位移量 (BI)(DI)+ 8位16位位移量【

39、例3.8】已知(DS)=5000H,(BX)=3000H,(SI)=2000H,BUFF=0350H,(55350H)=88H,(55351H)=66H。MOV AX,BUFFSIBX或MOV AX,BUFFBXSI或MOV AX,BUFF+SI+BX这条指令的3种写法是一样的,汇编程序都能识别。物理地址=50000H+3000+2000+0350=55350H。执行后:(AX)=6688H。该寻址方式为堆栈和多重表格处理提供了方便,无段跨越前缀。一般BP可指向栈顶,从栈顶到数组的首地址可用偏移量表示,变址寄存器可以用来访问数组中的某个元素。 这种寻址方式用来确定转移指令或CALL指令的转移地

40、址。转移地址是由各种寻址方式得到的有效地址(即偏移地址)和段地址相加而成。有效地址存入IP寄存器中,段地址指定为CS段寄存器内容。 1.段内直接寻址(intrasegment direct addressing) 转移的有效地址是当前IP寄存器的内容和指令中指定的8位或16位位移量之和。如图所示.【例3.9】当偏移量为8位时,称为短转移,例如: JMP SHORT NEXT其中,NEXT表示转移的符号地址;操作符SHORT表示偏移量是个8 位的带符号数,数值范围为80H7FH,即-128+127。【例3.10】当偏移量为16位时,则在符号地址前加操作运算符NEAR PTR,例如: JMP NE

41、AR PTR PROGA其中,PROGA表示转移的符号地址;操作符NEAR PTR表示偏移量是16位带符号数,数值范围为8000H7FFFH,即-32768+32767。2.段内间接寻址(intrasegment indirect addressing) 转移地址的有效地址是一个寄存器的内容或存储单元的内容。存储单元内容可以用与数据有关的寻址方式中寻找存储器操作数的任何一种寻址方式取得。所取得的有效地址替代IP寄存器的内容,达到转移的目的。这种寻址方式的示意图如图所示。【例3.11】 JMP BX 转移地址的有效地址为:EA=BX指令执行前,BX=2010H,IP=2050H。指令执行后,BX

42、=2010H, IP=2010H,程序转移到偏移量2010H处继续执行。例3.12】JMP WORD PTR TABLEBX或JMP TABLEBX这条指令的两种写法都是允许的。其中WORD PTR为操作符,用来指出其后的寻址方式所取得的转移地址的有效地址是一个字地址,也就是用寄存器相对寻址的两个相继单元的内容。指令执行前,计算机各寄存器的内容为:DS=2000H,BX=2150H,TABLE=2060H,IP=2100H。操作数存储单元的物理地址16DS+TABLE+BX=20000+2060+2150=241B0H。执行前,IP=2100H,(241B0H)=50H,(241B1H)=30

43、H。执行后,IP=3050H。从此例看出,转移地址存放在数据段的相继两个存储单元中,而存储单元的有效地址是TABLE和BX寄存器的内容相加而成。注意,TABLE必须由伪指令赋值或定义。3.段间直接寻址(intrersegment direct addressing) 指令中直接提供了转移地址的段地址和偏移地址,所以只要用指令中指定的偏移地址取代IP寄存器内容,用指令指定的段地址取代CS寄存器的内容就完成了从一个代码段到另一个代码段的转移操作,如图所示。【例3.13】JMP FAR PTR TARGET其中,TARGET是转移地址的符号地址,它在另一个段中;FAR PTR表示段间转移操作符。4.

44、段间间接寻址(intersegment indirect addressing) 用存储器中的两个相继字(4个字节单元)的内容来取代IP和CS寄存器中的内容,以达到段间转移的目的。取得存储器中存储单元的内容可采用各种与寻址存储器操作数的数据有关的寻址方式,包括直接、寄存器间接、寄存器相对、基址变址和相对基址变址等寻址方式,如图所示。【例3.14】 JMP DWORD PTR BX其中,DWORD PTR 为双字操作符,说明转移地址需要取双字为段间转移;BX表示双字转移地址是在寄存器间接寻址方式寻找的存储器的4个相继存储单元中。例如:DS=3000H,BX=1200H, 则物理地址30000+1

45、200=31200H。指令执行前:CS=0000H,IP=1000H,(31200H)=40H,(31201H)=01H,(31202H)=00H,(31203H)=10H。指令执行后:CS=1000H,IP=0140H,(31200H)=40H,(31201H)=01H,(31202H)=00H,(31203H)=10H。1.直接端口寻址方式 I/O端口地址以8位立即数方式在指令中直接给出,例如: IN AL,PORT 其中,PORT为寻址端口编号,只能在0255范围之内。2.间接端口寻址方式 I/O地址超过8位时,应放在DX寄存器中,即通过DX间接寻址,所能寻址的端口编号为065535。如

46、 OUT DX,AL,表示将AL的内容输出到由(DX)指出的端口中去。 在16位PC机中,仅用A0A9十条地址线表示I/O端口,所以DX间接寻址的范围为01023(即03FFH)。 扩展寻址方式是针对80 x86微处理器而言的,它以实地址方式、保护虚地址方式、保护方式下的虚拟8086方式运行程序。在实地址方式下,计算机运行单任务操作系统,其寻址方式、操作数物理地址的形成和访问同8086/8088。保护虚拟地址方式是80 x86的全功能运行方式,扩展了可访问的物理地址空间.1.比例变址寻址操作数的有效地址由变址寄存器内容乘以比例因子,再加上基址寄存器的内容。例如:IMUL EAX,TABESI4

47、,7; (EAX) 7 TAB+ESI4MOV EDX, LOCAESI2; (EDX) LOCA+ESI22.基址比例变址寻址操作数有效地址是变址寄存器内容乘以比例因子,再加上基址寄存器的内容。例如:MOV EAX,ESI2EBX;(EAX)ESI2+EBX3.带位移的基址变址寻址(基址变址相对寻址) 操作数的有效地址是变址寄存器内容与基址寄存器内容和位移相加。例如:ADD EDX,ESIEBP+0000FFFFH;(EDX) (EDX+ESI+EBP+0000FFFFH)4.带位移的基址比例变址寻址 操作数的逻辑地址是变址寄存器内容乘以比例因子,再加上基址寄存器内容和位移量。例如:MOV

48、EAX,TABLEESI4EBP+90;(EAX)TABLE+ESI4+EBP+90)注意:物理地址的形成需加上相应的段基址。段寄存器在8086/8088下存放的是物理地址的段基址值,在80 x86下存放的是段选择符。段选择符在实地址方式下就是段基址值,在保护模式下是段描述符的索引号,段描述符有8个字节表示32位段基址。 3.2 8086/8088指令系统指令系统 目前许多计算机的指令系统包含了几百条指令,十几种寻址方式,这对丰富汇编语言程序设计,提高高级语言的执行效率是有利的。我们称这些计算机为“复杂指令系统计算机”,简称CISC(complex instruction set comput

49、er)。 基本指令集是80 x86微机不断发展的指令集的一个基本子集,包括8086/8088指令系统的全部指令。8086/8088指令系统可分为6大类:数据传送,算术运算,逻辑运算和移位,串处理,控制转移和处理机控制等。1.通用数据传送指令 (1) MOV 指令格式:MOV DST, SRC操作:(DST)(SRC),把源操作数的内容送目的操作数。其中,DST代表目的操作数;SRC代表源操作数;MOV指令是使用得最多的指令,它可以是实现CPU内部寄存器之间的数据传送、寄存器和内存之间的数据传送,还可以把一个立即数传送给寄存器或内存单元。例如:MOV AL,BLMOV AX,BXMOV AX,1

50、234HMOV ES,AXMOV AL,1000HMOV DI,AX说明:1) MOV 指令不允许两个存储器单元同时传送数据,即DST和SRC 不能同时为存储器操作数,DST 目的操作数不允许使用立即寻址方式。2) MOV 指令也不允许在两个段寄存器之间传送数据。3) 对标志位无影响。(2) 交换命令 格式:XCHG OPR1,OPR2 操作:OPR1OPR2,即将操作数(OPR1)与操作数(OPR2)进行交换。该指令可以实现字节交换,也可以实现字交换。交换过程可以在CPU的内部寄存器之间进行,也可以在内部寄存器和存储器之间进行,但不能在两个存储单元之间进行。例如:XCHG AL,BL XCH

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁