您的位置:首页 > 其它

汇编语言——传送指令

2016-11-02 23:15 1071 查看
一.传送指令

1.通用传送指令MOV

MOV DST,SRC;将SRC传送到DST中

DSTSRC操作位数
mem/regimm8/16
mem/reg/segreg8/16
reg/segmem 8/16
mem/regseg 8/16
imm是立即数,reg是寄存器,seg是段寄存器,mem是主存单元
注意:

①两个操作数的类型要一致

②两个操作数不能都是mem
③段寄存器操作的限制
不允许立即数传送给段寄存器
不允许直接改变CS值
不允许段寄存器之间的直接数据传送

2.堆栈操作指令
PUSH/POP

PUSH SRC
POP DST

;SP←(SP)-2 ;DST←((SP))
;(SP)←(SRC) ;SP←(SP)+2

SRC/DST
SEG
REG16
MEM16
注意:DST不能为CS

交换指令XCHG,把两个位置的数据进行互换

XCHG DST,SRC ;

DST SRC操作位数
mem/regreg8/16
regmem8/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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: