第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令教程文件

上传人:youn****329 文档编号:136943640 上传时间:2020-07-04 格式:PPT 页数:181 大小:2.01MB
返回 下载 相关 举报
第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令教程文件_第1页
第1页 / 共181页
第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令教程文件_第2页
第2页 / 共181页
第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令教程文件_第3页
第3页 / 共181页
第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令教程文件_第4页
第4页 / 共181页
第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令教程文件_第5页
第5页 / 共181页
点击查看更多>>
资源描述

《第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令教程文件》由会员分享,可在线阅读,更多相关《第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令教程文件(181页珍藏版)》请在金锄头文库上搜索。

1、第4章指令系统,4.1概述4.280486寻址方式4.380486标志寄存器4.4汇编语言语法规则之一4.580486基本集指令,4.概述,指令:通知CPU执行某种操作的“命令”,CPU全部指令的集合,称为指令系统,指令的书写格式目标指令(机器指令):用一串0,1代码书写注意:硬件只能识别,存储,运行目标指令符号指令:用规定的助记符,规定的书写格式书写的指令,指令的组成:操作码+操作数操作码告诉计算机要执行的操作是什么,如:加、减、逻辑与等。操作数执行操作过程所要操作的数,如加运算的两个加数。,3.指令的组成,汇编语言的符号指令汇编语言是一种符号语言,它用:助记符表示操作码符号或符号地址表示操

2、作数或操作数地址,80486符号指令与机器指令对照表,MOV:MOVE传送ADD:加SUB:减RET:RETURN返回,6.指令存放,如:12345H单元中有一条指令MOVAX,6789H,67H,89H,B8H,12345H:,MOVAX,6789H,先写操作码,再写操作数。多字节操作数连续存放。存放规律:低位字节存放在低地址单元,高位字节存放在相邻的高地址单元,7.CPU执行指令的过程,8.符号指令的书写格式,如:NEXT:ADDAX,BX;AX+BXAXINCSI;SI+1SI,标号:以字母开头,后跟字母,数字,下划线,长度31字符标号又称符号地址,代表该指令的逻辑地址。可有可无,设置是

3、为了程序的转向,注解:以“;”开头,不执行,打印程序清单时照原样打印,“系统保留字”不能做标号。,4.280486寻址方式,操作数是指令的操作对象,寻址方式与地址码有密切关系.形成操作数地址码的过程就是寻址。,“寻址方式”:通俗的讲,就是通知CPU本条指令的操作数在哪儿?或者说用什么方式才能得到操作数。,操作数存在方式在微型计算机中,操作数可能以以下三种方式存在:操作数包含在指令中即指令的操作数部分就包含着操作数本身。MOVAX,1234H;ADDAL,2操作数包含在CPU的某一个内部寄存器中这时指令中的操作数是CPU内部的某一个寄存器MOVDS,AX操作数在内存的数据区中这时指令中的操作数包

4、含着此操作数的地址MOVAX,2000;MOVBUF,AL,80486有3类7种寻址方式立即寻址方式:获得立即数寄存器寻址方式:获得寄存器操作数存储器寻址方式:获得内存操作数(存储器操作数),学习重点:怎样在符号指令中,正确的描述各种寻址方式,1.立即寻址方式这种寻址方式所提供的操作数直接放在指令中,紧跟在操作码的后面,与操作码一起放在代码段区域中。立即数可以是8、16、32位.立即寻址主要是用来给寄存器赋初值.,如:MOVEAX,12345678HMOVBL,10101010B;AAHBLMOVCL,4;FCHCLMOVDL,A;41HDLADDAL,0C8HMOVSI,3*5;15SI,上

5、例源操作数即为立即寻址,立即数书写规定:立即数以数字开头,以开头的16进制数,必须前缀0。,程序员可以按自己的习惯书写立即数,各种合法的立即数经汇编后,一律自动转换成等值的二进制数,负数用补码表示。,立即数的数制用后缀表示,B表示二进制数,H表示十六进制数,D或缺省为十进制数,单引号括起来的字符编译成相应的ASCII码。,可以用+*/组成立即数表达式,2.寄存器寻址操作数在CPU的某个寄存器中,符号指令中直接写出寄存器名称。,如:MOVAX,DS;DS内容AXINCSI;SI+1SI(Increase增量)DECDI;DI1DI(Decrease减量),如:下述条指令,目标操作数即为寄存器寻址

