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

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

用cmp 指令

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

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

你做两次判断不就好了。

 je 相等跳转
jne 不等跳转
jg 大于跳转
jl 小于跳转
jge 大于等于跳转
jle 小于等于跳转

没写过汇编也可以解决这个问题,比如写个函数
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