我在编写一个简单的程序时遇到了麻烦,它应该在堆栈中找到最小的数字,并让堆栈只包含这个数字。0 标记堆栈的结尾,不应算作数字。控制流似乎有问题。我也尝试使用 cmp a, b jle update 代替,但结果相同:程序只是继续循环,没有退出也没有更新最小的数字。
主要的
push 0 ;
push 7 ;
push 2 ;
push 8 ;
push 5 ;
push 4 ;
data a
data b
pop b
loop:
pop a
je a, zero, done
jle a, b, update
jmp loop
update:
add b, a, zero
jmp loop
done:
push b
jmp theend
结束:结束主要