6、MOVEAX,12345678HMOVBL,10101010B;AAHBLMOVCL,4;FCHCLMOVDL,5;35HDLADDAL,0C8HMOVSI,3*5;15SI,3.存储器操作数寻址方式重申:在读写内存操作数之前,CPU必须知道相关存储单元的物理地址。,程序员的责任仅在于正确的书写逻辑地址表达式,然后由CPU自动运算以求出物理地址。,由于CPU对存储器采用分段管理,因此指令格式中只能写出存放操作数的内存单元的“逻辑地址”。,操作系统将程序调入内存时才给段寄存器赋实际值。此时,计算出的20位地址才是实际的物理地址,有效地址(EA)实模式80X86的内存地址:段基址+段内偏移量存放在

7、CS存放在BX、BP、SI、DI中,DS或直接地址如3000H中,ES或上述形式的组合中。SS中段内偏移量可以由几部分组成,组成后的地址称为有效地址EAEA可以由以下各种情况构成:直接地址包含在指令中的16位地址偏移量。间接地址由CPU内部某个16位寄存器的内容决定,如BX、BP、SI、DI。基址基址寄存器BX或BP加上指令中包含的8位或16位位移量。变址变址寄存器SI或DI加上指令中包含的8位或16位位移量。基址加变址由一个基址寄存器BX或BP加上一个变址寄存器SI或DI,再加上指令中包含的8位或16位位移量。,(1)直接寻址地址表达式的格式1:段寄存器:偏移地址,地址表达式的格式2:段寄存

8、器:变量名用变量名代表存储单元的有效地址,如:MOVAL,ES:2CH从ES附加段偏移地址为2CH的单元取数AL,如:MOVAX,DS:2000H从数据段偏移地址为2000H的单元取一字AX这种格式很少使用,通常情况下,程序员不知道某单元的偏移地址,设数据段XX字节单元的内容为11HES附加段YY字单元的内容为2233HMOVAL,DS:XX;取数据段XX字节单元的内容AL或MOVAL,XX;AL=11HMOVAX,ES:YY;取ES附加段YY字单元的内容AX或MOVAX,YY;AX=2233H,说明:汇编语言允许为某单元起一个“名字”,这个名字就称为该单元的“变量名”,经汇编之后,变量名有段

9、基址和偏移量两种属性。变量名是唯一的,程序中不能有重复的变量名,“段寄存器:”可以省略。,(2)寄存器间接寻址寄存器间接寻址又称间接寻址,间址什么是间接寻址?操作数在内存单元,该单元的段基址在段寄存器中,有效地址在间址寄存器中,CPU首先进行地址计算,间接寻址的地址表达式段寄存器:间址寄存器某单元的物理地址=段寄存器内容16+间址寄存器,访问约定的逻辑段,间接寻址的地址表达式简化为:间址寄存器某单元的物理地址=约定的段寄存器内容16+间址寄存器,间址寄存器和约定访问的逻辑段486规定:,举例:设数据段BUF字节单元的内容为55H,取出该数AL,解1:用BX间址MOVDS,数据段段基址MOVBX

10、,BUF单元的有效地址MOVAL,DS:BX;AL=55H等价于:MOVAL,BX由于BX间址,约定访问的是数据段,“DS:”可省,解2:用BP间址MOVDS,数据段段基址MOVBP,BUF单元的有效地址MOVAL,DS:BP;AL=55H不能写成:MOVAL,BP由于BP间址约定访问的是堆栈段,“DS:”不可省,解3:用变量名直接寻址MOVDS,数据段段基址MOVAL,BUF;AL=55H,(3)基址寻址该寻址方式的有效地址由两部分组成。一部分在基址寄存器中,另一部分为常量。,基址寻址的地址表达式:段寄存器:基址寄存器+位移量物理地址=段寄存器内容16+基址寄存器+位移量,访问约定的逻辑段,

11、简化的地址表达式:基址寄存器+位移量物理地址=约定的段寄存器内容16+基址寄存器+位移量,基址寄存器和约定访问的逻辑段,举例设数据段BUF单元依次有:78H,56H,34H,12H则:MOVDS,数据段段基址MOVBX,BUF单元有效地址MOVDH,BX+1;DH=56HMOVDX,BX+2;DX=1234H,12H,34H,56H,78H,BUF,(4)变址寻址有比例因子的变址寻址其地址表达式为段寄存器:比例因子*变址寄存器+位移量物理地址=段寄存器16+比例因子变址寄存器+位移量,没有比例因子的变址寻址其地址表达式为:段寄存器:变址寄存器+位移量访问约定的逻辑段可简化为:变址寄存器+位移量

