汇编比较基础,所以写起来比较麻烦。
所以稍微总结一下可能可以写的方便一点的方法。
1.if
两种判断
if a>b c=a
else c=b
#如果用cmp两次就比较麻烦所以考虑用下面这种,只需要跳一次就好
mov c, b
cmp a, b
ja done
mov c, a
done:
...
2.数组倒着写
有时候要求实现a[0]到a[n]的写入,但是算到n之前不知道什么时候结束,而且是算出答案的顺序是从后往前的(比如进制转化)
mov ax, 0 ;记录push的次数
again:
calculate m
push m
inc ax
cmp ...
jne again ;计算出每一位
mov di, 0 ;数组下标
pop_again:
push a[di]
inc di
cmp di, ax
jne pop_again
这个方法是白老师教的,利用的就是push和pop先进后出。先算出来的反而后被pop。