• 常用汇编


    1.基本语法

    2. 常用汇编指令

    2.1 数据交换指令

    2.1.1 通用数据传送指令

    MOV----> move
    MOVSX---->extended move with sign data
    MOVZX---->extended move with zero data
    PUSH---->push
    POP---->pop
    PUSHA---->push all
    POPA---->pop all
    PUSHAD---->push all data
    POPAD---->pop all data
    BSWAP---->byte swap
    XCHG---->exchange
    CMPXCHG---->compare and change
    XADD---->exchange and add
    XLAT---->translate
    

    2.1.2 输入输出端口传送指令

    IN---->input
    OUT---->output
    

    2.1.3 目的地址传送指令.

    LEA---->load effective address
    LDS---->load DS
    LES---->load ES
    LFS---->load FS
    LGS---->load GS
    LSS---->load SS
    

    2.1.4 标志传送指令.

    LAHF---->load AH from flag
    SAHF---->save AH to flag
    PUSHF---->push flag
    POPF---->pop flag
    PUSHD---->push dflag
    POPD---->pop dflag
    

    2.2 算术运算指令

    ADD---->add
    ADC---->add with carry
    INC---->increase 1
    AAA---->ascii add with adjust
    DAA---->decimal add with adjust
    SUB---->substract
    SBB---->substract with borrow
    DEC---->decrease 1
    NEC---->negative
    CMP---->compare
    AAS---->ascii adjust on substract
    DAS---->decimal adjust on substract
    MUL---->multiplication
    IMUL---->integer multiplication
    AAM---->ascii adjust on multiplication
    DIV---->divide
    IDIV---->integer divide
    AAD---->ascii adjust on divide
    CBW---->change byte to word
    CWD---->change word to double word
    CWDE---->change word to double word with sign to EAX
    CDQ---->change double word to quadrate word
    

    2.3 逻辑运算指令

    AND---->and
    OR---->or
    XOR---->xor
    NOT---->not
    TEST---->test
    SHL---->shift left
    SAL---->arithmatic shift left
    SHR---->shift right
    SAR---->arithmatic shift right
    ROL---->rotate left
    ROR---->rotate right
    RCL---->rotate left with carry
    RCR---->rotate right with carry
    

    2.4 串指令

    MOVS---->move string
    CMPS---->compare string
    SCAS---->scan string
    LODS---->load string
    STOS---->store string
    REP---->repeat
    REPE---->repeat when equal
    REPZ---->repeat when zero flag
    REPNE---->repeat when not equal
    REPNZ---->repeat when zero flag
    REPC---->repeat when carry flag
    REPNC---->repeat when not carry flag
    

    2.5 程序转移指令

    //1>无条件转移指令(长转移)
    JMP---->jump
    CALL---->call
    RET---->return
    RETF---->return far
    
    //2>条件转移指令(短转移,-128到+127的距离内)
    JAE---->jump when above or equal
    JNB---->jump when not below
    JB---->jump when below
    JNAE---->jump when not above or equal
    JBE---->jump when below or equal
    JNA---->jump when not above
    JG---->jump when greater
    JNLE---->jump when not less or equal
    JGE---->jump when greater or equal
    JNL---->jump when not less
    JL---->jump when less
    JNGE---->jump when not greater or equal
    JLE---->jump when less or equal
    JNG---->jump when not greater
    JE----> 跳转到某个地址
    JZ---->jump when has zero flag
    JNE---->jump when not equal
    JNZ---->jump when not has zero flag
    JC---->jump when has carry flag
    JNC---->jump when not has carry flag
    JNO---->jump when not has overflow flag
    JNP---->jump when not has parity flag
    JPO---->jump when parity flag is odd
    JNS---->jump when not has sign flag
    JO---->jump when has overflow flag
    JP---->jump when has parity flag
    JPE---->jump when parity flag is even
    JS---->jump when has sign flag
    
    //3>循环控制指令(短转移)
    LOOP---->loop
    LOOPE---->loop equal
    LOOPZ---->loop zero
    LOOPNE---->loop not equal
    LOOPNZ---->loop not zero
    JCXZ---->jump when CX is zero
    JECXZ---->jump when ECX is zero
    
    //4>中断指令
    INT---->interrupt
    INTO---->overflow interrupt
    IRET---->interrupt return
    
    //5>处理器控制指令
    HLT---->halt
    WAIT---->wait
    ESC---->escape
    LOCK---->lock
    NOP---->no operation
    STC---->set carry
    CLC---->clear carry
    CMC---->carry make change
    STD---->set direction
    CLD---->clear direction
    STI---->set interrupt
    CLI---->clear interrupt
    

    2.6 伪指令

    DW---->definw word
    PROC---->procedure
    ENDP---->end of procedure
    SEGMENT---->segment
    ASSUME---->assume
    ENDS---->end segment
    END---->end 
    
  • 相关阅读:
    POJ1006: 中国剩余定理的完美演绎(非原创)
    poj 1001 分析
    document.createElement()的用法
    js innertext
    转csdn-css4
    css中最基本几个选择器
    Django解决(1146, "Table 'd42.django_session' doesn't exist")方法
    django清理migration终极解决办法
    linux中的fork炸弹
    nginx转发php文件到php-fpm服务器提示502错误
  • 原文地址:https://www.cnblogs.com/Desneo/p/7581881.html
Copyright © 2020-2023  润新知