注册 登录
编程论坛 汇编论坛

在线的兄弟帮忙看看,这条语句合法吗?

gxsky 发布于 2004-11-19 22:55, 980 次点击

xchg [si],[2000]

查过书了,xchg的格式应当如下 xchg reg,reg/mem 那么xchg [si],[2000]里的[si]应当属于mem吧

在debug里,这条语句不能运行,但是xchg [si],ax可以运行,xchg ax,[si]也可以运行,

[si]不是mem吗?这是怎么回事呢?

5 回复
#2
gxsky2004-11-20 22:23

这个问题很难吗?????

#3
PigKing2004-11-23 16:37

xchg就是把两个操作数做个交换,但是两个操作数不能同时为内存操作数。

可以是一个寄存器操作数和一个内存操作数。这是汇编规定的。

#4
aaaaaav2005-01-20 14:33
不合法,因为不能两个操作数都用存储器,你的两个操作数[si]、[2000]的寻址方式指明了两个操作数都在存储器中。
#5
aries_gy2005-01-25 17:15
呵呵~不合法哦,[si]是si指向的存储器单元哦
#6
flyerman2005-01-26 16:13
因为2个都是存储器单元所以不合法
1