文章 | 入侵攻击 | 安全防御 | 操作系统 | 建站技术 | 脚本编程 | 路由交换 | 灾难恢复 | 新闻资讯 | 安全公告   
下载 | 漏洞扫描 | 加密破解 | 入侵攻击 | 后门木马 | 溢出程序 | 综合工具 | 安全防护 | 原创发布 | 动画教程 
论坛 | 配服务器 | 黑客情感 | 免费资源 | 爆笑贴图 | 灌水无罪 | 会员照片 | 在线服务 | 站长博客 | 网站首页 
 您现在的位置: 华夏黑客联盟 >> 攻防技术 >> 脚本编程 >> 文章正文  

8088 汇编速查手册

www.hxhack.com 阅读: 时间:2007-7-19 3:20:11 整理:华夏黑盟
------------------------------------------------------------------

 
一、数据传输指令
───────────────────────────────────────
    它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据.
    1. 通用数据传送指令.
        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 )
    2. 输入输出端口传送指令.
        IN      I/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:DI.
        LFS    传送目标指针,把指针内容装入FS.
          例: LFS DI,string  ;把段地址:偏移地址存到FS:DI.
        LGS    传送目标指针,把指针内容装入GS.
          例: LGS DI,string  ;把段地址:偏移地址存到GS:DI.
        LSS    传送目标指针,把指针内容装入SS.
          例: LSS DI,string  ;把段地址:偏移地址存到SS:DI.
    4. 标志传送指令.
        LAHF    标志寄存器传送,把标志装入AH.
        SAHF    标志寄存器传送,把AH内容装入标志寄存器.
        PUSHF  标志入栈.
        POPF    标志出栈.
        PUSHD  32位标志入栈.
        POPD    32位标志出栈.

二、算术运算指令
───────────────────────────────────────
          ADD    加法.
        ADC    带进位加法.
        INC    加 1.
        AAA    加法的ASCII码调整.
        DAA    加法的十进制调整.
        SUB    减法.
        SBB    带借位减法.
        DEC    减 1.
        NEC    求反(以 0 减之).
        CMP    比较.(两操作数作减法,仅修改标志位,不回送结果).
        AAS    减法的ASCII码调整.
        DAS    减法的十进制调整.
        MUL    无符号乘法.
        IMUL    整数乘法.
          以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算),
        AAM    乘法的ASCII码调整.
        DIV    无符号除法.
        IDIV    整数除法.
          以上两条,结果回送:
              商回送AL,余数回送AH, (字节运算);
          或  商回送AX,余数回送DX, (字运算).
        AAD    除法的ASCII码调整.
        CBW    字节转换为字. (把AL中字节的符号扩展到AH中去)
        CWD    字转换为双字. (把AX中的字的符号扩展到DX中去)
        CWDE    字转换为双字. (把AX中的字符号扩展到EAX中去)
        CDQ    双字扩展.    (把EAX中的字的符号扩展到EDX中去)

三、逻辑运算指令
───────────────────────────────────────
          AND    与运算.
        OR      或运算.
        XOR    异或运算.
        NOT    取反.
        TEST    测试.(两操作数作与运算,仅修改标志位,不回送结果).
        SHL    逻辑左移.
        SAL    算术左移.(=SHL)
        SHR    逻辑右移.
        SAR    算术右移.(=SHR)
        ROL    循环左移.
        ROR    循环右移.
        RCL    通过进位的循环左移.
        RCR    通过进位的循环右移.
          以上八种移位指令,其移位次数可达255次.
              移位一次时, 可直接用操作码.  如 SHL AX,1.
              移位>1次时, 则由寄存器CL给出移位次数.
                如  MOV CL,04
                    SHL AX,CL

四、串指令
───────────────────────────────────────
             DS:SI  源串段寄存器  :源串变址.
            ES:DI  目标串段寄存器:目标串变址.
            CX      重复次数计数器.
            AL/AX  扫描值.
            D标志  0表示重复操作中SI和DI应自动增量; 1表示应自动减量.
            Z标志  用来控制扫描或比较操作的结束.
        MOVS    串传送.
            ( MOVSB  传送字符.    MOVSW  传送字.    MOVSD  传送双字. )
        CMPS    串比较.
            ( CMPSB  比较字符.    CMPSW  比较字. )
        SCAS    串扫描.
            把AL或AX的内容与目标串作比较,比较结果反映在标志位.
        LODS    装入串.
            把源串中的元素(字或字节)逐一装入AL或AX中.
            ( LODSB  传送字符.    LODSW  传送字.    LODSD  传送双字. )
        STOS    保存串.
            是LODS的逆过程.
        REP            当CX/ECX<>0时重复.
        REPE/REPZ      当ZF=1或比较结果相等,且CX/ECX<>0时重复.
        REPNE/REPNZ    当ZF=0或比较结果不相等,且CX/ECX<>0时重复.
        REPC          当CF=1且CX/ECX<>0时重复.
        REPNC          当CF=0且CX/ECX<>0时重复.

