[問題] 索引暫存器的問題
程式碼如下:
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)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章
79
205