分享

常用基本汇编指令汇总(L~X)

 phylixal 2013-03-09

常用基本汇编指令汇总(L~X)


本汇总主要供个人学习使用,如果大家觉得方便自己学习尽可以拿去用,为了查阅方便,本表格按照字母顺序排序,若有错误之处希望大家予以指出!谢谢!

 

说明:SRC和DST分别表示源操作数和目的操作数,ACC表示AL/AX/EAX寄存器,PORT表示I/O端口,TEMP表示临时存储单元。REG、MEM和IMM分别表示寄存器、存储器和立即数

指令格式 作用说明 对应处理器
LAHF (AH)←(FLAGS低字节) 8086/8088
LDS REG,SRC (REG)←(SRC),(DS)←(SRC+2或4) 8086/8088
LEA REG,SRC (REG)←SRC 8086/8088
LES REG,SRC (REG)←(SRC),(ES)←(SRC+2或4) 8086/8088
LFS REG,SRC (REG)←(SRC),(FS)←(SRC+2或4) Pentium
LGS REG,SRC (REG)←(SRC),(GS)←(SRC+2或4) Pentium
LOCK 封锁指令,可作为其他指令的前缀联合使用,以保持总线的封锁信号 8086/8088
LODS 将DS:SI/ESI指向的数据串元素取到ACC中(允许带位标识后缀) 8086/8088
LOOP DST (CX/ECX)-1≠0,则循环 8086/8088
LOOPNZ/LOOPNE DST (CX/ECX)-1≠0且ZF=0,则循环 8086/8088
LOOPZ/LOOPE DST (CX/ECX)-1≠0且ZF=1,则循环 8086/8088
LSS REG,SRC (REG)←(SRC),(SS)←(SRC+2或4) Pentium
MOV DST,SRC (DST)←(SRC) 8086/8088
MOVS DS:SI/ESI指向的数据串传送到ES:DI/EDI指向的内存区(允许带位标识后缀) 8086/8088
MOVSX DST,SRC (DST)←符号扩展(SRC) 80386
MOVZX DST,SRC (DST)←零扩展(SRC) 80386
MUL SRC (AX)或(DX,AX)或(EDX,EAX)←(ACC)*(SRC),无符号 8086/8088
NEG DST (DST)←0-(DST),取操作的补码 8086/8088
NOP 空操作,使指令指针加1 8086/8088
NOT DST (DST)←(DST)取反 8086/8088
OR DST,SRC (DST)←(DST)∪(SRC) 8086/8088
OUT PORT,ACC (PORT)←(ACC) 8086/8088
OUTS 将DS:SI/ESI指向的数据串传送到DX指示的端口中去(允许带位标识后缀) 80286
POP DST (DST)←(SP或ESP),(SP或ESP)←(SP或ESP)+2或4 8086/8088
POPA/POPAD 8个16/32位通用寄存器数据依次出栈 80286
POPF FLAGS出栈 8086/8088
POPFD FLAGS出栈 80386
PUSH SRC (SP或ESP)←(SP或ESP)-2或4,(SP或ESP)←(SRC) 8086/8088
PUSHA/PUSHAD 8个16/32位通用寄存器数据依次进栈 80286
PUSHF FLAGS进栈 8086/8088
PUSHFD FLAGS进栈 80386
RCL DST,SRC 带进位循环左移,CF作为操作数的扩展,一起参加循环移位 8086/8088
RCR DST,SRC 带进位循环右移,CF作为操作数的扩展,一起参加循环移位 8086/8088
REP (CX/ECX)≠0,重复执行后续串指令,CX/ECX的数据减1 8086/8088
REPE/REPZ (CX/ECX)≠0且ZF=1,重复执行后续串指令,CX/ECX的数据减1 8086/8088
REPNE/REPNZ (CX/ECX)≠0且ZF=0,重复执行后续串指令,CX/ECX的数据减1 8086/8088
RET n 子程序返回主程序,(SP/ESP)←(SP/ESP)+n 8086/8088
ROL DST,SRC 循环左移,移出的位送到操作数的另一端,CF不参加循环移位 8086/8088
ROR DST,SRC 循环右移,移出的位送到操作数的另一端,CF不参加循环移位 8086/8088
SAHF (FLAGS低字节)←(AH) 8086/8088
SAL DST,SRC 算术左移,操作与SHL相同,但符号为发生变化时,OF置1 8086/8088
SAR DST,SRC 算术右移,操作与SHR类似,但每次移位通过复制保持符号位不变 8086/8088
SBB DST,SRC (DST)←(DST)-(SRC)-CF 8086/8088
SCAS 用ACC中的关键字扫描ES:DI/EDI指向的目标串,若相同,则ZF=1(允许带位标识后缀) 8086/8088
SETcc DST 测试指定的标志位所处的状态,根据测试结果将指定的一个8位寄存器或存储单元置0或置1 8086/8088
SHL DST,SRC 逻辑左移,SRC决定移位的次数,最高位进入标志位CF,最低位补0 8086/8088
SHLD DST,REG,SRC 双精度左移 80286
SHR DST,SRC 逻辑右移,操作与SHL类似,不同的只是移位方向相反 8086/8088
SHRD DST,REG,SRC 双精度右移 80286
STC 进位标志置1 8086/8088
STD 方向标志置1 8086/8088
STI 中断允许标志置1 8086/8088
STOS 将ACC中的内容存入ES:DI/EDI指向的内存单元中(允许带位标识后缀) 8086/8088
SUB DST,SRC (DST)←(DST)-(SRC) 8086/8088
TEST (DST)∩(SRC) 8086/8088
WAIT 是处理器处于空转状态,定期检查TEST信号是否为高电平 8086/8088
XADD DST,SRC TEMP←(DST)+(SRC),(SRC)←(DST),(DST)←TEMP 80486
XCHG DST,SRC (DST)←→(SRC) 8086/8088
XLAT tran_tab (AL)←((BX或EBX)+(AL)) 8086/8088
XOR (DST)←(DST)?(SRC)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多