欢迎来到天天文库
浏览记录
ID:40228991
大小:180.50 KB
页数:47页
时间:2019-07-27
《第3章汇编语言》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第3章80x86指令系统讲授要点3种操作数(立即数、寄存器和内存操作数)的形式。常用指令的格式、功能以及对CF、OF、SF、ZF的影响。使用指令时容易犯的错误。7/16/202180x86汇编语言程序设计3.1指令格式1.指令的书写格式标号:指令助记符操作数;注释2.操作数的3种形式:立即操作数:指令的操作数是立即数,并直接出现在指令中。寄存器操作数:操作数是寄存器的值,指令中使用寄存器名。内存操作数:操作数是某个内存单元的值,指令中给出有效地址EA,段地址在某个段寄存器中。7/16/202180x86汇编语言程序设计3.2操作数的形式3.2.18086指令
2、的操作数形式1.立即数:8位或16位立即数。2.寄存器操作数:8位/16位通用寄存器和段寄存器(除了FS和GS)。3.内存操作数包括下列几种形式。Variable或[Variable][reg]disp[reg][base][index]disp[base][index]说明:Variable是变量名或变量名±整数表达式。reg为BX、BP、SI、DI。disp可以是常量或变量,汇编后为一个常数,若是变量,则取其偏移地址。base为BX或BP,index为SI或DI。有效地址为各项之和。如disp[base][index]形式,EA=base+index+d
3、isp。若使用了BP,则隐含段地址在SS,否则在DS。当段地址不在隐含的段寄存器时,可使用段超越前缀,形式为:段寄存器名:7/16/202180x86汇编语言程序设计3.2.232位CPU扩展的操作数形式1.立即数:32位立即数。2.寄存器操作数:32位通用寄存器以及FS和GS。3.内存操作数包括下列几种形式。[base]disp[base][base][index]disp[base][index][index*n]disp[index*n][base][index*n]disp[base][index*n]说明:base、index为任一32位通用寄存器
4、(index不能取ESP)。n为比例因子,取1、2、4或8。若包含base且base为EBP或ESP,则隐含段地址在SS;否则,隐含段地址在DS。若在16位CPU上编程,则不能使用这些寻址方式。7/16/202180x86汇编语言程序设计3.3指令系统介绍设计完整程序所需的常用指令,对于其余指令,一部分在后续章节中讲授,一部分自学。介绍常用指令的格式、功能以及对CF、OF、SF、ZF的影响。7/16/202180x86汇编语言程序设计为了描述方便,采用下列符号约定:dest—目的操作数src—源操作数oprdn—第n个操作数,如oprd1,oprd2,opr
5、d3=—赋值/—或者reg8—8位通用寄存器AH/AL/BH/BL/CH/CL/DH/DLreg16—16位通用寄存器AX/BX/CX/DX/SI/DI/BP/SPreg32—32位通用寄存器EAX/EBX/ECX/EDX/ESI/EDI/EBP/ESPreg—reg8/reg16/reg32seg—段寄存器CS/DS/SS/ES/FS/GSmem8—8位内存操作数mem16—16位内存操作数mem32—32位内存操作数mem—mem8/mem16/mem32mem64—64位内存操作数imm8—8位立即数imm16—16位立即数imm32—32位立即数im
6、m—imm8/imm16/imm327/16/202180x86汇编语言程序设计3.3.1数据传送指令1.MOV(Move):传送一般形式:MOVdest,src;dest=src。将源操作数src复制到目的操作数dest,src不变。语法格式:MOVreg/mem/seg,reg/mem/seg/imm对标志位的影响:无。说明:dest与src不能作如下搭配:MOVmem,mem;错误MOVseg,seg;错误MOVseg,imm;错误dest不能是CS。dest与src必须类型匹配,即同时是字节、字或双字类型。7/16/202180x86汇编语言程序设计
7、3.3.1数据传送指令2.XCHG(Exchange):交换一般形式:XCHGoprd1,oprd2;交换oprd1与oprd2的内容语法格式:XCHGreg/mem,reg/mem对标志位的影响:无。说明:oprd1与oprd2不能作如下搭配:XCHGmem,mem;错误oprd1与oprd2类型必须匹配。、【例】xchgebx,edxxchg[ebp][eax*4],edx7/16/202180x86汇编语言程序设计3.3.1数据传送指令3.LEA(LoadEffectiveAddress):装入有效地址语法格式:LEAreg16,mem;reg16=m
8、em的有效地址对标志位的影响:无。【例】设BX=56
此文档下载收益归作者所有