你如何在汇编 masm 中做一个 if not less then 语句
我在 vb.net 中有这段代码
If Not variable1 < variable2 Then
count += 1
End If
If Not variable1 < variable3 Then
count += 1
End If
msgbox.show(count)
对于此代码计数 = 1
我尝试了以下所有代码,但它不起作用。它要么在最后给我 count = 2,要么在最后给我 count = 0。它应该给我 count = 1
这是组装masm的代码
.data
variable1 dd ?
variable2 dd ?
variable3 dd ?
这就是假设发生的事情。我从文本文件中读取了 3 个值,它们是 500,109,500,它们被存储到 3 个变量中,所以
variable1 = 500
variable2 = 109
variable3 = 506
然后我需要按从小到大的顺序列出这些,所以我尝试比较这些。
我尝试了所有这些变化,但都没有奏效
mov esi, offset variable1
mov ecx, offset variable2
.if esi > ecx
inc count
.endif
mov ecx, offset variable3
.if esi > ecx
inc count
.endif
.if variable1 > offset variable2
inc count
.endif
.if variable1 > offset variable3
inc count
.endif
mov esi, offset variable1
mov ecx, offset variable2
cmp esi,ecx
JB n2
inc count
n2:
mov ecx, offset variable3
cmp esi,ecx
JB n3
inc count
n3:
mov esi, offset variable1
mov ecx, offset variable2
cmp esi,ecx
JG n3
inc count
n3:
mov ecx, offset variable3
cmp esi,ecx
JG n4
inc count
n4:
mov esi, [variable1]
mov ecx, [variable2]
cmp esi, ecx
ja n1
inc Level3DNS1rank
n1:
mov ecx, [variable3]
cmp esi, ecx
ja n2
inc Level3DNS1rank
n2:
如何将上述 vb.net 代码转换为 masm 程序集
谢谢你
更新
这是这两个问题的答案
我需要做的是将字符串转换为整数。我使用此代码为我刚刚更改为invoke atodw,ADDR variable1
的 if not in assembly 执行此操作if not variable1 < variable2
if variable1 > variable2