12、物理地址=约定的段寄存器16+变址寄存器+位移量,变址寄存器与约定访问的逻辑段,说明:比例因子只能是1、2、4、8,因此:MOVAL,8*SI+15;非法,16位寻址不能使用比例因子MOVAL,10*ESI+5;非法指令,比例因子错了MOVAL,ES:SI;访问附加段MOVAL,SI;访问数据段,(5)基址加变址寻址,存储单元的有效地址由3部分组成有比例因子的基址加变址的地址表达式为:段寄存器:基址寄存器+比例因子*变址寄存器+位移量,访问约定逻辑段其地址表达式简化为:基址寄存器+比例因子*变址寄存器+位移量,无比例因子基址加变址地址表达式:段寄存器:基址寄存器+变址寄存器+位移量访问约定逻辑

13、段:基址寄存器+变址寄存器+位移量,基址加变址寻址是基址寻址和变址寻址的组合,要求基址寄存器和变址寄存器都是16位或都是32位,否则(16位寻址和32位寻址混合使用)是非法指令默认的段寄存器不一致,这样的组合虽然是合法,但容易出错,寻址方式的学习要点:1.指令中的操作数有3种:立即数,寄存器数,内存操作数访问立即数叫立即寻址方式;访问寄存器数叫寄存器寻址方式;访问内存操作数由5种寻址方式:直接寻址、间址、基址、变址、基址加变址不同的寻址方式是为了程序员在写指令时通过不同的手段提供操作数.,2.关于16位寻址和32位寻址16位寻址:采用16位间址、基址、变址、基址加变址32位寻址:采用32位间址

14、、基址、变址、基址加变址,3.在实模式下,一个逻辑段的体积最大为64K,存储单元的有效地址为16位,不可能超过FFFFH,在实模式下运行的程序通常采用16位寻址,4.关于段约定和段超越,在用间址、基址、变址、基址加变址寻址内存操作数时,其地址表达式都有2种书写格式有段前缀和无段前缀,如用BP、EBP、ESP参与寻址,CPU自动认为是访问堆栈段,段超越前缀“SS:”可省,MOVAL,SS:BP;访问SS段,用BP间址MOVAL,BP,如用BP、EBP、ESP参与寻址非堆栈段,必须明确写出段超越前缀,如:,MOVAL,DS:BP;访问堆栈段,用BP间址MOVAL,ES:BP+2,如用BX、SI、D

15、I、EAXEDX、ESI、EDI参与寻址,CPU自动认为是访问数据段,“DS:”可省,如:MOVAL,DS:BXMOVAL,BX,如用BX、SI、DI、EAX、EDX、ESI、EDI参与寻址非数据段,必须明确写出段超越前缀,如:,MOVAL,ES:BXMOVAL,FS:SI+2,5使用段约定访问内存操作数是最常用的编程风格,4.3标志寄存器,80486标志寄存器为32位,实际使用15位15位标志分为两类:状态标志和控制标志状态标志记录了当前指令执行后的状态信息控制标志用来控制微处理器操作,本节首先介绍6种状态标志,状态标志寄存器,进位标志C(CarryFlag)当结果的最高位产生一个进位或借位

16、,则C=1,否则C=0。溢出标志O(OverflowFlag)在算术运算中,带符号数的运算结果超出了8位或16位带符号数能表达的范围,则O=1,否则O=0。8位(字节)运算-128+12716位(字)运算-32768+32767符号标志S(SignFlag)结果的最高位(D15或D7)为1,则S=1,否则S=0。零标志Z(ZeroFlag)若运算的结果为0,则Z=1,否则Z=0。奇偶标志P(ParityFlag)若结果中1的个数为偶数,则P=1,否则,P=0。辅助进位标志A(AuxitiaryFlag)在操作时,由低半字节(第3位)向高半字节,有进位或借位,则A=1,否则A=0。方向标志(DirectionFlag)D=1,串操作时地址自动减量,D=0,串操作时地址自动增量。中断允许标志(InterruptenableFlag)I=1,则允许CPU接收外部的中断请求,I=0,则屏蔽外部中断请求。追踪标志(TraceFlag)T=1,使处理进入单步方式,以便于调试。,状态标志,控制标志,二.复习:有关溢出的几个概念1.什麽是溢出?运算结果超出寄存器能表示的范

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

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

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