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

这样写是不是不对的?该如何解决

2012-02-05 
这样写是不是不对的?mov ax, location1location1: mov ax, 4如果location1是一个变量的话,那第一行就是把l

这样写是不是不对的?
mov ax, location1
location1: mov ax, 4


如果location1是一个变量的话,那第一行就是把location1的值送ax,但是现在location1是一个标号,它没有值,就不存在把“它的值送ax”的说法了
如果要把这个标号的位移送ax,又应该用offset 这个析值操作符,但是上面又没有用offset。

所以上面第一行就是一个四不像了
但是奇怪的是又可以编译得过,这是为什么呢?

[解决办法]
这问题与汇编器有关,严格来讲这样写是不对的,但某些汇编器会将其解释为变量或取标号的偏移量,自己在程序时应避免这种写法。
[解决办法]
2楼说得很对,这跟编译器有关,如果用masn编译,则不成功,必须用OFFSET
如果用nasm编译,则成功

热点排行