一.传送指令
1.通用传送指令MOV
MOV DST,SRC;将SRC传送到DST中
DST | SRC | 操作位数 |
mem/reg | imm | 8/16 |
mem/reg/seg | reg | 8/16 |
reg/seg | mem | 8/16 |
mem/reg | seg | 8/16 |
2.堆栈操作指令
PUSH/POP
SRC/DST |
SEG |
REG16 |
MEM16 |
交换指令XCHG,把两个位置的数据进行互换
XCHG DST,SRC ;
DST | SRC | 操作位数 |
mem/reg | reg | 8/16 |
reg | mem | 8/16 |
3.输入/输出指令IN/OUT
输入输出寻址方式
直接寻址:只用于寻址前256个(00H~FFH) 端口,操作数port表示端口号
间接寻址:可用于寻址全部64K个端口,DX寄存器的值为端口号
对大于FFH的端口只能采用间接寻址方式
(1)输入指令IN 将外设数据传送给CPU内的AL/AX
IN AL,port
IN AX,port
;AL或AX←(port)
IN AL,DX
IN AX,DX
;AL或AX←((DX))(DX间接寻址)
(2)输出指令OUT 将CPU内的AL/AX数据传送给外设
OUT port,AL
OUT port,AX
;port←(AL)/(AX)
OUT DX,AL
OUT DX,AL
;(DX)←(AL)/(AX) (DX间接寻址)
4.换码指令XLAT 将(BX)为首址(AL)为位移量的字节存储单元中的数据送AL寄存器。
XLAT ;((BX)+(AL))→AL
5.地址传送指令LEA/ LDS/ LES /LSS
(1)取有效地址指令LEA 将存储器操作数的有效地址传送至指定的寄存器中
LEA reg,mem
;reg←mem的有效地址EA
(2)取段地址和偏移地址指令LDS/LES/LSS 将主存中指定字单元数据送入指定寄存器,下一字单元数据送段寄存器
LDS Reg,mem
;Reg←(mem),
;DS←(mem+2)