2 l198738655 l198738655 于 2017.01.15 12:37 提问

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

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

5个回答

xtaeee
xtaeee   2017.01.15 14:40
已采纳

用cmp 指令

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

l198738655
l198738655 我怎么没想到,谢谢
11 个月之前 回复
justin_bkdrong
justin_bkdrong   2017.01.15 17: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

l198738655
l198738655 你这个也不错
11 个月之前 回复
caozhy
caozhy   Ds   Rxr 2017.01.15 15:02
 je 相等跳转
jne 不等跳转
jg 大于跳转
jl 小于跳转
jge 大于等于跳转
jle 小于等于跳转
justin_bkdrong
justin_bkdrong   2017.01.15 17:15

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

Water__Wei
Water__Wei   2017.01.19 11:13

你做两次判断不就好了。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!