汇编代码技巧

汇编比较基础,所以写起来比较麻烦。
所以稍微总结一下可能可以写的方便一点的方法。
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。

猜你喜欢

转载自blog.csdn.net/HGGshiwo/article/details/106208656