[汇编]”add”与”+”的区别

作者: 大海 分类: 编程 发布时间: 2011-11-25 20:18 ė11,159 views 61条评论

汇编中为什么有”add”和”+”这两种求和的运算呢?既然有了”add”,哪有何必又要”+”,高级语言只有个”+”也够用的了.疑惑了?论坛提问吧.

得到了下面的结果,虽不知对错,但感觉挺靠谱的.

问题:

mov ax,2
mov bx,1
add ax,bx

mov ax,2+1
上面的两种运算有什么本质的区别,既然可以直接用加号,那又何必需要add 指令呢?

答案:

后者3=2+1由编译器算出来,运行时就直接是mov ax,3 是一条指令
前者运行时ax先是2,然后变成3,共三条指令
是完全不同的程序
不存在“+”这个指令,“+”是写给编译器看的,机器硬件只认识add指令
编译时,编译器在识别这个“+”时,归根结底也要用add算出3来(恰恰就是第一种程序),然后把代码翻译为mov ax,3

本文出自 纳百川,转载时请注明出处及相应链接。

本文永久链接: https://www.bicner.com/172.html

1 Comment

  1. 杭州晨力 2015/07/16 at 15:15

    这年头 坚持写文章 都是毅力啊

Ɣ回顶部