首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

汇编算术运算符的有关问题

2012-04-15 
汇编算术运算符的问题mov ax,2mov bx,1add ax,bxmov ax,2+1上面的两种运算有什么本质的区别,既然可以直接

汇编算术运算符的问题
mov ax,2
mov bx,1
add ax,bx


mov ax,2+1



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


[解决办法]
本质的区别,就是那些 1 和 2,你是不是在写程序时就可以确定的。如果是,当然是第二种方法了;如果不是,即只能在程序运行中才能确定,那只能是第一种方法。
[解决办法]

探讨
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

热点排行