寻址方式和指令系统ppt培训课件

上传人:aa****6 文档编号:57710521 上传时间:2018-10-24 格式:PPT 页数:113 大小:1.42MB
返回 下载 相关 举报
寻址方式和指令系统ppt培训课件_第1页
第1页 / 共113页
寻址方式和指令系统ppt培训课件_第2页
第2页 / 共113页
寻址方式和指令系统ppt培训课件_第3页
第3页 / 共113页
寻址方式和指令系统ppt培训课件_第4页
第4页 / 共113页
寻址方式和指令系统ppt培训课件_第5页
第5页 / 共113页
点击查看更多>>
资源描述

《寻址方式和指令系统ppt培训课件》由会员分享,可在线阅读,更多相关《寻址方式和指令系统ppt培训课件(113页珍藏版)》请在金锄头文库上搜索。

1、第三章 80X86寻址方式和指令系统,3.1 80X86寻址方式 3.2 80X86指令格式 3.3 80X86指令系统,3.1 80X86寻址方式,3.1.1 数据寻址方式 操作数有可能在: (1) 代码段中,作为指令中的立即数 (2) CPU寄存器中 (3)存储器的数据段或堆栈段或附加数据段中 所以,总的来说,数据寻址方式分为三种: 立即寻址 寄存器寻址 存储器寻址,一、立即寻址,操作数直接包含在代码段的指令中。 如: MOV EAX,80000000H MOV BX,6688H MOV AL,12H 立即数只能作为源操作数 立即寻址主要用来给通用寄存器或存储器赋值 不允许给段寄存器直接赋

2、值,例3.1 立即寻址,立即寻址过程示意,立即寻址动态示意,二、寄存器寻址,操作数在寄存器中。 32位寄存器:EAX、EBX、ECX、EDX、ESP、EBP、 ESI、EDI 16位寄存器:AX、BX、CX、DX、SP、BP、SI、 DI、CS、DS、SS、ES、FS、GS 8 位寄存器:AH、AL、BH、BL、CH、CL、DH、DL 如:MOV AX,BX MOV EDI,ESI MOV AL,CL,例3.2 寄存器寻址,三、存储器寻址,操作数在存储器中,其地址由指令以某种方式 指出。 (一)16位指令模式下: 物理地址=段基址 10H 有效地址EA (二)32位指令模式下: 物理地址=段基

3、址 有效地址EA EA的计算方法根据采用的寻址方式不同而不同。,(一)16位指令模式下的存储器寻址,16位指令模式寻址结构: 段基址10H基址变址偏移量 基址:BX、BP 变址:SI、DI 偏移量:8位或16位 如果有效地址在BX,SI或DI中,则以DS寄存器内容为段基址;如果有效地址在BP中,则以SS段寄存器之内容为段基址。如果使用段超越前缀(CS:ES:DS:SS:),操作数可以放在冒号前指定的段。 16位指令模式寻址方式: 直接寻址 寄存器间接寻址 寄存器相对寻址 基址变址寻址 相对基址变址寻址,1、直接寻址,操作数在存储器单元中。 操作数所在的有效地址EA直接由指令指出。 例1 MOV

4、 AX,3000H 例2 MOV BL,BLOCK 例3 MOV BX,DATA1,例3.3 直接寻址,直接寻址过程示意,直接寻址动态示意,2、寄存器间接寻址,操作数的有效地址在BX、BP或SI、DI中,EA可表示为 例1 MOV AX,BX 例2 MOV DL,SI,例3.4 寄存器间接寻址,寄存器间接寻址过程示意,寄存器间接寻址动态示意,3、寄存器相对寻址,操作数在存储单元中,其有效地址EA可表示为 例1 MOV AL,BX4000H 亦可写成: MOV AL,4000HBX 例2 MOV AX,BP+2000H,例3.6 寄存器相对寻址,寄存器相对寻址过程示意,寄存器相对寻址动态示意,4

5、、基址变址寻址,操作数在存储单元中,其有效地址EA可表示为 例1 MOV AX,BXSI 或写成:MOV AX,BXSI 例2 MOV AX,BX+DI 例3 MOV AX,BP+SI 例4 MOV AX,BP+DI,例3.7 基址变址寻址,基址变址寻址过程示意,基址变址寻址动态示意,5、相对基址变址寻址,操作数在存储单元中,其有效地址EA可表示为 例1 MOV AX,BXSI1500H 或写成 MOV AX,1500BXSI 例2 MOV AX,BP+DI+1000H,例3.8 相对基址变址寻址,相对基址变址寻址过程示意,相对基址变址寻址动态示意,(二)32位指令模式下的存储器寻址,32位指

6、令模式寻址结构由5部分组成: 段址基址变址比例因子偏移量 其中基址寄存器或变址寄存器可以是除ESP以外的任何32位通用寄存器。当基址寄存器为EBP时,默认段寄存器SS存放段选择符,否则,默认DS存放段选择符。也可使用段超越前缀来指定。比例因子为1,2,4,8。偏移量为8位或32位。,32位指令模式下的存储器寻址方式,1、直接寻址 如:MOV EAX,10000000H 2、 间接寻址 如:MOV EDX,ECX 3、 相对基址寻址 如:MOV ECX,EAX+80H 4、 相对比例变址寻址 如:MOV EBX,ESI*4+80H 5、 相对比例基址变址寻址 如:MOV EAX,EBP+EDI*

7、4+80H,3.1.2 程序地址寻址方式 一、相对寻址 相对寻址为段内寻址,指令中给出带符号的相对偏移量,程序目标地址为当前IP值加上相对偏移量作为偏移地址。 二、 直接寻址 直接寻址是指指令中直接给出转移指令的目标地址。在段间转移中,指令中给出目标段地址或代码段的段描述符。 三、间接寻址 间接寻址 分段内和段间间接寻址,指令中以间接方式给出转移指令的目标地址,通常存放在数据段。,3.1.3 堆栈地址寻址方式,字数据进栈步骤: 1、(E)SP1(E)SP 2、 高8位堆栈 3、(E)SP1(E)SP 4、低8位堆栈 字数据出栈步骤: 1、栈顶内容目标寄存器或目标单元的低8位 2、(E)SP1(

8、E)SP 3、栈顶内容目标寄存器或目标单元的高8位 4、(E)SP1(E)SP,堆栈操作示意,思考题,1、 设DS=2000H,SS=3000H,BP=0200H,SI=4000H,BUF=1000H,EAX=00001000H,EBX=00002000H,假设按16位实模式操作,确定下列每条指令访问内存的物理地址,并且指出源操作数及目的操作数的寻址方式。 (1)MOV AL,1234H (2)MOV EDX,BX (3)MOV CL,BX100H (4)MOV SI,EBX (5)MOV AH,BUFBXSI (6)MOV EAX,BP1234H,3.2 80X86指令格式,指令基本格式:

9、标号: 助记符 操作数 ;注释 BYTE PTR 。 WORD PTR 。 DWORD PTR 。 如 INC WORD PTR BX,3.3 80X86指令系统,按功能分类: 数据传送指令 算术运算指令 逻辑运算指令 控制转移类指令 串操作指令 输入/输出指令 处理器控制指令 中断指令与DOS功能调用,3.3.1 数据传送指令,通用数据传送指令 堆栈操作指令 地址传送指令 标志寄存器传送指令 查表指令 符号扩展指令,数据传送指令包括:,3.3.1 数据传送指令,数据传送指令包括:,通用数据传送指令 堆栈操作指令 地址传送指令 标志寄存器传送指令 查表指令 符号扩展指令,传送指令数据流,* C

10、S不能为目的操作数,不能对(E)IP直接传送数据 * 堆栈操作不允许为字节操作,一、通用数据传送指令,DEST:目的操作数 SRC:源操作数 1、一般传送指令 MOV DEST,SRC 如:MOV AL,CL MOV BX,SI MOV EAX,EBX,使用MOV指令应注意:,立即数不允许直接送段寄存器,且立即数不能做目的操作数 源操作数和目的操作数不允许同时为存储器操作数 源操作数和目的操作数不允许同时为段寄存器 两操作数的数据类型要一致 传送操作不影响标志位 不允许对CS、(E)IP传送数据,2、扩展传送指令 MOVSX DEST,SRC MOVZX DEST,SRC 如 MOV BL,8

