《微机原理及接口技术》-蒋革新-电子教案 微机原理及接口技术 第三章

上传人:E**** 文档编号:89404095 上传时间:2019-05-24 格式:PPT 页数:96 大小:2.15MB
返回 下载 相关 举报
《微机原理及接口技术》-蒋革新-电子教案  微机原理及接口技术 第三章_第1页
第1页 / 共96页
《微机原理及接口技术》-蒋革新-电子教案  微机原理及接口技术 第三章_第2页
第2页 / 共96页
《微机原理及接口技术》-蒋革新-电子教案  微机原理及接口技术 第三章_第3页
第3页 / 共96页
《微机原理及接口技术》-蒋革新-电子教案  微机原理及接口技术 第三章_第4页
第4页 / 共96页
《微机原理及接口技术》-蒋革新-电子教案  微机原理及接口技术 第三章_第5页
第5页 / 共96页
点击查看更多>>
资源描述

《《微机原理及接口技术》-蒋革新-电子教案 微机原理及接口技术 第三章》由会员分享,可在线阅读,更多相关《《微机原理及接口技术》-蒋革新-电子教案 微机原理及接口技术 第三章(96页珍藏版)》请在金锄头文库上搜索。

1、1/96,本课程教学模块,第一章、微型计算机基础知识 第二章、微型计算机的组成及工作原理 第三章、汇编语言程序设计 第四章、输入输出接口 第五章、存储器及其结构 第六章、中断控制系统 第七章、可编程计数定时控制器8253 第八章、数/模及模/数转换器 第九章 微型计算机外部设备简介 第十章 微型计算机开发应用,2/96,第三章 汇编语言程序设计,本章要点: l 80X86指令的寻址方式 l 80X86微处理器的指令系统 l 汇编语言程序结构、基本语法 l 汇编语言的伪指令 l 汇编语言程序设计方法,3/96,3.1 汇编语言的基本语法,汇编语言是计算机能够提供给用户的最快而又最有效的语言,也是

2、能够利用计算机所有硬件特性并能直接控制硬件的惟一语言。 任何汇编语言所能处理的数据类型,都与操作系统和机器的特性密切相关。 汇编语言能采用模块化结构编程,可编写在“时间”和“空间”两方面最有效率的程序。至于很多需要直接控制硬件的应用场合,则更是非用汇编语言编程实现控制不可了。,4/96,3.2 寻址方式,3.2.1 寻址方式概述 指定操作数或操作数存放位置的方法称为寻址方式。 寻址方式是本课程学习的重点之一。 与数据有关的基本寻址方式有: 立即数寻址 寄存器寻址 直接寻址 寄存器间接寻址 寄存器相对寻址 基址加变址寻址 相对基址加变址寻址 串寻址方式 端口寻址 隐含寻址等。 与转移地址有关的寻

3、址方式有: 段内直接寻址 段内间接寻址 段间直接寻址 段间间接寻址 等四种方式。 汇编语言中操作数的存在形式有三种: 立即数操作数:出现在指令中的常数。 寄存器操作数:指令中给出寄存器的符号,操作数在寄存器中。 存储器操作数:指令中给出存储器的地址形式,操作数在存储器中。,5/96,3.2.2 与数据有关的寻址方式,一、立即数寻址 操作数以常数的形式直接存放在指令中,紧跟操作码之后,它作为指令的一部分存放在指令操作码之后的存储单元中,这种操作数称为立即数。立即数只能是源操作数(SRC),可以是8位或16位常数。 例3-2:MOV AX,1234H ;指令执行后,(AX)=1234H 例3-3:

4、MOV AL,5H ;指令执行后,(AL)=05H,6/96,3.2.2 与数据有关的寻址方式,二、寄存器寻址 指令指定寄存器的符号,指令所要的操作数存放在某寄存器中。 l 8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL等; l 16位寄存器有:AX、BX、CX、DX、SI、DI、SP和BP等; l 32位寄存器有:EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP等。 例3-4:MOV AX,BX ;如指令执行前AX=01H,BX=4321H,则执行后,AX=4321H,BX=4321H。,7/96,三、存储器寻址,指令所要的操作数存放在存储器中。 操作时需要通过规

