mov,xchg,adc,sbb,neg

通用数据传送指令

MOV reg/mem, imm

Mov reg/mem/seg, reg

Mov reg/seg, mem

Mov reg/mem, seg

 

Mov word ptr[bx], 1234 ;传立即数时要说明wordbyte

Mov [si], al ;al已经隐含说明数据长度

 

XCHG reg, reg/mem

 

XLAT(tanslate)

bx指定的缓冲区中,al指定的位移处的一个字节取出,赋值给al,相当于al <--- [bx+al]

 

 

 

 

Push

Pop

 

 

LAHF (Load AH from Flag) 标志寄存器的低字节送入AH

SAHF(Store AH into Flag)  AH送入标志寄存器的低字节

 

PUSHF(Push Flag) 16bit

POPF(Pop Flag) 16bit

PUSHFD  2bit

POPFD  32bit

 

 

LEA

Lea reg, mem

 

LDS reg,mem

Reg <---mem

DS <---mem+2

LES reg,mem

Reg <---mem

ES <---mem+2

 

IN AL,imm8 AL<--IO端口

IN AX,imm8

IN AL,DX

IN AX,DX

 

ADD

ADC 源操作数和目标操作数相加,再加上CF10),结果送到目标操作数

ADC AX, BX  ;AX = AX + BX + CF

例如计算12345678h+66668888h,结果用cx.dx.ax联合表示一个大数

 

 

SBB 类似ADC,只不过是减法

SBB AX, BX  ;AX = AX - BX - CF

 

NEG 求补,用0减去操作数(或者说取反加一),结果返回给操作数,相当于C语言中的取负数。

例如0-1 = -1,补码表示为FFFF,相当于0001取反加一

如三目运算:A==00-1

Mov ax, A

Neg ax

Sbb ax,ax

 

Neg ax相当于0-ax,当ax=0CF0,否则CF1

Sbb ax,ax相当于ax = ax-ax-CF,相当于ax = 0-CFCF0时结果为0CF1时结果为-1

综上,ax=0CF0CF0时结果为0

ax!=0CF1CF1时结果为-1

posted @ 2020-09-10 17:06  八转达人  阅读(453)  评论(0)    收藏  举报