l198738655
l198738655
2017-01-15 04:37
采纳率: 100%
浏览 4.9k
已采纳

汇编语言怎么判断一个数在某个范围内

求大神告诉,怎么判断一个数在某个范围内,比如5判断其在4~6范围内。因为汇编只有大于或等于小于或等于或者大于小于不能像C语言那样可以a=5 ;(a>4&&a<6),求用汇编怎么写

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • xtaeee
    asyt1299 2017-01-15 06:40
    已采纳

    用cmp 指令

    mov al,5
    mov bl,5
    cmp al,bl

    点赞 评论
  • justin_bkdrong
    枫舞的季节 2017-01-15 09:15

    如果是有符号的比较,则使用 jg 表示高于 jl 表示低于

    点赞 评论
  • Water__Wei
    Water__Wei 2017-01-19 03:13

    你做两次判断不就好了。

    点赞 评论
  • caozhy
     je 相等跳转
    jne 不等跳转
    jg 大于跳转
    jl 小于跳转
    jge 大于等于跳转
    jle 小于等于跳转
    
    点赞 评论
  • justin_bkdrong
    枫舞的季节 2017-01-15 09:14

    没写过汇编也可以解决这个问题,比如写个函数
    bool cmpNumber(int value , int MinValue,int MaxValue)
    {
    return value >MinValue && value<MaxValue;
    }
    然后如果用vs 的话,可以生成汇编代码,然后把汇编代码复制上就可以了。

    如果是要学点儿知识的话:

    无符号的比较是这样:
    这个函数就是 如果 x>minValue && x <maxValue 返回 1 否则返回 0
    这是用masm实现
    cmpNumber proc x : DWORD , minValue : DWORD ,maxValue : DWORD
    ;默认返回值
    mov eax , 0
    MOV edx , x
    cmp edx , minValue
    ja $f
    jmp ret_jmp
    $$:
    cmp edx , maxValue
    jb $f
    jmp ret_jmp
    $$:
    mov eax ,1
    ret_jmp:
    ret
    cmpNumber endp

    点赞 评论

相关推荐