第4章指令系统 4.1概述4.280486寻址方式4.380486标志寄存器4.4汇编语言语法规则之一4.580486基本集指令.ppt
《第4章指令系统 4.1概述4.280486寻址方式4.380486标志寄存器4.4汇编语言语法规则之一4.580486基本集指令.ppt》由会员分享,可在线阅读,更多相关《第4章指令系统 4.1概述4.280486寻址方式4.380486标志寄存器4.4汇编语言语法规则之一4.580486基本集指令.ppt(181页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望 4.4.概述概述 1.1.指令指令:通知:通知 CPU CPU执行某种操作的执行某种操作的“命令命令”,CPUCPU全部指令的全部指令的2.2.集合,称为指令系统集合,称为指令系统2.2.指令的书写格式指令的书写格式H目标指令目标指令(机器指令):用一串(机器指令):用一串0
2、0,1 1代码书写代码书写 注意:硬件只能识别,存储,运行目标指令注意:硬件只能识别,存储,运行目标指令H符号指令:符号指令:用规定的助记符用规定的助记符,规定的书写格式书写规定的书写格式书写 的指令的指令指令的组成:指令的组成:操作码操作码+操作数操作数操作码操作码告诉计算机要执行的操作是什么,如:告诉计算机要执行的操作是什么,如:加、减、逻辑与等。加、减、逻辑与等。操作数操作数执行操作过程所要操作的数,如加运算执行操作过程所要操作的数,如加运算的两个加数。的两个加数。3.3.指令的组成指令的组成汇编语言的符号指令汇编语言的符号指令汇编语言是一种符号语言汇编语言是一种符号语言,它用:它用:助
3、记符助记符表示操作码表示操作码符号或符号地址符号或符号地址表示操作数或操作数地址表示操作数或操作数地址 80486 80486符号指令与机器指令对照表符号指令与机器指令对照表 操作操作 80486 80486符号指令符号指令 80486 80486机器指令机器指令 1234HAX 1234HAX MOV AX,1234H MOV AX,1234H B8 34 12 B8 34 12 AX+BXAX AX+BXAX ADD AX,BX ADD AX,BX 03 C3 03 C3 CX-DXCX CX-DXCX SUB CX,DX SUB CX,DX 2B CA 2B CA 返回调用程序返回调用程
4、序 RET RET C3 C3MOV:MOVEMOV:MOVE传送传送 ADD:ADD:加加 SUB:SUB:减减 RET:RETURN RET:RETURN 返回返回4.4.目标程序的生成目标程序的生成 汇编汇编源程序源程序编辑、编译、链接编辑、编译、链接可执行的机器指令可执行的机器指令程序(目标程序程序(目标程序)5.5.指令长度指令长度 486 486指令长度(机器指令长度)为指令长度(机器指令长度)为1 11616字节字节规定:多字节指令占用连续的内存单元,存放指令第规定:多字节指令占用连续的内存单元,存放指令第 一字节的内存地址,称为一字节的内存地址,称为“指令地址指令地址”。CPU
5、 CPU只能识别,存储,运行目标指令,而用机器指只能识别,存储,运行目标指令,而用机器指令编程非常困难。于是早期的专家们发明了符号指令,再经过令编程非常困难。于是早期的专家们发明了符号指令,再经过软件把符号指令软件把符号指令机器指令。图示如下:机器指令。图示如下:6.6.指令存放指令存放 如:如:12345H12345H单元中有一条指令单元中有一条指令 MOV AX,6789H MOV AX,6789H67H67H89H89HB8HB8H12345H:12345H:操作码操作码操作数操作数6789H6789HMOVAX,6789H 先写操作码,再写操作数。先写操作码,再写操作数。多字节操作数连
6、续存放。存放规律多字节操作数连续存放。存放规律:低位字节存放在低地低位字节存放在低地址单元,高位字节存放在相邻的高地址单元址单元,高位字节存放在相邻的高地址单元7.CPU7.CPU执行指令的过程执行指令的过程8.符号指令的符号指令的书写格式书写格式标号标号:操作码助记符操作码助记符 空格空格 操作数助记符操作数助记符;注释;注释 如如:NEXT:ADD AX,BX ;AX+BX AXNEXT:ADD AX,BX ;AX+BX AX INC SI INC SI ;SI+1 SI ;SI+1 SI 标号:标号:以字母开头以字母开头,后跟字母后跟字母,数字数字,下划线下划线,长度长度3131字符字符
7、 标号又称符号地址标号又称符号地址,代表该指令的逻辑地址。可有可代表该指令的逻辑地址。可有可 无,设置是为了程序的转向无,设置是为了程序的转向注解:注解:以以“;”开头,不执行,打印程序清单时照原样打印,开头,不执行,打印程序清单时照原样打印,“系统保留字系统保留字”不能做标号。不能做标号。4.2 804864.2 80486寻址方式寻址方式操作数是指令的操作对象,寻址方式与地址码有密切关操作数是指令的操作对象,寻址方式与地址码有密切关系系.形成操作数地址码的过程就是寻址。形成操作数地址码的过程就是寻址。“寻址方式寻址方式”:通俗的讲,就是通知:通俗的讲,就是通知CPUCPU本条指令的操本条指
8、令的操作数在哪儿?或者说用什么方式才能得到作数在哪儿?或者说用什么方式才能得到操作数操作数。操作数操作数存在方式存在方式在微型计算机中,操作数可能以以下三种方式存在:在微型计算机中,操作数可能以以下三种方式存在:操作数包含在指令中操作数包含在指令中即指令的操作数部分就包含着操作数本身。即指令的操作数部分就包含着操作数本身。MOVAX,1234H;ADDAL,2 操作数包含在操作数包含在CPU的某一个内部寄存器中的某一个内部寄存器中这时指令中的操作数是这时指令中的操作数是CPU内部的某一个寄存器内部的某一个寄存器MOVDS,AX 操作数在内存的数据区中操作数在内存的数据区中这时指令中的操作数包含
9、着此操作数的地址这时指令中的操作数包含着此操作数的地址MOVAX,2000;MOVBUF,AL8048680486有有3 3类类7 7种寻址方式种寻址方式立立 即即 寻址方式:寻址方式:获得立即数获得立即数寄存器寻址方式:寄存器寻址方式:获得寄存器操作数获得寄存器操作数存储器寻址方式:存储器寻址方式:获得内存操作数(存储器操作数)获得内存操作数(存储器操作数)H学习重点:学习重点:怎样在怎样在符号指令符号指令中,正确的描述各种寻址方式中,正确的描述各种寻址方式1.立即寻址方式立即寻址方式这这种种寻寻址址方方式式所所提提供供的的操操作作数数直直接接放放在在指指令令中中,紧紧跟跟在在操操作作码码的
10、的后后面面,与与操操作作码码一一起起放放在在代代码码段段区区域域中中。立立即即数数可可以以是是8、16、32位位.立立即即寻寻址址主主要要是是用用来来给给寄寄存存器器赋赋初值初值.如如:MOVEAX,12345678HMOVBL,10101010B;AAHBLMOVCL,4;FCHCLMOVDL,A;41HDLADDAL,0C8HMOVSI,3*5;15SI上例源操作数即为立即寻址,上例源操作数即为立即寻址,立即数书写规定:立即数书写规定:H立即数以数字开头,以开头的立即数以数字开头,以开头的1616进制数,必须前缀进制数,必须前缀0 0。H程序员可以按自己的习惯书写立即数,各种合法的立即数经
11、汇编程序员可以按自己的习惯书写立即数,各种合法的立即数经汇编 后,一律自动转换成等值的二进制数,负数用补码表示。后,一律自动转换成等值的二进制数,负数用补码表示。H立即数的数制用后缀表示立即数的数制用后缀表示,B,B表示二进制数表示二进制数,H,H表示十六进制数表示十六进制数,D,D或或 缺省为十进制数,单引号括起来的字符编译成相应的缺省为十进制数,单引号括起来的字符编译成相应的ASCIIASCII码码 。H可以用可以用+*/*/组成立即数表达式组成立即数表达式2.寄存器寻址寄存器寻址操作数在操作数在CPU的的某个寄存器中,某个寄存器中,符号符号指令中直接写出指令中直接写出寄存器名称寄存器名称
12、。如:如:MOVAX,DS;DS内容内容AXINCSI;SI+1SI(Increase增量增量)DECDI;DI1DI(Decrease减量减量)如:下述条指令,目标操作数即为寄存器寻址如:下述条指令,目标操作数即为寄存器寻址MOVEAX,12345678HMOVBL,10101010B;AAHBLMOVCL,4;FCHCLMOVDL,5;35HDLADDAL,0C8HMOVSI,3*5;15SI3.3.存储器操作数寻址方式存储器操作数寻址方式 重申:重申:H在读写内存操作数之前,在读写内存操作数之前,CPUCPU必须知道相关存储单元的物理地址。必须知道相关存储单元的物理地址。H 程序员的责任
13、仅在于正确的书写逻辑地址表达式,然后由程序员的责任仅在于正确的书写逻辑地址表达式,然后由CPUCPU自动运自动运 算以求出物理地址。算以求出物理地址。H 由于由于CPUCPU对存储器采用分段管理对存储器采用分段管理,因此指令格式中只能写出存放操作数因此指令格式中只能写出存放操作数 的内存单元的的内存单元的“逻辑地址逻辑地址”。操作系统将程序调入内存时才给段寄存器赋实际值。此时,计算出的操作系统将程序调入内存时才给段寄存器赋实际值。此时,计算出的20位地址才是实际的物理地址位地址才是实际的物理地址程序员给出的逻辑地址形式程序员给出的逻辑地址形式 段寄存器:段寄存器:偏移地址偏移地址有效地址(有效
14、地址(EA)实模式实模式80X86的内存地址的内存地址:段基址段基址+段内偏移量段内偏移量存放在存放在CS存放存放在在BX、BP、SI、DI中中,DS或或直接地址直接地址如如3000H中中,ES或或上述形式的组合上述形式的组合中。中。SS中中段内偏移量可以由几部分组成,组成后的地址称为段内偏移量可以由几部分组成,组成后的地址称为有效地址有效地址EAEA可以由以下各种情况构成:可以由以下各种情况构成:直接地址直接地址包含在指令中的包含在指令中的16位地址偏移量位地址偏移量。间接地址间接地址 由由CPUCPU内部某个内部某个1616位寄存器的内容决定,如位寄存器的内容决定,如 BXBX、BPBP、
15、SISI、DIDI。基址基址 基址寄存器基址寄存器BXBX或或BPBP加上指令中包含的加上指令中包含的8 8位或位或1616位位移量位位移量。变址变址 变址寄存器变址寄存器SISI或或DIDI加上指令中包含的加上指令中包含的8 8位或位或1616位位移量位位移量。基址加变址基址加变址 由一个基址寄存器由一个基址寄存器BXBX或或BPBP加上一个变址寄存器加上一个变址寄存器SISI或或DIDI,再加,再加 上指令中包含的上指令中包含的8 8位或位或1616位位移量位位移量。(1)(1)直接寻址直接寻址 地址表达式的格式地址表达式的格式1 1:段寄存器:段寄存器:偏移地址偏移地址 地址表达式的格式
16、地址表达式的格式2 2:段寄存器:变量名段寄存器:变量名 用变量名代表存储单元的有效地址用变量名代表存储单元的有效地址 如:如:MOVMOVAL,ES:2CHAL,ES:2CH 从从ESES附加段偏移地址为附加段偏移地址为2CH2CH的单元取数的单元取数ALAL如:如:MOV AX,DS:2000HMOV AX,DS:2000H 从数据段偏移地址为从数据段偏移地址为2000H2000H的单元取一字的单元取一字AXAX这种格式很少使用,这种格式很少使用,通常情况下,程序员不知道某单元的偏移地址通常情况下,程序员不知道某单元的偏移地址 设数据段设数据段XXXX字节单元的内容为字节单元的内容为11H
17、11H ES ES附加段附加段YYYY字单元的内容为字单元的内容为2233H2233H MOV AL,MOV AL,DS:XX DS:XX ;取数据段取数据段XXXX字节单元的内容字节单元的内容ALAL 或或 MOV AL,MOV AL,XX XX ;AL=11H ;AL=11H MOV MOV AX,AX,ES:YY ES:YY ;取取ESES附加段附加段YYYY字单元的内容字单元的内容AXAX 或或 MOV MOV AX,AX,YYYY ;AX=2233H ;AX=2233H说明:说明:H汇编语言允许为某单元起一个汇编语言允许为某单元起一个“名字名字”,这个名字就称为该单元的这个名字就称为
18、该单元的“变量名变量名”,经汇编之后,变量名有段基址和偏移量两种属性。,经汇编之后,变量名有段基址和偏移量两种属性。H变量名是唯一的,程序中不能有重复的变量名,变量名是唯一的,程序中不能有重复的变量名,“段寄存器:段寄存器:”可以省略。可以省略。(2)(2)寄存器间接寻址寄存器间接寻址 寄存器间接寻址又称间接寻址,间址寄存器间接寻址又称间接寻址,间址 什么是间接寻址?什么是间接寻址?操作数在内存单元,该单元的段基址在操作数在内存单元,该单元的段基址在段寄存器段寄存器中中,有效地址在有效地址在间址寄存器间址寄存器中,中,CPUCPU首先进行地址计算首先进行地址计算 间接寻址的地址表达式间接寻址的
19、地址表达式 段寄存器:段寄存器:间址寄存器间址寄存器 某单元的物理地址某单元的物理地址=段寄存器内容段寄存器内容16+16+间址寄存器间址寄存器 访问约定的逻辑段访问约定的逻辑段 ,间接寻址的地址表达式简,间接寻址的地址表达式简 化为:化为:间址寄存器间址寄存器 某单元的物理地址某单元的物理地址=约定的段寄存器内容约定的段寄存器内容16+16+间址寄存器间址寄存器 间址寄存器间址寄存器 和约定访问的逻辑段和约定访问的逻辑段486486规定:规定:间址寄存器间址寄存器约定访问的逻辑段约定访问的逻辑段BPBP堆栈段堆栈段 16 16位寻址方式位寻址方式BX,SI,DIBX,SI,DI数据段数据段E
20、BP,ESPEBP,ESP堆栈段堆栈段 32 32位寻址方式位寻址方式EAXEAXEDX,ESI,EDIEDX,ESI,EDI数据段数据段举例:举例:设数据段设数据段BUFBUF字节单元的内容为字节单元的内容为55H,55H,取出该数取出该数 AL AL解解1 1:用:用BXBX间址间址 MOV DS,MOV DS,数据段段基址数据段段基址 MOV BX,BUF MOV BX,BUF单元的有效地址单元的有效地址 MOV AL,DS:BX ;AL=55H MOV AL,DS:BX ;AL=55H等价于等价于:MOV AL,BX :MOV AL,BX 由于由于BXBX间址,约定访问的是数据段,间址
21、,约定访问的是数据段,“DS:”“DS:”可省可省解解2 2:用:用BPBP间址间址 MOV DS,MOV DS,数据段段基址数据段段基址 MOV BP,BUF MOV BP,BUF单元的有效地址单元的有效地址 MOV AL,DS:BP ;AL=55H MOV AL,DS:BP ;AL=55H 不能写成不能写成:MOV AL,BP:MOV AL,BP 由于由于BPBP间址约定访问的是堆栈段,间址约定访问的是堆栈段,“DS:”“DS:”不可省不可省解解3 3:用变量名直接寻址:用变量名直接寻址 MOV DS,MOV DS,数据段段基址数据段段基址 MOV AL,BUF MOV AL,BUF ;A
22、L=55H ;AL=55H(3)(3)基址寻址基址寻址 该寻址方式的有效地址由两部分组成。一部分在该寻址方式的有效地址由两部分组成。一部分在基址寄存器中,另一部分为常量基址寄存器中,另一部分为常量 。基址寻址的地址表达式:基址寻址的地址表达式:段寄存器段寄存器:基址寄存器基址寄存器+位移量位移量 物理地址物理地址=段寄存器内容段寄存器内容16+16+基址寄存器基址寄存器+位移量位移量 访问约定的逻辑段,简化的地址表达式:访问约定的逻辑段,简化的地址表达式:基址寄存器基址寄存器+位移量位移量 物理地址物理地址=约定的段寄存器内容约定的段寄存器内容16+16+基址寄存器基址寄存器+位移量位移量 基
23、址寄存器和约定访问的逻辑段基址寄存器和约定访问的逻辑段基址寄存器基址寄存器约定访问的逻辑段约定访问的逻辑段BPBP堆栈段堆栈段 16 16位寻址方式位寻址方式BXBX数据段数据段EBP,ESPEBP,ESP堆栈段堆栈段 32 32位寻址方式位寻址方式EAXEAXEDX,ESI,EDIEDX,ESI,EDI数据段数据段 举例举例设数据段设数据段BUFBUF单元依次有:单元依次有:78H,56H,34H,12H78H,56H,34H,12H则:则:MOVMOV DS,数据段段基址数据段段基址MOV BX,BUFMOV BX,BUF单元有效地址单元有效地址MOV DH,MOV DH,BX+1BX+1
24、 ;DH=56H ;DH=56HMOV DX,MOV DX,BX+2BX+2 ;DX=1234H ;DX=1234H12H34H56H78HBUF(4)(4)变址寻址变址寻址 有比例因子的变址寻址其地址表达式为有比例因子的变址寻址其地址表达式为 段寄存器:段寄存器:比例因子比例因子*变址寄存器变址寄存器+位移量位移量 物理地址物理地址=段寄存器段寄存器16+16+比例因子比例因子变址寄存器变址寄存器+位移量位移量 没有比例因子的变址寻址其地址表达式为:没有比例因子的变址寻址其地址表达式为:段寄存器:段寄存器:变址寄存器变址寄存器+位移量位移量 访问约定的逻辑段可简化为访问约定的逻辑段可简化为
25、:变址寄存器变址寄存器+位移量位移量 物理地址物理地址=约定的段寄存器约定的段寄存器16+16+变址寄存器变址寄存器+位移量位移量 变址寄存器与约定访问的逻辑段变址寄存器与约定访问的逻辑段变址寄存器变址寄存器约定访问的逻辑段约定访问的逻辑段适用于适用于SI,DISI,DI数据段数据段无比例因子无比例因子,16,16位位寻址寻址EBPEBP堆栈段堆栈段有比例因子有比例因子,32,32位位寻址寻址EAXEAXEDX,ESI,EDIEDX,ESI,EDI数据段数据段说明:比例因子只能是说明:比例因子只能是1 1、2 2、4 4、8 8 因此:因此:MOV AL,8*SI+15 ;MOV AL,8*S
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 指令系统 4.1 概述4.2 80486寻址方式4.3 80486标志寄存器4.4 汇编语言语法规则之一4.5 80486基本集指令 概述 4.2 80486 寻址 方式 4.3 标志 寄存器
链接地址:https://www.deliwenku.com/p-77671891.html
限制150内