5、定的寻址方式求得操作数地址,从而取得操作数。 存储器操作数具有类型属性,如字节(BYTE)、字(WORD)、双字(DWORD)等,反映了数据占用存储单元的字节数,指令书写中,约定用方括号内容表示存储器的偏移地址; l 用类型名 PTR 偏移地址的形式说明指令中存储器操作数的类型。 例3-5:WORD PTR 1000H; l 对变量名的数据序列用DB/DW/DD分别定义为字节、字或双字存储器操作数。 例3-6:BUF DB 10H,20H。,8/96,三、存储器寻址,1、直接寻址 存储器操作数的16位偏移地址直接包含在指令的方括号中。 例3-7:MOV AX,3000H ;约定由DS提供段地址

6、,9/96,三、存储器寻址,2、寄存器间接寻址 存储器操作数所在的存储单元的偏移地址放在指令给出的寄存器中。 寄存器:SI、DI、BP和BX。其中SI、DI、BX约定段寄存器DS,BP约定段寄存器SS。 该寻址方式对应存储单元的物理地址计算方法如下,10/96,三、存储器寻址,3、寄存器间接且相对寻址 操作数所在存储单元的有效地址是指令给定的位移量(8/16位)与BX、BP内容之和。,11/96,三、存储器寻址,4、基址加变址寻址 操作数所在存储单元的有效地址是指令给定的一个基址(BX或BP)及一个变址(SI或DI)的内容之和,段寄存器由基址寄存器决定,若为BX,段寄存器为DS;若为BP,段寄

7、存器为SS,允许段超越。,12/96,三、存储器寻址,5、基址变址且相对寻址 操作数的有效地址是给定的位移量和一个基址(BX或BP)及一个变址(SI或DI)内容之和。,13/96,三、存储器寻址,6、串寻址 用于数据串操作指令,它隐含地运用:SI指出源串偏移地址,DI目的串偏移地址 指令执行后:SI和DI的内容自动加1或减1(操作数为字节类型时) SI和DI的内容自动加2或减2(操作数为字类型时) 约定源串段地址在DS中,目的串段地址在ES中。不允许段超越。 例3-12:MOVSB ;ES:DI DS:SI,SISI+ 1,DIDI + 1 MOVSW ;ES:DI DS:SI,SISI +

8、2,DIDI + 2,14/96,四、端口寻址,操作数在外部设备的端口中,分为直接端口寻址和间接端口寻址两种。 1、 直接端口寻址 指令中直接给出外设端口的地址,用8位常数表示。 例3-13:IN AL,34H ;AL34H OUT 34H,AL ;34HAL 2、 间接端口寻址 指令中外设端口的地址280H在DX中,是16位地址。 例3-14:IN AL,DX ;AL280H OUT DX,AL ;280HAL,15/96,3.2.2 与数据有关的寻址方式,五、隐含寻址 指令中没有给出操作数,操作数隐含在指令指定的固定对象中。 例3-15:AAA ;隐含对AL操作,表3-1 各类指令访问存储

9、器时段地址与偏移地址,16/96,3.3 指令系统,3.3.1 概述 计算机是通过执行指令序列来解决问题的,因而每种计算机都有一组指令集供用户使用,这组指令就称为计算机的指令系统。 一般小型或微型计算机的指令系统可以包括几十种或百余指令。 指令按其功能分: 数据传送指令、 算术运算指令、 逻辑运算指令、 操作指令、 移位操作指令、 位操作指令、 比较运算指令、 循环指令、 条件设置,17/96,3.3.2 数据传送类指令,数据传送指令负责把数据、地址或立即数传送到寄存器或存储单元中。 除了标志位操作指令SAHF和POPF指令外,本类的其他传送指令都不影响标志位 一、通用数据传送指令 1、传送指

10、令 MOV 格式:MOV dst,src ;功能:把源操作数的值传给目的操作数。 src:通用寄存器、段寄存器、存储器操作数、立即数。 dst:通用寄存器、段寄存器、存储器操作数。 例:错误的MOV 指令如下所示: MOV AX,BL MOV DS,1000H MOV BX ,SI MOV CS,ES,注意点: l src和dst必须类型一致。 l dst不能是立即数。 l 两个操作数不能都是存储器操作数。 l SRC是立即数时,DST不能是段寄存器。 l CS不得作目的操作数。,18/96,3.3.2 数据传送类指令,2、交换指令XCHG 格式:XCHG dst,src 功能:将两个寄存器或

