为了描述方便,采用下列符号约定 dest 目的操作数 mem mem8/mem16/mem 32 src 源操作数 mem64—64位内存操作数 第n个操作数,如 lordi,oprd2,oprd3 imm 8 8位立即数 赋值 imm1616位立即数 或者 imm32 32位立即数 8位通用寄存器 AH/AL/BHBL/CH//DL imm imm8/imm16/imm 32 regl 16位通用寄存器 AX/BX/CX/DX/SI/DI/BP/SP reg32 32位通用寄存器 EAX/EBX/ECX/EDX/ESI/EDI/EBP/ESP reg/regl 6/reg32 段寄存器 CS/DS/SS/ES/FS/GS mem 8 8位内存操作数 mem16 16位内存操作数 mem 32 32位内存操作数 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 ▪为了描述方便,采用下列符号约定: dest — 目的操作数 src — 源操作数 oprdn — 第n个操作数,如oprd1, oprd2, oprd3 = — 赋值 / — 或者 reg8 — 8位通用寄存器AH/AL/BH/BL/CH/CL/DH/DL reg16 — 16位通用寄存器AX/BX/CX/DX/SI/DI/BP/SP reg32 — 32位通用寄存器EAX/EBX/ECX/EDX/ESI/EDI/EBP/ESP reg — reg8/reg16/reg32 seg — 段寄存器CS/DS/SS/ES/FS/GS mem8 — 8位内存操作数 mem16 — 16位内存操作数 mem32 — 32位内存操作数 mem — mem8/mem16/mem32 mem64 — 64位内存操作数 imm8 — 8位立即数 imm16 — 16位立即数 imm32 — 32位立即数 imm — imm8/imm16/imm32
3.3.1数据传送指令 1.MoⅤ(Move):传送 一般飛式 MOv dest src;dest=src。将源操作数src复制到目的操作数dest,src不变。 语法格式: MOV reg/mem/seg, reg/mem/seg/imm 对标志位的影响:无 说明 dest与src不能作如下搭配 MOV mem. mem 错误 MOV seg, seg 错误 MOV seg, Imm 错误 des不能是CS。 dest与src必须类型匹配,即同时是字节、字或双字类型。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 3.3.1 数据传送指令 1. MOV ( Move ):传送 一般形式: MOV dest, src ; dest = src。将源操作数src复制到目的操作数dest,src不变。 语法格式: MOV reg/mem/seg, reg/mem/seg/imm 对标志位的影响:无。 说明: ▪ dest与src不能作如下搭配: MOV mem, mem ; 错误 MOV seg, seg ; 错误 MOV seg, imm ; 错误 ▪ dest不能是CS。 ▪ dest与src必须类型匹配,即同时是字节、字或双字类型
3.3.1数据传送指令 2XCHG( Exchange):交换 一般形式 XCHG oprdl, oprd2 交换opd与oprd的内容 语法格式: XCHG reg/mem. reg/mem 对标志位的影响:无。 说明 " oprdl与oprd2不能作如下搭配 XCHG mem. mem 错误 " opal与oprd类型必须匹配。、 【例】 xchg ebx, edx [ebpjleax*4], edx 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 3.3.1 数据传送指令 2. XCHG ( Exchange ):交换 一般形式: XCHG oprd1, oprd2 ; 交换oprd1与oprd2的内容 语法格式: XCHG reg/mem, reg/mem 对标志位的影响:无。 说明: ▪oprd1与oprd2不能作如下搭配: XCHG mem, mem ; 错误 ▪oprd1与oprd2类型必须匹配。、 【例】 xchg ebx, edx xchg [ebp][eax*4], edx
3.3.1数据传送指令 3.LEA( Load Effective Address):装入有效地址 语法格式 LEA reg16 mem regl6=mem的有效地址 对标志位的影响:无。 【例】设BX=5678H,EAX=1,EDX=2 执行后,SI=567AH 2 eaxledx 执行后,SI=5 4.LDS、LES 语法格式: LDS reg16 mem 32 reg16=mem32的低字,DS=mem32的高字 LES reg16, mem32 reg16=mem32的低字,ES=mem32的高字 对标志位的影响:无。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 3.3.1 数据传送指令 3. LEA (Load Effective Address ) :装入有效地址 语法格式: LEA reg16, mem ; reg16 = mem的有效地址 对标志位的影响:无。 【例】设BX = 5678H,EAX = 1,EDX = 2。 lea si, 2[bx] ; 执行后,SI = 567AH lea si, 2[eax][edx] ; 执行后,SI = 5 4. LDS、LES 语法格式: LDS reg16, mem32 ; reg16 = mem32的低字,DS = mem32的高字 LES reg16, mem32 ; reg16 = mem32的低字,ES = mem32的高字 对标志位的影响:无
3.3.1数据传送指令 5.堆栈操作指令 80x86系统的堆栈具有如下特点 堆栈是在内存的堆栈段中,具有“先进后出”的特点。 ■堆栈只有一个出入口,即当前栈顶。当堆栈为空时,栈顶和栈底指向同一内存单 元 ■堆栈有两个基本操作:PUSH(进栈)和POP(出栈)。PUSH操作使栈顶向低地 址方向移动,而POP操作则刚好相反。 堆栈操作只能以字或双字为单位。 SS:SP指向栈顶。 2021//21 80x86汇编语言程序设计
2021/1/21 80x86汇编语言程序设计 3.3.1 数据传送指令 5. 堆栈操作指令 80x86系统的堆栈具有如下特点: ▪ 堆栈是在内存的堆栈段中,具有“先进后出”的特点。 ▪ 堆栈只有一个出入口,即当前栈顶。当堆栈为空时,栈顶和栈底指向同一内存单 元。 ▪ 堆栈有两个基本操作:PUSH(进栈)和POP(出栈)。PUSH操作使栈顶向低地 址方向移动,而POP操作则刚好相反。 ▪ 堆栈操作只能以字或双字为单位。 ▪ SS:SP指向栈顶