作者ppttcc (ppttcc)
看板ASM
标题[问题] 索引暂存器的问题
时间Thu Dec 2 17:04:38 2010
程式码如下:
mpd word 5
mpr word 4
mov AL,3
mov si,offset mpd
add [si],mpr ;产生 invalid instruction operands错误
若改成
add mpr,[si]
add [si],mpr
add word ptr [si],mpr
add mpr,word ptr [si]
也会产生同样的错误.
改成立即值也是
mov [si],0
但若改成将解参考的中括号拿掉
add mpr,si
add si,mpr
则能完成组译,但如此一来加到mpr的就是si所存的位址,而非位址之值
或者需将变数改成暂存器
add al,[si]
add [si],al
才能完成组译,
立即值则需加上word ptr(无法理解)
add [si],word ptr 0
因为在Irvine的书上没看到SI,DI有这限制,不晓得到底是哪里出问题了?
DI的另一个运算元是否能是变数?麻烦帮忙指点迷津?谢谢.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.38.62.92
※ 编辑: ppttcc 来自: 114.38.62.92 (12/02 17:20)
※ 编辑: ppttcc 来自: 114.38.62.92 (12/02 21:21)
※ 编辑: ppttcc 来自: 114.38.62.92 (12/02 21:25)