11、寄存器和内存变量之间内容交换。 操作数:两操作数可以是通用寄存器和存储器。 注意点: l 两操作数不能都是存储器操作数;两个操作数也不能同时为内存变量。 l 两个操作数的数据类型要相同。 l 该指令的功能和MOV指令不同,本指令是两个操作数都会发生改变。 例3-21:XCHG AX,BX ;AX BX,19/96,3.3.2 数据传送类指令,3、堆栈操作 1)堆栈的概念 堆栈是存储器的一段内存区域,按“先进后出”的原则进行读写操作。 堆栈区位于堆栈段,段地址由SS指示,SP寄存器作为指针,SP内容始终指向栈顶所在单元。 2)堆栈的作用: 调用过程时,保存返回地址。暂时存放寄存器或存储器单元操作

12、数的内容。 3)堆栈的特点: l 堆栈是在内存的堆栈段中,具有“先进后出”的特点。 l 堆栈只有一个出入口,即当前栈顶为空时,栈顶和栈底指向同一内存单元。 l 堆栈有两个基本操作:PUSH(进栈)和POP(出栈)。 l PUSH操作使栈顶向低地址方向移动,而POP操作则刚好相反。 l 堆栈操作只能作字操作; l SS:SP在任何时候都指向当前的栈顶。,20/96,堆栈操作指令PUSH与POP,1)进栈操作PUSH 指令格式:PUSH src 功能:SPSP-2,SP+1 SPsrc 操作数:寄存器(IP除外)或存储单元。 注意点:源操作数只能是16位,而不能是8位的。 2)出栈操作POP 指令

13、格式:POP dst 功能:dstSP+1SP,SPSP+2。 操作数:同PUSH指令,但CS不能作为目的操作数。 注意点:目的操作数只能是16位的,而不能是8位的。 例3-22:PUSH AX POP AX 堆栈指令操作过程,21/96,堆栈操作指令PUSH与POP,建栈 MOV AX ,1050H MOV SS ,AX MOV SP ,000 EH,进栈 PUSH AX (设 AX=1234H PUSH BX (设 BX=5CF8H),1050FH,10500H,初始栈顶,(栈底),SP= 0EH,SS= 1050H,堆栈起地址,栈的范围,SP= 0EH,12H,34H,SP= 0CH,5

14、CH,F8H,SP= 0AH,10500H,(不变),1050FH,SS = 1050H,- 2,- 2,当前栈顶,进栈后的SP和SS的值 SP=000AH SS=1050H,进栈前SP和SS的值 SP=000EH SS=1050H,(变化),(AX),(BX),8086通过赋值SS和SP建栈,进栈操作:先SP减 2,再内容进栈。,高,低,22/96,堆栈操作指令PUSH与POP,出栈操作:先栈顶内容出栈,再修改SP,使SP加2。(字操作),出栈 POP CX POP DS,SP= 0EH,12H,34H,SP= 0CH,5CH,F8H,SP= 0AH,10500H,(不变),1050FH,S

15、S = 1050H,- 2,- 2,当前栈顶,出栈前的SP和SS的值 SP=000AH SS=1050H,(变化),SP= 0EH,CX=5CF8H,DS=1234H,SS=1050H,出栈后SP和SS的值 SP=000EH SS=1050H,SP=0AH,SP=0CH,+2,+2,F8H,5CH,34H,12H,1050FH,高,低,进栈操作:先SP减 2,再内容进栈。,23/96,堆栈操作指令PUSH与POP,1)进栈操作PUSH 指令格式:PUSH src 功能:SPSP-2,SP+1 SPsrc 操作数:寄存器(IP除外)或存储单元。 注意点:源操作数只能是16位,而不能是8位的。 2)出栈操作POP 指令格式:POP dst 功能:dstSP+1SP,SPSP+2。 操作数:同PUSH指令,但CS不能作为目的操作数。 注意点:目的操作数只能是16位的,而不能是8位的。 例3-22:PUSH AX POP AX 堆栈指令操作过程,堆栈,SS:01F8,SS:01FA,SS:01FC,SS:01FE,SP,AA BB,(执行PUSH AX之前),堆栈,SS:01F8,SS:01FA,SS:01FC,SS:01FE,SP,AA BB,(执行PUSH AX之后),1101H,1101H,AX,堆栈,SS:01F8,SS:

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号