zoukankan      html  css  js  c++  java
  • 汇编指令之set

    汇编set语句:

    实现无分支比较, 不断流水线

    39383E46  |.  83F9 09       cmp ecx,0x9
    39383E49  |.  0F97C0        seta al

    cmp 比较两个操作数,结果保存在FLAG寄存器中(同sub运算,不同在于不影响操作数, 只影响flag寄存器)

    seta 的 a 表示无符号数的 above 大于,即 (和条件跳转语句同理)

    如果 ecx > 9 ,则把al寄存器的值置1

    否则置0

    cmp $eax,%edx
    setb $cl

      

    cmp 比较两个操作数,结果保存在FLAG寄存器中

    setb 的 b 表示无符号数的 below 小于,即 (和条件跳转语句同理)

    如果 %eax < %edx ,则把cl寄存器的值置1

    否则置0

    Ps:是值置1,而不是寄存器的某一位

    当然 %eax < %edx 是从我们人的角度来看的

    对计算机而言,要看 FLAG 寄存器的标志位

    无符号,小于,则看CF足矣

    如果CF=1 且 ZF=0 则不够减,则小于,则寄存器 cl 置1

    如果CF=0 且 ZF=0 则够减,则不是小于,则寄存器 cl 置0

  • 相关阅读:
    有没有用户体验+UI+前端集于一身的人
    ruby array.count
    ruby subset
    向李刚同学道歉
    rails3转载
    RVM and Capistrano
    paperclip自定制文件名
    ruby爬虫
    rails3已经内置subdomain
    摘录
  • 原文地址:https://www.cnblogs.com/hjbf/p/13197285.html
Copyright © 2011-2022 走看看