飘云阁

 找回密码
 加入我们

QQ登录

只需一步,快速开始

查看: 19907|回复: 79

[转贴] 轻松学汇编-初学者必读

    [复制链接]
  • TA的每日心情

    昨天 17:20
  • 签到天数: 1757 天

    [LV.Master]伴坛终老

    发表于 2009-11-10 08:30:48 | 显示全部楼层 |阅读模式
    汇编基础知识④

    算术运算指令,逻辑运算指令,移位指令

    一.        算数运算指令

    1加减法运算指令:ADD,ADC,INC,SUB,SBB,DEC,NEG,CMP
    1-1.ADD(add)加法
    受影响的标志位:AF、CF、OF、PF、SF和ZF
    1-2.ADC(add with carry)带进位加法
    将该指令执行前的CF值加至目的操作数,受影响的标志位:AF、CF、OF、PF、SF和ZF
    举例:01 ADC eax,ecx




    1-3.INC(increment)加1
    受影响的标志位:AF、OF、PF、SF和ZF,不影响CF,指令的功能是把操作数的值加1。
    1-4.SUB(subtract)减法
    受影响的标志位:AF、CF、OF、PF、SF和ZF
    1-5.SBB(subtract withborrow)带借位减法
    减去该指令执行前CF值,受影响的标志位:AF、CF、OF、PF、SF和ZF
    举例:01 SBB eax,ecx


    Eax=20 Ecx=10








    1-6.DEC(Decrement)减1
    受影响的标志位:AF、OF、PF、SF和ZF,不影响CF,指令的功能是把操作数的值减去1。
    1-7.NEG(Negate)求补
    受影响的标志位:AF、CF、OF、PF、SF和ZF,指令的功能:操作数=0-操作数,即改变操作数的正负号
    1-8.CMP(Compare)比较

    2 乘除法运算指令:MUL,IMUL,DIV,IDIV
    2-1.MUL(Unsigned Multiple)无符号数乘法
    和 8086 功能用法一样,即指令中只给出一个操作,被乘
    数已默认,如果指令给出的操作数是 32 位的话,被乘数默认为 EAX,那么乘积将存放在
    EDX:EAX 中,其中 EDX 存放高 32 位,EAX 存放低 32 位,如果此时 EDX=0,即高 32
    位为 0 的话,那么 OF=0,CF=0,否则被置 1。如果指令给出的操数作是16 位的话,被乘数默认为 AX 那么乘积将放在 DX:AX 中,其中 DX 中将存放高 16 位,AX 中存放低 16
    位。如果指令给出的操作数是8 位的话,被乘数默认为 AL,那么乘积将放在 AX,AH 中存
    放高 8 位,AL中存放低 8 位。
    举例:01 mul ebx



    2-2.IMUL(Signed Multiple)带符号数乘法
    举例:01.IMUL EAX,EBX




    02.IMUL EAX,EBX,3




    2-3.DIV(Unsigned divide)无符号数除法
    和 8086 一样,指令给出一个操作数,被除数已默认。如果指令中给出的操作数为 32, 那么被除数将是EDX: EAX,最终的商将存放在EAX,余数将存放在 EDX 中。如果指令给出操作数为 16 位,那么被除数为 EAX,最终得到的商放在 AX,余数放在EAX 的高16位。如果指令中给出的操作数为8 位,那么被除数是16 位,最终得到的商将放在 AL中,余数放在 AH 中。
    举例:01. DIV ebx




    2-4.IDIV(Signed divide)带符号数除法

    3 符号扩展指令:CBW,CWD
    3-1.CBW(Convert byte to word)字节转换为字
    3-2.CWD(Convert word to doubule word)字转换双字
    3-3.CWDE
    将AX中16位有符号的符号位扩展到EAX的高16位中,即把AX的16位有符号数扩展到32位后,送EAX
    举例:01.CWDE




    3-4.CDQ
    将Eax中32位有符号数扩展到EDX;EAX寄存器对中,使之成为64位有符号数,即将EAX中的符号位扩展到EDX
    举例:01.CDQ




    二.        逻辑运算指令
    AND,OR,NOT,XOR,TEST
    1.ADD(and)逻辑与
    2.OR(or)  逻辑或
    3.NOT(not)逻辑非
    4.XOR(exclusive or)异或
    5.TEST(test)测试

    三.        移位指令
    SHL,SHR,SAL,SAR,ROL,ROR,RCL,RCR
    1.SHL(shift logical left)逻辑左移
    2.SHR(shift logical right)逻辑右移
    3.SAL(shift arithmetic left)算数左移
    4.SAR(shift arithmetic right)算数右移
    说明:SAL, SHL相当于乘法;SAR,SHR 相当于除法 (2的关系)
    5.ROL(Rotate left)循环左移
    6.ROR(Rotate right)循环右移
    7.RCL(Rotate left through cazzy)带进位算数左移
    8.RCR(Rotate right thourgh cazzy)带进位循环右移

    感觉图文并茂,很适合新手,所以转过来了。

                                      谁能告诉我,我做的对吗?  /:013

    [ 本帖最后由 月无影 于 2009-11-10 08:41 编辑 ]

    汇编基础知识④.rar

    322.75 KB, 下载次数: 476, 下载积分: 飘云币 -2 枚

    评分

    参与人数 1威望 +4 收起 理由
    醉月清风 + 4 神马都是浮云

    查看全部评分

    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2018-5-11 19:28
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2009-11-10 16:34:51 | 显示全部楼层
    很好啊 谢谢/:good :loveliness:
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-11-10 19:49:52 | 显示全部楼层
    这个很好,图文教程对新手来说易学..
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-10-22 12:29
  • 签到天数: 5 天

    [LV.2]偶尔看看I

    发表于 2009-11-10 20:24:37 | 显示全部楼层
    不错
    支持你
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-11-11 09:15:07 | 显示全部楼层
    复制下来自己看了。感谢哦
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-11-13 10:40:00 | 显示全部楼层
    图文并茂.
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-11-13 21:24:46 | 显示全部楼层
    收藏,学习。。
    PYG19周年生日快乐!
  • TA的每日心情
    开心
    2023-2-3 08:41
  • 签到天数: 31 天

    [LV.5]常住居民I

    发表于 2009-11-16 11:44:56 | 显示全部楼层
    基础知识,谢谢
    PYG19周年生日快乐!

    该用户从未签到

    发表于 2009-11-17 01:35:13 | 显示全部楼层
    好东西谢谢您的分析.
    PYG19周年生日快乐!
  • TA的每日心情
    无聊
    2020-11-30 18:58
  • 签到天数: 7 天

    [LV.3]偶尔看看II

    发表于 2009-11-17 09:50:58 | 显示全部楼层
    初学汇编,感谢。。。。
    PYG19周年生日快乐!
    您需要登录后才可以回帖 登录 | 加入我们

    本版积分规则

    快速回复 返回顶部 返回列表