第六章32位指令及其编程 4.地址传送 LEAr16,mem;16位段同8086指令;32位段中,计算存储 单元的32位有效地址,取低16位送r16 LEAr32,mem;16位段中,计算存储单元的16位有效地址, 经0位扩展后送r32;32位段中,计算存储 单元的32位有效地址,送r32 例如: mov ebx, 12345678h lea dx,[ebx+4321h];取1234999h的低16位,不管是16 位段还是32位段,DX的值是相同的 lea esi,[ebx+1111h];32位段中es=12346789h;16位段 中,esi=00006789h
第 六 章 32 位 指 令 及 其 编 程 4.地址传送 26 4.地址传送 LEA r16,mem;16位段同8086指令;32位段中,计算存储 单元的32位有效地址,取低16位送r16 LEA r32,mem;16位段中,计算存储单元的16位有效地址, 经0位扩展后送r32; 32位段中,计算存储 单元的32位有效地址,送r32 例如: mov ebx,12345678h lea dx,[ebx+4321h];取12349999h的低16位,不管是16 位段还是32位段,DX的值是相同的 lea esi,[ebx+1111h];32位段中esi=12346789h;16位段 中,esi=00006789h
第六章32位指令及其编程 ldsr16,mem;同8086指令 ldsr32,mem;将存储单元内的段地址送ds,偏移地址送r32, 段地址为2个字节,偏移地址为4个字节,共6字节48位。 lesr16/r32,mem;段寄存器用es,其余同上。 新增指令: LFS r16/r32. mem 移 LGS r16/ 32, mem LSS r16/ 32. mem 段 mem-
第 六 章 32 位 指 令 及 其 编 程 地址传送 27 lds r16,mem;同8086指令 lds r32,mem;将存储单元内的段地址送ds,偏移地址送r32, 段地址为2个字节,偏移地址为4个字节,共6字节48位。 les r16/r32,mem;段寄存器用es,其余同上。 新增指令: LFS r16/r32,mem LGS r16/r32,mem LSS r16/r32,mem mem 段 址 偏 移 地 址
第六章32位指令及其编程 5.1/0传送 IN AL/AX/EAX, i8 IN AL/AX/EAX, dx OUT i8 AL/AX/EAX ouT dx, AL/AX/EAX 可实现双字的输入输出操作。 「回62
第 六 章 32 位 指 令 及 其 编 程 5.I/O 传送 28 5.I/O 传送 IN AL/AX/EAX,i8 IN AL/AX/EAX,dx OUT i8,AL/AX/EAX OUT dx,AL/AX/EAX 可实现双字的输入输出操作。 回 6.2
第六章32位指令及其编程 6.2.2算术运算类指令 1.加法减法运算 ADD/ADC/INC SUB/SBB/DEC/NEG/CMP 操作数可使用32位,mem可使用32位寻址方式,其 他均与8086指令相同。 622
第 六 章 32 位 指 令 及 其 编 程 6.2.2 算术运算类指令 29 6.2.2 算术运算类指令 1.加法减法运算 ADD/ADC/INC SUB/SBB/DEC/NEG/CMP 操作数可使用32位,mem可使用32位寻址方式,其 他均与8086指令相同
第六章32位指令及其编程 2乘除法运算 MULr8/m8;MULr16/m16;同8086指令 MUL r 32/m 32: EDX EAX+EAX*r 32/m32 MULr8/m8; IMUL r16/m16;同8086指令 I MUL r 32/m 32: EDX EAX+EAX=*r 32/m32 ()DVr8/m8;()Dvr16/m16;同8086 ()D|Vr32/m32;EAX←EDX.EAX÷r32/m32的商 ;EDX←余数
第 六 章 32 位 指 令 及 其 编 程 2.乘除法运算 30 2.乘除法运算 MUL r8/m8 ;MUL r16/m16;同8086指令 MUL r32/m32; EDX.EAX←EAX*r32/m32 IMUL r8/m8 ;IMUL r16/m16;同8086指令 IMUL r32/m32; EDX.EAX←EAX*r32/m32 (I)DIV r8/m8;(I)DIV r16/m16;同8086 (I)DIV r32/m32;EAX←EDX.EAX÷r32/m32的商 ;EDX ← 余数