常用汇编数据传输指令

数据传输指令:它们在存储器和寄存器、寄存器和输入输出端口之间传送数据。

1,通用数据传送指令

mov传送字或字节

movsx先符号扩展,在传送

movzx 先0扩展,再传送

push把字压入堆栈

pop把字弹出堆栈

pusha 把ax,cx,dx,bx,sp,bp,si,di依次压入堆栈

popa把di,si,bp,sp,bx,dx,cx,ax依次弹出堆栈

pushad把eax,ecx,edx,ebx,esp,ebp,esi,edi依次压入堆栈

popad把edi,esi,ebp,esp,ebx,edx,ecx,eax依次弹出堆栈

bswap交换32位寄存器里面字节的顺序

xchg交换字或字节(至少有一个操作数为寄存器,段寄存器不可作为操作数)

cmpxchg比较并交换操作数(第二个操作数必须为累加器al/ax/eax)

xadd先交换在累加(结果在第一个操作数理)

xlat字节查表转换——bx指向一张256字节的表的起点,

al为表的索引值(0-255,即0-FFH)

返回al为查表结果([bx +al]->al)


2,输入输出端口传送指令

inI/O端口输入(语法:in 累加器; {端口号 | dx})

out  I/O端口输出(语法:out {端口号 | dx}; 累加器)

输入输出端口

由立即方式指定时,其范围是0-255;

由寄存器dx指定时,其范围是0-65535


3,目的地址传送指令

lea装入有效地址 例:lea dx, string; 把偏移地址存到dx

lds传送目标指针,把指针内容装入ds 例:lds si, string; 把段地址:偏移地址存到ds:si

les传送目标指针,把指针内容装入es 例:les di,string; 把段地址:偏移地址存到es:dl

lfs传送目标指针,把指针内容装入fs 例:lfs di,string; 把段地址:偏移地址存到fs:dl

lgs传送目标指针,把指针内容装入gs 例:lgs di,string; 把段地址:偏移地址存到gs:dl

lss传送目标指针,把指针内容装入ss 例:lss di,string; 把段地址:偏移地址存到ss:dl


4,标志传送指令

lahf标志寄存器传送,把标志装入ah

sahf标志寄存器传送,把ah内容装入标志寄存器

pushf标志入栈

popf标志出栈

pushd32位标志入栈

popd32位标志出栈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值