11、0H MOVSX AX,BL;AX=FF80H MOVZX AX,BL;AX=0080H *目的操作数为通用寄存器(16位或32位) *源操作数长度必须小于目的操作数长度,为通用寄存器或存储器操作数(8位或16位),3、交换指令 XCHG DEST,SRC 如:XCHG EAX,EBX XCHG AX,SI XCHG AL,SI *两操作数中不允许出现立即数 *两操作数不允许同时为存储器操作数 *两操作数数据类型必须一致,二、堆栈操作指令,压栈指令 PUSH SRC 如:PUSH EAX PUSH DS PUSH SI PUSH DWORD PTR SI PUSH 1234H PUSHD 80

12、H 出栈指令 POP DEST 如:POP AX POP DS POP BX POP DWORD PTR DI,三、地址传送指令,格式: LEA DEST,SRC *DEST为16位或32位通用寄存器 *SRC为16位或32位存储器操作数 例1:LEA BX,SI+1005H 若SI=1000H 则BX=? 例2:LEA DI,BLOCK MOV DI,BLOCK 有何区别?,四、标志寄存器传送指令,格式1:LAHF SAHF 格式2:PUSHF POPF 格式3: PUSHFD POPFD *SAHF、POPF、POPFD影响标志位,五、查表指令,格式: XLAT 指令规定:表格存于数据段中

13、 表首偏移地址BX 表内偏移量AL 查找结果AL 所找单元的物理地址: (DS)10H+(BX)+(AL),查表指令应用举例,LEA BX,BLOCK MOV AL, 3 XLAT 结果:AL内容为4FH,例:试编程将内存中以BLOCK为起始地址的编码表中顺序号为3的编码送AL寄存器。,六、符号扩展指令,针对带符号数,按带符号数扩展。 1、CBW 功能:AL(8位)AX(16位) 2、CWD 功能:AX(16位)DX:AX(32位) 3、CWDE 功能:AX(16位)EAX(32位) 4、CDQ 功能:EAX(32位)EDX:EAX(64位),3.3.2 算术运算指令,加法指令 减法指令 加1

14、减1指令 比较指令 乘法指令 除法指令 BCD算术运算指令,算术运算类指令特点,影响标志位 操作数不允许为段寄存器 不允许两个操作数同为存储器操作数 若无特别规定,操作数类型必须一致 目的操作数不允许为立即数 当操作数类型不明确时必须使用PTR伪指令,一、加法指令,格式(1) ADD DEST,SRC 功能:源操作数+目的操作数目的操作数 格式(2) ADC DEST,SRC 功能:源操作数+目的操作数+CF目的操作数 例:32F2H+A020H=? MOV AX,32F2H 或 MOV AX,32F2H MOV BX,0A020H MOV BX,0A020H ADD AX,BX ADD AL

15、,BL ADC AH,BH,二、减法指令,格式(1) SUB DEST,SRC 功能:目的操作数源操作数目的操作数 格式(2) SBB DEST,SRC 功能:目的操作数源操作数CF目的操作数 *SUB、SBB指令与ADD、ADC一样,影响标志位OF、SF、ZF、AF,PF,CF,三、加1减1指令,加1指令 INC DEST 功能:目的操作数1目的操作数 减1指令 DEC DEST 功能:目的操作数1目的操作数 *不影响CF,影响OF、SF、ZF、AF、PF 例:INC BX INC BYTE PTR BX DEC EAX DEC WORD PTRSI,四、比较指令,格式 CMP DEST,SRC 功能:目的操作数源操作数 (1)若目、源为无符号数 CF=0 则目源 (若ZF=1,则目=源) CF=1 则目源 (2)若目、源为带符号数 若目、源为同号数(OF=0) 若均为正,SF=0 则目源(若ZF=1,则目=源) SF=1 则目源 若均为负 ,SF=0 则目源(若ZF=1,则目=源) SF=1 则目源,若目、源为异号数(OF=0或1) 若目为正,源为负 则目源 若此时 SF=0 则OF=0 若此时 SF=1 则OF=1 若目为负,源为正 则目源 若此时 SF=1 则OF=0 若此时 SF=0 则OF=1 综合起来,若目、源为带符号数 OFSF=0 则目源 OFSF=1 则目源,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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