第11章80x86汇编语言程序设计课件.ppt
《第11章80x86汇编语言程序设计课件.ppt》由会员分享,可在线阅读,更多相关《第11章80x86汇编语言程序设计课件.ppt(183页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、现代微机原理与接口技术现代微机原理与接口技术第第11章章 80 x86汇编语言程序设计汇编语言程序设计 1/8/20231现代微机原理与接口技术现代微机原理与接口技术有效地址有效地址有效地址有效地址(effective address EAeffective address EA)操作数在段的偏移地址操作数在段的偏移地址操作数在段的偏移地址操作数在段的偏移地址寻址方式寻址方式寻址方式寻址方式 产生有效地址的方法产生有效地址的方法产生有效地址的方法产生有效地址的方法80 x86的寻址方式有:的寻址方式有:1、立即寻址、立即寻址2、寄存器寻址、寄存器寻址3、直接寻址、直接寻址4、寄存器间接寻址、寄
2、存器间接寻址5、寄存器相对寻址、寄存器相对寻址6、基址变址寻址、基址变址寻址7、基址变址相对寻址、基址变址相对寻址8 8、比例比例比例比例变址寻址变址寻址变址寻址变址寻址9 9、基址、基址、基址、基址比例比例比例比例变址寻址变址寻址变址寻址变址寻址1010、相对基址、相对基址、相对基址、相对基址比例比例比例比例变址寻址变址寻址变址寻址变址寻址3 31010均是与存储器有关的寻址方式,其中,均是与存储器有关的寻址方式,其中,均是与存储器有关的寻址方式,其中,均是与存储器有关的寻址方式,其中,810810仅适用于仅适用于仅适用于仅适用于8038680386及其后继机型,及其后继机型,及其后继机型,
3、及其后继机型,11.1 80 x86的寻址方式的寻址方式1/8/20232现代微机原理与接口技术现代微机原理与接口技术1、立即寻址立即寻址 操作数以常量形式直接放在指令中,紧跟在操作码之后操作数以常量形式直接放在指令中,紧跟在操作码之后操作数以常量形式直接放在指令中,紧跟在操作码之后操作数以常量形式直接放在指令中,紧跟在操作码之后 机器码存放形式如下:机器码存放形式如下:代码段代码段 代码段代码段 OP 操作码操作码 OP 操作码操作码 D8 操作数操作数 低位低位 D16 操作数操作数 高位高位 D16立即寻址示例立即寻址示例 MOV AH,-40-40 ;-40AH MOV AX,34D8
4、H 34D8H ;34HAH,D8HAL MOV AX,-40-40 ;0FFD8H(-40)AX MOV EAX,12345678H12345678H;12345678HEAX 我们首先讨论两种与存储器无关的寻址方式:我们首先讨论两种与存储器无关的寻址方式:我们首先讨论两种与存储器无关的寻址方式:我们首先讨论两种与存储器无关的寻址方式:1/8/20233现代微机原理与接口技术现代微机原理与接口技术2、寄存器寻址寄存器寻址 操作数存放在某个寄存器中,指令指定寄存器号操作数存放在某个寄存器中,指令指定寄存器号操作数存放在某个寄存器中,指令指定寄存器号操作数存放在某个寄存器中,指令指定寄存器号 指
5、令指令 寄存器寄存器 寄存器号寄存器号 操作数操作数 寄存器号寄存器号操作数操作数寄存器寻址示例寄存器寻址示例 MOV AH,BLAH,BL ;(BL)-AH MOV DS,AXDS,AX ;(AX)-DS MOV SI,AXSI,AX ;(AX)-SI MOV ECX,EDXECX,EDX ;(EDX)ECX 说明:立即和寄存器寻址方式不需访问存储器即可说明:立即和寄存器寻址方式不需访问存储器即可说明:立即和寄存器寻址方式不需访问存储器即可说明:立即和寄存器寻址方式不需访问存储器即可 得到操作数,速度快得到操作数,速度快得到操作数,速度快得到操作数,速度快1/8/20234现代微机原理与接口
6、技术现代微机原理与接口技术有效地址有效地址(EA)的的4种组成成分:种组成成分:位移量位移量位移量位移量(displacement)存放在指令中的存放在指令中的8位、位、16位或位或32位的数,是一个地址位的数,是一个地址 有效地址的计算:有效地址的计算:EA=EA=基址基址基址基址 +(变址(变址(变址(变址*比例因子)比例因子)比例因子)比例因子)+位移量位移量位移量位移量 比例因子比例因子比例因子比例因子(scale factor)其值可为其值可为1,2,4或或8,386及其后继机型新增加的及其后继机型新增加的 变址变址变址变址(index)存放在变址寄存器中的内容,用于访问数组的某个元
7、素存放在变址寄存器中的内容,用于访问数组的某个元素 基址基址基址基址(base)存放在基址寄存器中的内容,用于指向数组的首地址存放在基址寄存器中的内容,用于指向数组的首地址下面我们来讨论余下的几种与存储器有关的寻址方式,下面我们来讨论余下的几种与存储器有关的寻址方式,下面我们来讨论余下的几种与存储器有关的寻址方式,下面我们来讨论余下的几种与存储器有关的寻址方式,先介绍几个概念:先介绍几个概念:先介绍几个概念:先介绍几个概念:1/8/20235现代微机原理与接口技术现代微机原理与接口技术 16/3216/32位寻址时有效地址四种成分的组成位寻址时有效地址四种成分的组成位寻址时有效地址四种成分的组
8、成位寻址时有效地址四种成分的组成 四种成分四种成分 16位寻址位寻址 32位寻址位寻址 位移量位移量 0,8,16位位 0,8,32位位基址寄存器基址寄存器 BX,BP 任何任何32位通用寄存器位通用寄存器(包括包括ESP)变址寄存器变址寄存器 SI,DI 除除ESP以外的以外的32位通用寄存器位通用寄存器 比例因子比例因子 无无 1,2,4,81/8/20236现代微机原理与接口技术现代微机原理与接口技术访存类型访存类型 所用段及寄存器所用段及寄存器 缺省选择规则缺省选择规则 指令指令 代码段代码段 CS 用于取指用于取指 堆栈堆栈 堆栈段堆栈段 SS 所有的堆栈的进栈和出栈所有的堆栈的进栈
9、和出栈 任何用任何用ESP或或EBP作为基址作为基址 寄存器的访存寄存器的访存 目的串目的串 附加数据段附加数据段 ES 串处理指令的目的串串处理指令的目的串局部数据局部数据 数据段数据段 DS 除相对于堆栈以及串处理的除相对于堆栈以及串处理的 目的串以外的所有数据访问目的串以外的所有数据访问 默认段选择规则默认段选择规则1/8/20237现代微机原理与接口技术现代微机原理与接口技术不允许使用段超越前缀的情况不允许使用段超越前缀的情况不允许使用段超越前缀的情况不允许使用段超越前缀的情况:(1)串操作指令的目的串必须用)串操作指令的目的串必须用ES段段(2)PUSH指令的目的和指令的目的和POP
10、指令的源必须用指令的源必须用SS段段(3)程序的指令必须存放在)程序的指令必须存放在CS段段访问非默认段数据的方法访问非默认段数据的方法段超越段超越数据的存放比较灵活,除了放在默认的数据的存放比较灵活,除了放在默认的DS段,还可以段,还可以存放在别的段,此时访问他们需要使用段超越前缀,存放在别的段,此时访问他们需要使用段超越前缀,可用的段超越前缀有可用的段超越前缀有CS:,DS:,ES:,SS:,FS:,GS:。段段段段超越举例:超越举例:超越举例:超越举例:MOV AX,10H ;DSMOV AX,10H ;DS段段段段10H10H处的一个字的数据赋给处的一个字的数据赋给处的一个字的数据赋给
11、处的一个字的数据赋给AXAX寄存器寄存器寄存器寄存器MOV AX,MOV AX,ES:ES:10H;ES10H;ES段段段段10H10H处的一个字的数据赋给处的一个字的数据赋给处的一个字的数据赋给处的一个字的数据赋给AXAX寄存器寄存器寄存器寄存器1/8/20238现代微机原理与接口技术现代微机原理与接口技术3、直接寻址、直接寻址 操作数地址的偏移量(有效地址)在指令中操作数地址的偏移量(有效地址)在指令中操作数地址的偏移量(有效地址)在指令中操作数地址的偏移量(有效地址)在指令中物理地址物理地址物理地址物理地址=指定段的段基址指定段的段基址指定段的段基址指定段的段基址*16+16+偏移量偏移
12、量偏移量偏移量 系统默认,操作数在数据段系统默认,操作数在数据段系统默认,操作数在数据段系统默认,操作数在数据段段基段基地址地址EA操作数操作数+指令指令存储器存储器MOV AX,2000H ;立即寻址立即寻址MOV AX,2000H ;直接寻址直接寻址1/8/20239现代微机原理与接口技术现代微机原理与接口技术直接寻址示例直接寻址示例1 MOV AX,1000H1000H 物理地址物理地址 设设(DS)=10A0H 10A00H 代码段代码段 +1000H OP 11A00H 00H 10H 数据段数据段 11A00H 30H 50H 50H 30H AX(本章中图示存储器地址从上到下递增
13、)本章中图示存储器地址从上到下递增)低地址低地址1/8/202310现代微机原理与接口技术现代微机原理与接口技术直接寻址示例直接寻址示例2MOV BL,ES:0100HES:0100H 物理地址物理地址 设设(ES)=3000H 30000H (DS)=2000H +0100H 30100H 30100H 4B 00 BL4B在在汇编语言指令中,可以用汇编语言指令中,可以用符号地址符号地址符号地址符号地址代替数值地址代替数值地址如:如:MOV AX,BUFFBUFF或或 MOV AX,BUFFBUFF其中其中其中其中BUFFBUFF为存放数据单元的符号地址。为存放数据单元的符号地址。为存放数据
14、单元的符号地址。为存放数据单元的符号地址。1/8/202311现代微机原理与接口技术现代微机原理与接口技术4、寄存器间接寻址寄存器间接寻址 操作数在存储器中,操作数地址的偏移量在寄存器中操作数在存储器中,操作数地址的偏移量在寄存器中操作数在存储器中,操作数地址的偏移量在寄存器中操作数在存储器中,操作数地址的偏移量在寄存器中基址或变址寄存器基址或变址寄存器基址或变址寄存器基址或变址寄存器EA操作数操作数+存储器存储器指令指令寄存器寄存器段基段基地址地址寄存器间接寻址示例寄存器间接寻址示例 MOV AL,BXBX MOV AX,CS:CS:SISI MOV ECX,EDXEDX MOV AH,BP
15、BP1/8/202312现代微机原理与接口技术现代微机原理与接口技术MOV AH,BPBPMOV BX,SI SIMOV CX,SI设设(SS)=1000H,(DS)=2000H,(BP)=0B10H,(SI)=032AH 物理地址物理地址 物理地址物理地址 10000H 20000H +0B10H +032AH 10B10H 2032AH 40H 00H 3EH 46H40H AHAH10B10H2032AH463EH BXBX2032BH10B11H SISI032AH032AH CXCX1/8/202313现代微机原理与接口技术现代微机原理与接口技术5、寄存器相对寻址(直接变址寻址)、寄
16、存器相对寻址(直接变址寻址)操作数的有效地址是基址(或变址)寄存器操作数的有效地址是基址(或变址)寄存器操作数的有效地址是基址(或变址)寄存器操作数的有效地址是基址(或变址)寄存器的内容加上指令中指定的位移量的内容加上指令中指定的位移量的内容加上指令中指定的位移量的内容加上指令中指定的位移量基址或变址寄存器基址或变址寄存器基址或变址寄存器基址或变址寄存器位移量位移量位移量位移量地址地址+操作数操作数指指 令令寄存器寄存器段基段基地址地址存储器存储器EA可用于数组元素的访问可用于数组元素的访问可用于数组元素的访问可用于数组元素的访问1/8/202314现代微机原理与接口技术现代微机原理与接口技术
17、寄存器相对寻址示例寄存器相对寻址示例 MOV AX,3000HSI (3000HSI (或或或或SI+3000H)SI+3000H)MOV AX,COUNTSICOUNTSI ;COUNT是符号地址是符号地址 (或或 MOV AX,COUNT+SICOUNT+SI)若若(DS)=3000H,(SI)=2000H,COUNT=3000H 30000H 2000H +3000H 35000H 1234H35000H 34H 12HAX1/8/202315现代微机原理与接口技术现代微机原理与接口技术 6、基址变址寻址、基址变址寻址 操作数的有效地址是一个基址寄存器和一个变址寄操作数的有效地址是一个基
18、址寄存器和一个变址寄操作数的有效地址是一个基址寄存器和一个变址寄操作数的有效地址是一个基址寄存器和一个变址寄存器的内容之和存器的内容之和存器的内容之和存器的内容之和基址寄存器基址寄存器基址寄存器基址寄存器变址寄存器变址寄存器变址寄存器变址寄存器变址值变址值基址值基址值+操作数操作数指指 令令变址变址寄存器寄存器基址寄存器基址寄存器段基段基地址地址存储器存储器EA1/8/202316现代微机原理与接口技术现代微机原理与接口技术基址变址寻址示例基址变址寻址示例 MOV AX,BX+DIBX+DI MOV AX,BXDIBXDI 若若(DS)=2100H,(BX)=0158H,(DI)=10A5H,
19、物理地址物理地址 21000H 0158H+10A5H 221FDH221FDH 34H 12H1234HAX1/8/202317现代微机原理与接口技术现代微机原理与接口技术7、基址变址相对寻址基址变址相对寻址 操作数的有效地址是一个基址寄存器的内容、操作数的有效地址是一个基址寄存器的内容、操作数的有效地址是一个基址寄存器的内容、操作数的有效地址是一个基址寄存器的内容、一个变址寄存器的内容及位移量之和一个变址寄存器的内容及位移量之和一个变址寄存器的内容及位移量之和一个变址寄存器的内容及位移量之和 基址寄存器基址寄存器基址寄存器基址寄存器变址寄存器变址寄存器变址寄存器变址寄存器位移量位移量位移量
20、位移量变址值变址值基址值基址值+操作数操作数指指 令令变址变址寄存器寄存器基址寄存器基址寄存器段段基地址基地址存储器存储器EA1/8/202318现代微机原理与接口技术现代微机原理与接口技术相对基址变址寻址示例相对基址变址寻址示例 MOV AX,MASKBX+SIMASKBX+SI;MASKMASK是是是是符号地址符号地址符号地址符号地址 若若(DS)=3000H,(BX)=2000H,(SI)=1000H,MASK=0250H 物理地址物理地址 30000H 2000H 1000H +0250H 33250H 33250H 20H 43H 4320H AX1/8/202319现代微机原理与接
21、口技术现代微机原理与接口技术8、比例变址寻址、比例变址寻址 操作数的有效地址是变址寄存器的内容乘以指令中操作数的有效地址是变址寄存器的内容乘以指令中操作数的有效地址是变址寄存器的内容乘以指令中操作数的有效地址是变址寄存器的内容乘以指令中指定的比例因子及位移量之和指定的比例因子及位移量之和指定的比例因子及位移量之和指定的比例因子及位移量之和变址变址变址变址寄存器寄存器寄存器寄存器 比例因子比例因子比例因子比例因子位移量位移量位移量位移量下标下标*+操作数操作数存储器存储器段段基地址基地址变址寄存器变址寄存器变址值变址值指指 令令EA1/8/202320现代微机原理与接口技术现代微机原理与接口技术
22、比例变址寻址示例比例变址寻址示例 MOV EAX,COUNTESI*4COUNTESI*4元素元素012000H元素元素1元素元素2元素元素3+1+2+3+4+12EAX存储器EA=ESI*4COUNT设设(ESI)=3,(DS)=1000HCOUNT=2000H1/8/202321现代微机原理与接口技术现代微机原理与接口技术9、基址比例变址寻址、基址比例变址寻址 操作数的有效地址是变址寄存器的内容乘以指令操作数的有效地址是变址寄存器的内容乘以指令操作数的有效地址是变址寄存器的内容乘以指令操作数的有效地址是变址寄存器的内容乘以指令中指定的比例因子加基址寄存器的内容之和中指定的比例因子加基址寄存
23、器的内容之和中指定的比例因子加基址寄存器的内容之和中指定的比例因子加基址寄存器的内容之和基址寄存器基址寄存器基址寄存器基址寄存器变址寄存器变址寄存器变址寄存器变址寄存器比例因子比例因子比例因子比例因子下标下标基址值基址值*+操作数操作数指指 令令变址变址寄存器寄存器基址寄存器基址寄存器变址值变址值段基段基地址地址存储器存储器 EA基址比例变址寻址示例基址比例变址寻址示例 MOV ECX,EBX+ESI*8MOV ECX,EBX+ESI*81/8/202322现代微机原理与接口技术现代微机原理与接口技术10、相对基址比例变址寻址、相对基址比例变址寻址 操作数的有效地址是变址寄存器的内容乘以指令中
24、操作数的有效地址是变址寄存器的内容乘以指令中操作数的有效地址是变址寄存器的内容乘以指令中操作数的有效地址是变址寄存器的内容乘以指令中指定的比例因子加基址寄存器的内容、再加位移量之和指定的比例因子加基址寄存器的内容、再加位移量之和指定的比例因子加基址寄存器的内容、再加位移量之和指定的比例因子加基址寄存器的内容、再加位移量之和基址寄存器基址寄存器基址寄存器基址寄存器变址寄存器变址寄存器变址寄存器变址寄存器比例因子比例因子比例因子比例因子位移量位移量位移量位移量下标下标基址值基址值*+操作数操作数指指 令令变址变址寄存器寄存器基址寄存器基址寄存器变址值变址值段基段基地址地址存储器存储器EA相对基址比
25、例变址寻址示例相对基址比例变址寻址示例 MOV EAX,TABLEEBX+EDI*4MOV EAX,TABLEEBX+EDI*41/8/202323现代微机原理与接口技术现代微机原理与接口技术11.2 80 x86的指令系统的指令系统n数据传送指令数据传送指令n算术运算指令算术运算指令n逻辑运算与移位指令逻辑运算与移位指令n串操作指令串操作指令n控制转移指令控制转移指令n处理器控制指令处理器控制指令80 x8680 x86指令的一般汇编语言格式:指令的一般汇编语言格式:指令的一般汇编语言格式:指令的一般汇编语言格式:标号标号标号标号:指令助记符指令助记符指令助记符指令助记符 目的操作数目的操作
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 11 80 x86 汇编语言 程序设计 课件
限制150内