8086到80386汇编数据传送指令的扩展

80386及以上汇编的数据传送指令如下;

MOV     传送字或字节.  
MOVSX   先符号扩展,再传送.  
MOVZX   先零扩展,再传送.  
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)  

    已经比8086扩展了一些;

8086的数据传送指令如下;


1. MOV(传送)
2. XCHG(交换)
3. LEA(装入有效地址)
4. LDS/LES/LGS/LFS/LSS
5. PUSH(进栈)
6. POP(出栈)
7. PUSHF/POPH
8. LAHF/SAHF(标志寄存器传送指令)
9. XLAT(汇编语言查表指令)

使用emu8086来看一下;

MOVSX AX, CL 这条8086已经不能识别;

BSWAP 这条肯定是80386及以后的,交换32位寄存器里字节的顺序,是针对32位寄存器的;

 

PUSHAD是386及以后的,在emu8086中输入,8086识别的显示为蓝色,不识别的显示为黑色;

 

XLAT,汇编语言查表指令,这条是一直都有的;

LEA,LDS,LAHF 也是一直有的;

别的自己看吧;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值