mov ax,2
mov bx,1
add ax,bx
mov ax,2+1
上面的两种运算有什么本质的区别,既然可以直接用加号,那又何必需要add 指令呢?
------解决方案--------------------------------------------------------
本质的区别,就是那些 1 和 2,你是不是在写程序时就可以确定的。如果是,当然是第二种方法了;如果不是,即只能在程序运行中才能确定,那只能是第一种方法。
------解决方案--------------------------------------------------------
------解决方案--------------------------------------------------------
后者3=2+1由编译器算出来,运行时就直接是mov ax,3 是一条指令
前者运行时ax先是2,然后变成3,共三条指令
是完全不同的程序
不存在“+”这个指令,“+”是写给编译器看的,机器硬件只认识add指令
编译时,编译器在识别这个“+”时,归根结底也要用add算出3来(恰恰就是第一种程序),然后把代码翻译为mov ax,3