第11章80x86汇编语言程序设计

第11章80x86汇编语言程序设计

ID:5422169

大小:786.00 KB

页数:183页

时间:2017-11-11

第11章80x86汇编语言程序设计_第1页
第11章80x86汇编语言程序设计_第2页
第11章80x86汇编语言程序设计_第3页
第11章80x86汇编语言程序设计_第4页
第11章80x86汇编语言程序设计_第5页
资源描述:

《第11章80x86汇编语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第11章80x86汇编语言程序设计6/16/20211有效地址(effectiveaddressEA)——操作数在段的偏移地址寻址方式——产生有效地址的方法80x86的寻址方式有:1、立即寻址2、寄存器寻址3、直接寻址4、寄存器间接寻址5、寄存器相对寻址6、基址变址寻址7、基址变址相对寻址8、比例变址寻址9、基址比例变址寻址10、相对基址比例变址寻址3-10均是与存储器有关的寻址方式,其中,8—10仅适用于80386及其后继机型,11.180x86的寻址方式6/16/202121、立即寻址操作数

2、以常量形式直接放在指令中,紧跟在操作码之后机器码存放形式如下:代码段代码段OP操作码OP操作码D8操作数低位D16操作数高位D16立即寻址示例MOVAH,-40;-40AHMOVAX,34D8H;34HAH,D8HALMOVAX,-40;0FFD8H(-40)AXMOVEAX,12345678H;12345678HEAX我们首先讨论两种与存储器无关的寻址方式:6/16/202132、寄存器寻址操作数存放在某个寄存器中,指令指定寄存器号指令寄存器寄存器号操作数寄存器号操作数寄存器寻址示例

3、MOVAH,BL;(BL)-->AHMOVDS,AX;(AX)-->DSMOVSI,AX;(AX)-->SIMOVECX,EDX;(EDX)ECX说明:立即和寄存器寻址方式不需访问存储器即可得到操作数,速度快6/16/20214有效地址(EA)的4种组成成分:位移量(displacement)存放在指令中的8位、16位或32位的数,是一个地址有效地址的计算:EA=基址+(变址*比例因子)+位移量比例因子(scalefactor)其值可为1,2,4或8,386及其后继机型新增加的变址(index

4、)存放在变址寄存器中的内容,用于访问数组的某个元素基址(base)存放在基址寄存器中的内容,用于指向数组的首地址下面我们来讨论余下的几种与存储器有关的寻址方式,先介绍几个概念:6/16/2021516/32位寻址时有效地址四种成分的组成四种成分16位寻址32位寻址位移量0,8,16位0,8,32位基址寄存器BX,BP任何32位通用寄存器(包括ESP)变址寄存器SI,DI除ESP以外的32位通用寄存器比例因子无1,2,4,86/16/20216访存类型所用段及寄存器缺省选择规则指令代码段CS用于取

5、指堆栈堆栈段SS所有的堆栈的进栈和出栈任何用ESP或EBP作为基址寄存器的访存目的串附加数据段ES串处理指令的目的串局部数据数据段DS除相对于堆栈以及串处理的目的串以外的所有数据访问默认段选择规则6/16/20217不允许使用段超越前缀的情况:(1)串操作指令的目的串必须用ES段(2)PUSH指令的目的和POP指令的源必须用SS段(3)程序的指令必须存放在CS段访问非默认段数据的方法——段超越数据的存放比较灵活,除了放在默认的DS段,还可以存放在别的段,此时访问他们需要使用段超越前缀,可用的段超

6、越前缀有CS:,DS:,ES:,SS:,FS:,GS:。段超越举例:MOVAX,[10H];DS段10H处的一个字的数据赋给AX寄存器MOVAX,ES:[10H];ES段10H处的一个字的数据赋给AX寄存器6/16/202183、直接寻址操作数地址的偏移量(有效地址)在指令中物理地址=指定段的段基址*16+偏移量系统默认,操作数在数据段段基地址EA操作数+指令存储器MOVAX,2000H;立即寻址MOVAX,[2000H];直接寻址6/16/20219直接寻址示例1MOVAX,[1000H]物理

7、地址设(DS)=10A0H10A00H代码段+1000HOP11A00H00H10H数据段11A00H30H50H50H30HAX(本章中图示存储器地址从上到下递增)低地址6/16/202110直接寻址示例2MOVBL,ES:[0100H]物理地址设(ES)=3000H30000H(DS)=2000H+0100H30100H30100H4B00BL4B在汇编语言指令中,可以用符号地址代替数值地址如:MOVAX,BUFF或MOVAX,[BUFF]其中BUFF为存放数据单元的符号地址。6/16/20

8、21114、寄存器间接寻址操作数在存储器中,操作数地址的偏移量在寄存器中基址或变址寄存器EA操作数+存储器指令寄存器段基地址寄存器间接寻址示例MOVAL,[BX]MOVAX,CS:[SI]MOVECX,[EDX]MOVAH,[BP]6/16/202112MOVAH,[BP]MOVBX,[SI]MOVCX,SI设(SS)=1000H,(DS)=2000H,(BP)=0B10H,(SI)=032AH物理地址物理地址10000H20000H+0B10H+032AH10B10H2032AH40H00H3

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。