五、程序转移指令
───────────────────────────────────────
     1>无条件转移指令 (长转移)
        JMP    无条件转移指令
        CALL    过程调用
        RET/RETF过程返回.
    2>条件转移指令 (短转移,-128到+127的距离内)
        ( 当且仅当(SF XOR OF)=1时,OP1<OP2 )
        JA/JNBE 不小于或不等于时转移.
        JAE/JNB 大于或等于转移.
        JB/JNAE 小于转移.
        JBE/JNA 小于或等于转移.
          以上四条,测试无符号整数运算的结果(标志C和Z).
        JG/JNLE 大于转移.
        JGE/JNL 大于或等于转移.
        JL/JNGE 小于转移.
        JLE/JNG 小于或等于转移.
          以上四条,测试带符号整数运算的结果(标志S,O和Z).
        JE/JZ  等于转移.
        JNE/JNZ 不等于时转移.
        JC      有进位时转移.
        JNC    无进位时转移.
        JNO    不溢出时转移.
        JNP/JPO 奇偶性为奇数时转移.
        JNS    符号位为 "0" 时转移.
        JO      溢出转移.
        JP/JPE  奇偶性为偶数时转移.
        JS      符号位为 "1" 时转移.
    3>循环控制指令(短转移)
        LOOP            CX不为零时循环.
        LOOPE/LOOPZ    CX不为零且标志Z=1时循环.
        LOOPNE/LOOPNZ  CX不为零且标志Z=0时循环.
        JCXZ            CX为零时转移.
        JECXZ          ECX为零时转移.
    4>中断指令
        INT    中断指令
        INTO    溢出中断
        IRET    中断返回
    5>处理器控制指令
        HLT    处理器暂停, 直到出现中断或复位信号才继续.
        WAIT    当芯片引线TEST为高电平时使CPU进入等待状态.
        ESC    转换到外处理器.
        LOCK    封锁总线.
        NOP    空操作.
        STC    置进位标志位.
        CLC    清进位标志位.
        CMC    进位标志取反.
        STD    置方向标志位.
        CLD    清方向标志位.
        STI    置中断允许位.
        CLI    清中断允许位.

六、伪指令
───────────────────────────────────────
          DW      定义字(2字节).
        PROC    定义过程.
        ENDP    过程结束.
        SEGMENT 定义段.
        ASSUME  建立段寄存器寻址.
        ENDS    段结束.
        END    程序结束.

 

   -------------------------------------------------------------------------------------------
  • 上一篇文章:

  • 下一篇文章:
  •    -------------------------------------------------------------------------------------------
    用户名:
    Email:
    评论内容:
     
      精品推荐

     十招教你学会破解(学黑客
     C语言与C++有什么区别吗
     VB病毒编写——初学编程
     世界编程大赛第一名写的
     木马是如何编写的
     绝版破解软件教程就不信
     如何编写木马病毒
     隐藏cmd命令行运行
     学ASP只需一小时!
     如何提高自己的编程能力
     初学者天地--用C语言写的
     四个经典的vbs脚本整理
     Visual C++编程窃取QQ密
     怎样学好编程C语言
     跟我学做记事本
     编程语言初步知识(供菜
     一个程序员写的求爱程序
     阿拉QQ大盗盗号原理分析
     什么是vb,vb是什么意思
     成为编程高手的二十二条
     看黑客编写强力蓝屏炸弹
     C语言基础教程合集(整理
     学C++时要注意的
     C语言之精华总结
     [VB]猎取当前QQ聊天内容


    设为首页 | 软件发布 | 联系方式 | 友情链接 | 关于我们 | 本站声明 | 免责条款 | 网站留言
    Copyright © 2004-2007 Www.Hxhack.Com
    版本:华夏黑客联盟 Email:hxhack.com@163.com
    中国·广东 请使用IE6.0版本, 分辩率1024×768进行浏览
    版权所有 任意抄袭 注意完整
    粤ICP备06123842号