8086汇编 数据传送指令

 

 

来源于IBM PC汇编语言程序设计  沈美明 温冬婵 编著

负责把 数据,地址或立即数传送到寄存器或者存储单元中.

 

1. 通用数据传送指令

MOV, PUSH, POP, XCHG

MOV指令在CPU内或CPU和存储器之间传送字节或字, 目的操作数不允许使用立即数, 也不能用CS寄存器, 不允许用MOV指令在两个存储单元之间直接传送数据,也不允许在两个段寄存器之间直接传送信息.

MOV指令不影响标志位

MOV AX, DATA_SEG,

MOV DS, AX   ;;段地址必须通过寄存器如AX送到DS寄存器

MOV AL, 'E'

MOV BX, OFFSET TABLE

MOV AX, Y[BP][SI]

 

PUSH AX

(SP)=(SP) -2

((SP)+1, (SP)) = (AX)

 

POP AX

(AX) = ((SP) +1, (SP))

(SP) = (SP) + 2

 

XCHG OPR1, OPR2

(OPR1)   (OPR2) 交换数据

 

2. 累加器专用传送指令

IN AL, PORT

IN AX, PORT

OUT PORT, AL

OUT PORT, AX

如:

IN AX, 28H

MOV DATA_WORD, AX

 

MOV DX, 3FCH

IN AX, DX

 

XLAT换码指令

 

3. 地址传送指令

LEA 有效地址送寄存器

如: LEA BX, [BX + SI + 0F62H]

(BX) = 0400H, (SI) =003CH

执行完指令后

(BX) = 0400 +003C +0F62  = 139EH

 

LES 指针送寄存器和ES指令

LES DI, [BX]

如:

LES DI, [BX]

(DS)=B000H, (BX) =080AH, (0B080H) = 05AEH, (0B080CH) = 4000H

则执行完后

(DI)=05EH ,  (ES) = 4000H

 

LDS 指针送寄存器和DS指令

如:

LDS SI , [10H]

(DS)=C000H, (C0010H) =0180H, (C0012H) = 2000H

则执行完后

(SI) = 0180H, (DS)=2000H

 

4. 标志寄存器传送指令

LAHF   标志送AH

SAHF   AH送标志寄存器

PUSHF  标志进栈

                   (SP) = (SP) - 2

                  ((SP) + 1, ( SP))  = (PSW)

POPF 标志出栈

                 (PSW) = ((SP) + 1 , (SP))

                (SP) = (SP) + 2

 

 

你可能感兴趣的:(c,汇编,IBM,table,存储,语言)